diff --git a/boards/arm/nrf52833dk_nrf52820/Kconfig b/boards/arm/nrf52833dk_nrf52820/Kconfig new file mode 100644 index 00000000000..2d6eea7693f --- /dev/null +++ b/boards/arm/nrf52833dk_nrf52820/Kconfig @@ -0,0 +1,10 @@ +# nRF52833DK nRF52820 board configuration + +# Copyright (c) 2020 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_ENABLE_DCDC + bool "Enable DCDC mode" + select SOC_DCDC_NRF52X + default y + depends on BOARD_NRF52833DK_NRF52820 diff --git a/boards/arm/nrf52833dk_nrf52820/Kconfig.board b/boards/arm/nrf52833dk_nrf52820/Kconfig.board new file mode 100644 index 00000000000..5be8867d804 --- /dev/null +++ b/boards/arm/nrf52833dk_nrf52820/Kconfig.board @@ -0,0 +1,8 @@ +# nRF52833DK nRF52820 board configuration + +# Copyright (c) 2020 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_NRF52833DK_NRF52820 + bool "nRF52833 DK NRF52820" + depends on SOC_NRF52820_QDAA diff --git a/boards/arm/nrf52833dk_nrf52820/Kconfig.defconfig b/boards/arm/nrf52833dk_nrf52820/Kconfig.defconfig new file mode 100644 index 00000000000..b38445803e9 --- /dev/null +++ b/boards/arm/nrf52833dk_nrf52820/Kconfig.defconfig @@ -0,0 +1,24 @@ +# nRF52833DK nRF52820 board configuration + +# Copyright (c) 2020 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_NRF52833DK_NRF52820 + +config BOARD + default "nrf52833dk_nrf52820" + +if USB + +config USB_NRFX + default y + +config USB_DEVICE_STACK + default y + +endif # USB + +config BT_CTLR + default BT + +endif # BOARD_NRF52833DK_NRF52820 diff --git a/boards/arm/nrf52833dk_nrf52820/board.cmake b/boards/arm/nrf52833dk_nrf52820/board.cmake new file mode 100644 index 00000000000..bbf54151d76 --- /dev/null +++ b/boards/arm/nrf52833dk_nrf52820/board.cmake @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(nrfjprog "--nrf-family=NRF52") +board_runner_args(jlink "--device=nrf52" "--speed=4000") +board_runner_args(pyocd "--target=nrf52820" "--frequency=4000000") +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) +include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) +include(${ZEPHYR_BASE}/boards/common/openocd-nrf5.board.cmake) diff --git a/boards/arm/nrf52833dk_nrf52820/doc/index.rst b/boards/arm/nrf52833dk_nrf52820/doc/index.rst new file mode 100644 index 00000000000..e652e8735eb --- /dev/null +++ b/boards/arm/nrf52833dk_nrf52820/doc/index.rst @@ -0,0 +1,23 @@ +.. _nrf52833dk_nrf52820: + +nRF52820 emulation on nRF52833 DK +################################# + +Overview +******** + +The nrf52833dk_nrf52820 board is a modified version of the +:ref:`nrf52833dk_nrf52833` that enforces the limitations imposed by the nRF52820 +IC, which is a variant of the original nRF52833. Since Nordic does not offer a +development kit for the nRF52820 you can use this board to develop for this IC +while using the nRF52833 Development Kit (PCA10100). + +See :ref:`nrf52833dk_nrf52833` for more information about the development board +and `nRF52820 website`_ for the official reference on the IC itself. + +References +********** + +.. target-notes:: + +.. _nRF52820 website: https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF52820 diff --git a/boards/arm/nrf52833dk_nrf52820/nrf52833dk_nrf52820.dts b/boards/arm/nrf52833dk_nrf52820/nrf52833dk_nrf52820.dts new file mode 100644 index 00000000000..15f8228fe5e --- /dev/null +++ b/boards/arm/nrf52833dk_nrf52820/nrf52833dk_nrf52820.dts @@ -0,0 +1,161 @@ +/* + * Copyright (c) 2020 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include + +/ { + model = "Nordic nRF52833 DK NRF52820"; + compatible = "nordic,nrf52833-dk-nrf52820"; + + chosen { + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + zephyr,uart-mcumgr = &uart0; + zephyr,bt-mon-uart = &uart0; + zephyr,bt-c2h-uart = &uart0; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,code-partition = &slot0_partition; + }; + + leds { + compatible = "gpio-leds"; + led0: led_0 { + gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; + label = "Green LED 0"; + }; + led1: led_1 { + gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; + label = "Green LED 1"; + }; + led2: led_2 { + gpios = <&gpio0 15 GPIO_ACTIVE_LOW>; + label = "Green LED 2"; + }; + led3: led_3 { + gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; + label = "Green LED 3"; + }; + }; + + pwmleds { + compatible = "pwm-leds"; + pwm_led0: pwm_led_0 { + pwms = <&sw_pwm 13>; + }; + }; + + buttons { + compatible = "gpio-keys"; + button0: button_0 { + gpios = <&gpio0 11 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 0"; + }; + button1: button_1 { + gpios = <&gpio0 12 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 1"; + }; + button2: button_2 { + gpios = <&gpio0 24 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 2"; + }; + button3: button_3 { + gpios = <&gpio0 25 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 3"; + }; + }; + + /* These aliases are provided for compatibility with samples */ + aliases { + led0 = &led0; + led1 = &led1; + led2 = &led2; + led3 = &led3; + sw0 = &button0; + sw1 = &button1; + sw2 = &button2; + sw3 = &button3; + }; +}; + +&gpiote { + status = "okay"; +}; + +&gpio0 { + status = "okay"; +}; + +&uart0 { + compatible = "nordic,nrf-uart"; + status = "okay"; + current-speed = <115200>; + tx-pin = <6>; + rx-pin = <8>; + rts-pin = <5>; + cts-pin = <7>; +}; + +&i2c0 { + compatible = "nordic,nrf-twi"; + status = "okay"; + sda-pin = <28>; + scl-pin = <29>; +}; + +&i2c1 { + compatible = "nordic,nrf-twi"; + /* Cannot be used together with spi1. */ + /* status = "okay"; */ +}; + +&spi0 { + compatible = "nordic,nrf-spi"; + /* Cannot be used together with i2c0. */ + /* status = "okay"; */ +}; + +&spi1 { + status = "okay"; + sck-pin = <17>; + miso-pin = <20>; + mosi-pin = <30>; +}; + +&flash0 { + /* + * For more information, see: + * http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions + */ + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + boot_partition: partition@0 { + label = "mcuboot"; + reg = <0x00000000 0xC000>; + }; + slot0_partition: partition@C000 { + label = "image-0"; + reg = <0x0000C000 0x17000>; + }; + slot1_partition: partition@23000 { + label = "image-1"; + reg = <0x00023000 0x17000>; + }; + storage_partition: partition@3a000 { + label = "storage"; + reg = <0x0003a000 0x00006000>; + }; + }; +}; + +&usbd { + compatible = "nordic,nrf-usbd"; + status = "okay"; +}; diff --git a/boards/arm/nrf52833dk_nrf52820/nrf52833dk_nrf52820.yaml b/boards/arm/nrf52833dk_nrf52820/nrf52833dk_nrf52820.yaml new file mode 100644 index 00000000000..b520abcfd77 --- /dev/null +++ b/boards/arm/nrf52833dk_nrf52820/nrf52833dk_nrf52820.yaml @@ -0,0 +1,16 @@ +identifier: nrf52833dk_nrf52820 +name: nRF52833-DK-NRF52820 +type: mcu +arch: arm +toolchain: + - zephyr + - gnuarmemb + - xtools +ram: 32 +flash: 256 +supported: + - usb_device + - ble + - gpio + - watchdog + - counter diff --git a/boards/arm/nrf52833dk_nrf52820/nrf52833dk_nrf52820_defconfig b/boards/arm/nrf52833dk_nrf52820/nrf52833dk_nrf52820_defconfig new file mode 100644 index 00000000000..f95ad04e8bd --- /dev/null +++ b/boards/arm/nrf52833dk_nrf52820/nrf52833dk_nrf52820_defconfig @@ -0,0 +1,24 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SOC_SERIES_NRF52X=y +CONFIG_SOC_NRF52820_QDAA=y +CONFIG_BOARD_NRF52833DK_NRF52820=y + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable RTT +CONFIG_USE_SEGGER_RTT=y + +# enable GPIO +CONFIG_GPIO=y + +# enable uart driver +CONFIG_SERIAL=y + +# enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# additional board options +CONFIG_GPIO_AS_PINRESET=y diff --git a/dts/arm/nordic/nrf52820.dtsi b/dts/arm/nordic/nrf52820.dtsi index fdd6f8782fe..ad63d81c1c3 100644 --- a/dts/arm/nordic/nrf52820.dtsi +++ b/dts/arm/nordic/nrf52820.dtsi @@ -35,7 +35,7 @@ uart-0 = &uart0; gpio-0 = &gpio0; gpiote-0 = &gpiote; - wdt-0 = &wdt; + wdt-0 = &wdt0; usbd-0 = &usbd; qdec-0 = &qdec; rtc-0 = &rtc0;