From 3647e5ac3a8143ffd7991ed2390e060eb67e7990 Mon Sep 17 00:00:00 2001 From: Chiho Sin Date: Sat, 9 Aug 2025 17:35:13 +0800 Subject: [PATCH] boards: fobe: add FoBE Quill nRF52840 Mesh board This commit introduces the FoBE Quill nRF52840 Mesh board configuration, including device tree files, Kconfig settings, and necessary documentation. It also adds GPIO header definitions and updates vendor prefixes for proper identification. Signed-off-by: Chiho Sin --- boards/fobe/index.rst | 10 + .../quill_nrf52840_mesh/Kconfig.defconfig | 10 + .../Kconfig.quill_nrf52840_mesh | 7 + boards/fobe/quill_nrf52840_mesh/board.cmake | 13 ++ boards/fobe/quill_nrf52840_mesh/board.yml | 6 + .../doc/img/quill_nrf52840_mesh.webp | Bin 0 -> 94266 bytes boards/fobe/quill_nrf52840_mesh/doc/index.rst | 156 +++++++++++++ .../fobe_quill_connector.dtsi | 39 ++++ .../quill_nrf52840_mesh/pre_dt_board.cmake | 7 + .../quill_nrf52840_mesh-pinctrl.dtsi | 87 +++++++ .../quill_nrf52840_mesh.dts | 13 ++ .../quill_nrf52840_mesh.yaml | 23 ++ .../quill_nrf52840_mesh_common.dtsi | 214 ++++++++++++++++++ .../quill_nrf52840_mesh_defconfig | 25 ++ dts/bindings/gpio/fobe,quill-header.yaml | 38 ++++ dts/bindings/vendor-prefixes.txt | 1 + .../boards/quill_nrf52840_mesh.overlay | 7 + 17 files changed, 656 insertions(+) create mode 100644 boards/fobe/index.rst create mode 100644 boards/fobe/quill_nrf52840_mesh/Kconfig.defconfig create mode 100644 boards/fobe/quill_nrf52840_mesh/Kconfig.quill_nrf52840_mesh create mode 100644 boards/fobe/quill_nrf52840_mesh/board.cmake create mode 100644 boards/fobe/quill_nrf52840_mesh/board.yml create mode 100644 boards/fobe/quill_nrf52840_mesh/doc/img/quill_nrf52840_mesh.webp create mode 100644 boards/fobe/quill_nrf52840_mesh/doc/index.rst create mode 100644 boards/fobe/quill_nrf52840_mesh/fobe_quill_connector.dtsi create mode 100644 boards/fobe/quill_nrf52840_mesh/pre_dt_board.cmake create mode 100644 boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh-pinctrl.dtsi create mode 100644 boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.dts create mode 100644 boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.yaml create mode 100644 boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh_common.dtsi create mode 100644 boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh_defconfig create mode 100644 dts/bindings/gpio/fobe,quill-header.yaml create mode 100644 tests/drivers/adc/adc_api/boards/quill_nrf52840_mesh.overlay diff --git a/boards/fobe/index.rst b/boards/fobe/index.rst new file mode 100644 index 0000000000000..1a6475357f0aa --- /dev/null +++ b/boards/fobe/index.rst @@ -0,0 +1,10 @@ +.. _boards-fobe: + +FoBE Studio +########### + +.. toctree:: + :maxdepth: 1 + :glob: + + **/* diff --git a/boards/fobe/quill_nrf52840_mesh/Kconfig.defconfig b/boards/fobe/quill_nrf52840_mesh/Kconfig.defconfig new file mode 100644 index 0000000000000..22e40e741e7c4 --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/Kconfig.defconfig @@ -0,0 +1,10 @@ +# QUILL NRF52840 MESH board configuration + +# Copyright (c) 2025 Chiho Sin +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_QUILL_NRF52840_MESH + +source "boards/common/usb/Kconfig.cdc_acm_serial.defconfig" + +endif # BOARD_QUILL_NRF52840_MESH diff --git a/boards/fobe/quill_nrf52840_mesh/Kconfig.quill_nrf52840_mesh b/boards/fobe/quill_nrf52840_mesh/Kconfig.quill_nrf52840_mesh new file mode 100644 index 0000000000000..0e4ed3d8ca01e --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/Kconfig.quill_nrf52840_mesh @@ -0,0 +1,7 @@ +# QUILL NRF52840 MESH board configuration + +# Copyright (c) 2025 Chiho Sin +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_QUILL_NRF52840_MESH + select SOC_NRF52840_QIAA diff --git a/boards/fobe/quill_nrf52840_mesh/board.cmake b/boards/fobe/quill_nrf52840_mesh/board.cmake new file mode 100644 index 0000000000000..72087dbc1ca80 --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/board.cmake @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(nrfjprog "--nrf-family=NRF52") +board_runner_args(jlink "--device=nRF52840_xxAA" "--speed=4000") +board_runner_args(pyocd "--target=nrf52840" "--frequency=4000000") +board_runner_args(uf2 "--board-id=nRF52840-FoBEF1101-rev1a") +include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake) +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.board.cmake) +include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake) +include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake) diff --git a/boards/fobe/quill_nrf52840_mesh/board.yml b/boards/fobe/quill_nrf52840_mesh/board.yml new file mode 100644 index 0000000000000..ff5febf8ca36e --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/board.yml @@ -0,0 +1,6 @@ +board: + name: quill_nrf52840_mesh + full_name: Quill nRF52840 Mesh + vendor: fobe + socs: + - name: nrf52840 diff --git a/boards/fobe/quill_nrf52840_mesh/doc/img/quill_nrf52840_mesh.webp b/boards/fobe/quill_nrf52840_mesh/doc/img/quill_nrf52840_mesh.webp new file mode 100644 index 0000000000000000000000000000000000000000..93ec819fb551a6acdd8c2d9db0cd60f8af44ec35 GIT binary patch literal 94266 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 a!W#`P&9w(94JjQQ>;slnm1&SN5BndRl^$mR literal 0 HcmV?d00001 diff --git a/boards/fobe/quill_nrf52840_mesh/doc/index.rst b/boards/fobe/quill_nrf52840_mesh/doc/index.rst new file mode 100644 index 0000000000000..029b99345195c --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/doc/index.rst @@ -0,0 +1,156 @@ +.. zephyr:board:: quill_nrf52840_mesh + +Overview +******** + +The FoBE Quill nRF52840 Mesh is a development kit featuring the nRF52840 SoC and an integrated +SX1262 LoRa® transceiver. + +For more details see the `FoBE Quill nRF52840 Mesh`_ documentation page. + +Hardware +******** + +The FoBE Quill nRF52840 Mesh is a compact and versatile development platform for IoT solutions. +It combines Nordic's high-end multiprotocol SoC, the nRF52840, with Semtech's ultra-low-power +sub-GHz radio transceiver, the SX1262 (packaged using SiP technology). +Designed for IoT applications, it offers a comprehensive wireless connectivity solution, +supporting protocols such as Bluetooth 5, Thread, Zigbee, IEEE 802.15.4, and LoRa®. + +This development board is feature-rich, including a battery charger, +dedicated power path management, an ultra-low quiescent current DC-DC converter, +a 1.14-inch color IPS display, user-programmable LEDs and buttons, an MFP expansion connector, +a reversible USB-C connector, and header sockets for easy expansion. + +Supported Features +================== + +.. zephyr:board-supported-hw:: + +Connections and IOs +=================== + +The `FoBE Quill nRF52840 Mesh`_ Documentation has detailed information about board +connections. + +Programming and Debugging +************************* + +.. zephyr:board-supported-runners:: + +The Quill nRF52840 Mesh ships with the `FoBE nRF52 Bootloader`_ which supports flashing +using `UF2`_. Doing so allows easy flashing of new images, but does not support debugging the +device. For debugging please use `External Debugger`_. + +UF2 Flashing +============ + +To enter the bootloader, connect the USB port of the Quill nRF52840 Mesh to your host, +and double tap the reset button. A mass storage device named ``FOBEBOOT`` should appear +on the host. Using the command line, or your file manager copy the :file:`zephyr/zephyr.uf2` +file from your build to the base of the ``FOBEBOOT`` mass storage device. The board will +automatically reset and launch the newly flashed application. + +External Debugger +================= + +In order to support debugging the device, instead of using the bootloader, you can use an +:ref:`External Debug Probe `. To flash and debug Zephyr applications you need to +connect an SWD debugger to the SWD pins on the board. + +For Segger J-Link debug probes, follow the instructions in the :ref:`jlink-external-debug-probe` +page to install and configure all the necessary software. + +Building & Flashing +******************* + +Simple build and flash +====================== + +Build and flash applications as usual (see :ref:`build_an_application` and :ref:`application_run` +for more details). + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: quill_nrf52840_mesh + :goals: build + +The usual ``flash`` target will work with the ``quill_nrf52840_mesh`` board configuration. +Here is an example for the :zephyr:code-sample:`hello_world` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: quill_nrf52840_mesh + :goals: flash + +Flashing with External Debugger +-------------------------------- + +Setup and connect a supported debug probe (JLink, instructions at +:ref:`jlink-external-debug-probe` or BlackMagic Probe). Then build and flash applications as usual. + +Here is an example for the :zephyr:code-sample:`hello_world` application. + +First, run your favorite terminal program to listen for output. + +.. code-block:: console + + $ minicom -D -b 115200 + +Replace :code:`` with the port where the board can be found. For example, +under Linux, :code:`/dev/ttyACM0`. + +Then build and flash the application. Just add ``CONFIG_BOOT_DELAY=5000`` to the configuration, +so that USB CDC ACM is initialized before any text is printed: + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: quill_nrf52840_mesh + :goals: build flash + :gen-args: -DCONFIG_BOOT_DELAY=5000 + +Debugging +********* + +Refer to the :ref:`jlink-external-debug-probe` page to learn about debugging +boards with a Segger IC. + +Debugging using a BlackMagic Probe is also supported. + +Here is an example for building and debugging the :zephyr:code-sample:`hello_world` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: quill_nrf52840_mesh + :goals: debug + +Testing the LEDs +***************** + +There is a sample that allows to test that LEDs on the board are working properly with Zephyr: + +.. zephyr-app-commands:: + :zephyr-app: samples/basic/blinky + :board: quill_nrf52840_mesh + :goals: build flash + +You can build and flash the examples to make sure Zephyr is running correctly on your board. + +Testing shell over USB +*********************** + +There is a sample that allows to test shell interface over USB CDC ACM interface with Zephyr: + +.. zephyr-app-commands:: + :zephyr-app: samples/subsys/shell/shell_module + :board: quill_nrf52840_mesh + :goals: build flash + +References +********** + +.. target-notes:: + +.. _`FoBE Quill nRF52840 Mesh`: https://docs.fobestudio.com/product/f1101 +.. _`FoBE nRF52 Bootloader`: https://github.com/fobe-projects/fobe-nrf52-bootloader +.. _`UF2`: https://github.com/microsoft/uf2 diff --git a/boards/fobe/quill_nrf52840_mesh/fobe_quill_connector.dtsi b/boards/fobe/quill_nrf52840_mesh/fobe_quill_connector.dtsi new file mode 100644 index 0000000000000..b44a7d77e6f6b --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/fobe_quill_connector.dtsi @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2025 Chiho Sin + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + quill_header: connector { + compatible = "fobe,quill-header"; + #gpio-cells = <2>; + gpio-map-mask = <0xffffffff 0xffffffc0>; + gpio-map-pass-thru = <0 0x3f>; + gpio-map = <0 0 &gpio1 12 0>, /* D0 */ + <1 0 &gpio1 11 0>, /* D1 */ + <2 0 &gpio1 14 0>, /* D2 */ + <3 0 &gpio1 0 0>, /* D3 */ + <4 0 &gpio0 24 0>, /* D4 */ + <5 0 &gpio0 22 0>, /* D5 */ + <6 0 &gpio0 20 0>, /* D6 */ + <7 0 &gpio0 17 0>, /* D7 */ + <8 0 &gpio0 15 0>, /* D8 */ + <9 0 &gpio0 13 0>, /* D9 */ + <10 0 &gpio0 16 0>, /* D10 */ + <11 0 &gpio0 14 0>, /* D11 */ + <12 0 &gpio0 11 0>, /* D12 */ + <13 0 &gpio1 8 0>, /* D13 */ + <14 0 &gpio0 3 0>, /* A0 */ + <15 0 &gpio0 28 0>, /* A1 */ + <16 0 &gpio0 2 0>, /* A2 */ + <17 0 &gpio0 29 0>, /* A3 */ + <18 0 &gpio0 31 0>, /* A4 */ + <19 0 &gpio0 30 0>; /* A5 */ + }; +}; + +quill_spi: &spi2 {}; +quill_i2c: &i2c0 {}; +quill_serial: &uart0 {}; +quill_adc: &adc {}; diff --git a/boards/fobe/quill_nrf52840_mesh/pre_dt_board.cmake b/boards/fobe/quill_nrf52840_mesh/pre_dt_board.cmake new file mode 100644 index 0000000000000..3369c21d3af5b --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/pre_dt_board.cmake @@ -0,0 +1,7 @@ +# Copyright (c) 2022 Nordic Semiconductor +# SPDX-License-Identifier: Apache-2.0 + +# Suppress "unique_unit_address_if_enabled" to handle the following overlaps: +# - power@40000000 & clock@40000000 & bprot@40000000 +# - acl@4001e000 & flash-controller@4001e000 +list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled") diff --git a/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh-pinctrl.dtsi b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh-pinctrl.dtsi new file mode 100644 index 0000000000000..d91cb7067db02 --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh-pinctrl.dtsi @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2025 Chiho Sin + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&pinctrl { + uart0_default: uart0_default { + group1 { + psels = ; + }; + + group2 { + psels = ; + bias-pull-up; + }; + }; + + uart0_sleep: uart0_sleep { + group1 { + psels = , + ; + low-power-enable; + }; + }; + + i2c0_default: i2c0_default { + group1 { + psels = , + ; + }; + }; + + i2c0_sleep: i2c0_sleep { + group1 { + psels = , + ; + low-power-enable; + }; + }; + + pwm0_default: pwm0_default { + group1 { + psels = ; + nordic,invert; + }; + }; + + pwm0_sleep: pwm0_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; + + spi2_default: spi2_default { + group1 { + psels = , + , + ; + }; + }; + + spi2_sleep: spi2_sleep { + group1 { + psels = , + , + ; + low-power-enable; + }; + }; + + spi3_default: spi3_default { + group1 { + psels = , + ; + }; + }; + + spi3_sleep: spi3_sleep { + group1 { + psels = , + ; + low-power-enable; + }; + }; +}; diff --git a/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.dts b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.dts new file mode 100644 index 0000000000000..8c0967ba4449c --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.dts @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2025 Chiho Sin + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include "quill_nrf52840_mesh_common.dtsi" + +/ { + model = "FoBE Quill nRF52840 Mesh"; + compatible = "fobe,quill-nrf52840-mesh"; +}; diff --git a/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.yaml b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.yaml new file mode 100644 index 0000000000000..3a422f52dfde7 --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.yaml @@ -0,0 +1,23 @@ +identifier: quill_nrf52840_mesh +name: Quill nRF52840 Mesh +type: mcu +arch: arm +ram: 256 +flash: 1024 +toolchain: + - zephyr + - gnuarmemb +supported: + - adc + - ble + - counter + - gpio + - lora + - i2c + - i2s + - pwm + - spi + - usb_device + - watchdog + - netif:openthread +vendor: fobe diff --git a/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh_common.dtsi b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh_common.dtsi new file mode 100644 index 0000000000000..aac440914bdfb --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh_common.dtsi @@ -0,0 +1,214 @@ +/* + * Copyright (c) 2025 Chiho Sin + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include +#include +#include +#include "quill_nrf52840_mesh-pinctrl.dtsi" +#include "fobe_quill_connector.dtsi" + +/ { + chosen { + zephyr,ieee802154 = &ieee802154; + zephyr,display = &st7789v_tft; + }; + + leds { + compatible = "gpio-leds"; + + led0: led_0 { + label = "Blue LED"; + gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; + }; + + led1: led_1 { + label = "Backlight LED"; + gpios = <&gpio0 27 GPIO_ACTIVE_LOW>; + }; + }; + + pwmleds { + compatible = "pwm-leds"; + + pwm_led0: pwm_led_0 { + pwms = <&pwm0 0 PWM_MSEC(20) PWM_POLARITY_INVERTED>; + }; + }; + + disp_pwr: disp_pwr { + compatible = "power-domain-gpio"; + #power-domain-cells = <0>; + enable-gpios = <&gpio0 7 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + startup-delay-us = <5000>; + }; + + peri_reg: peri_reg { + compatible = "power-domain-gpio"; + #power-domain-cells = <0>; + enable-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; + startup-delay-us = <5000>; + }; + + mipi_dbi { + compatible = "zephyr,mipi-dbi-spi"; + spi-dev = <&spi3>; + dc-gpios = <&gpio0 6 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>; + reset-gpios = <&gpio0 26 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + write-only; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + st7789v_tft: st7789v_tft@0 { + compatible = "sitronix,st7789v"; + power-domains = <&disp_pwr>; + status = "okay"; + reg = <0>; + mipi-max-frequency = ; + width = <135>; + height = <240>; + x-offset = <52>; + y-offset = <40>; + vcom = <0x3F>; + gctrl = <0x05>; + vrhs = <0x0F>; + vdvs = <0x20>; + mdac = <0x00>; + gamma = <0x01>; + colmod = <0x05>; + lcm = <0x2C>; + porch-param = [05 05 00 33 33]; + cmd2en-param = [5A 69 02 00]; + pwctrl1-param = [A4 A1]; + pvgam-param = [D0 05 09 09 08 14 28 33 3F 07 13 14 28 30]; + nvgam-param = [D0 05 09 09 08 03 24 32 32 3B 14 13 28 2F]; + ram-param = [00 F0]; + rgb-param = [40 02 14]; + mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE"; + }; + }; + + buttons { + compatible = "gpio-keys"; + + button0: button_0 { + gpios = <&gpio1 10 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "USR Button"; + zephyr,code = ; + }; + }; + + vbatt { + compatible = "voltage-divider"; + io-channels = <&adc 3>; + output-ohms = <1000000>; + full-ohms = <(1000000 + 1500000)>; + }; + + /* These aliases are provided for compatibility with samples */ + aliases { + led0 = &led0; + pwm-led0 = &pwm_led0; + mcuboot-led0 = &led0; + backlight = &led1; + lora0 = &lora0; + sw0 = &button0; + watchdog0 = &wdt0; + }; +}; + +&uart0 { + status = "okay"; + current-speed = <115200>; + pinctrl-0 = <&uart0_default>; + pinctrl-1 = <&uart0_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&i2c0 { + status = "okay"; + pinctrl-0 = <&i2c0_default>; + pinctrl-1 = <&i2c0_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&pwm0 { + status = "okay"; + pinctrl-0 = <&pwm0_default>; + pinctrl-1 = <&pwm0_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&spi2 { + status = "okay"; + pinctrl-0 = <&spi2_default>; + pinctrl-1 = <&spi2_sleep>; + pinctrl-names = "default", "sleep"; + cs-gpios = <&gpio1 1 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + + lora0: lora@0 { + compatible = "semtech,sx1262"; + label = "sx1262"; + reg = <0>; + reset-gpios = <&gpio1 6 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + busy-gpios = <&gpio1 4 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>; + rx-enable-gpios = <&gpio0 25 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>; + dio1-gpios = <&gpio1 2 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>; + dio2-tx-enable; + dio3-tcxo-voltage = ; + tcxo-power-startup-delay-ms = <2>; + spi-max-frequency = ; + }; +}; + +&spi3 { + status = "okay"; + pinctrl-0 = <&spi3_default>; + pinctrl-1 = <&spi3_sleep>; + pinctrl-names = "default", "sleep"; + cs-gpios = <&gpio0 12 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; +}; + +®0 { + status = "okay"; +}; + +®1 { + regulator-initial-mode = ; +}; + +&adc { + status = "okay"; +}; + +&uicr { + gpio-as-nreset; +}; + +&ieee802154 { + status = "okay"; +}; + +&gpiote { + status = "okay"; +}; + +&gpio0 { + status = "okay"; +}; + +&gpio1 { + status = "okay"; +}; + +zephyr_udc0: &usbd { + status = "okay"; +}; + +#include <../boards/common/usb/cdc_acm_serial.dtsi> diff --git a/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh_defconfig b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh_defconfig new file mode 100644 index 0000000000000..ecc290a695a39 --- /dev/null +++ b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh_defconfig @@ -0,0 +1,25 @@ +# SPDX-License-Identifier: Apache-2.0 + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable hardware stack protection +CONFIG_HW_STACK_PROTECTION=y + +# Enable GPIO +CONFIG_GPIO=y + +# Enable UART driver +CONFIG_SERIAL=y + +# Enable console +CONFIG_CONSOLE=y + +# Enable Power +CONFIG_POWER_DOMAIN=y +CONFIG_PM_DEVICE=y +CONFIG_PM_DEVICE_POWER_DOMAIN=y + +# Build UF2 by default, supported by the Adafruit nRF52 Bootloader +CONFIG_BUILD_OUTPUT_UF2=y +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/dts/bindings/gpio/fobe,quill-header.yaml b/dts/bindings/gpio/fobe,quill-header.yaml new file mode 100644 index 0000000000000..3ee76de8ea117 --- /dev/null +++ b/dts/bindings/gpio/fobe,quill-header.yaml @@ -0,0 +1,38 @@ +# Copyright (c) 2025 FoBE Studio +# SPDX-License-Identifier: Apache-2.0 + +title: GPIO pins exposed on the FoBE Quill connector + +description: | + The Quill layout provides two headers, one each along + opposite edges of the board. + Pin mapping overview: + * Left 14-pin header: 11 pins are mapped in this binding. + * Right 14-pin header: 12 pins are mapped in this binding. + + This binding provides a nexus mapping for 20 pins where parent pins 14 + through 19 correspond to A0 through A5, and parent pins 0 through 13 + correspond as depicted below: + + VBUS - + 3V3 - + GND - + 3V3_EN - + - BAT REF - + - RESET D2 2 + - GND D1 1 + 13 D13 D0 0 + 12 D12 A5 19 + 11 D11 A4 18 + 10 D10 A3 17 + 9 D9 A2 16 + 8 D8 A1 15 + 7 D7 A0 14 + 6 D6 + 5 D5 + 4 D4 + 3 D3 + +compatible: "fobe,quill-header" + +include: [gpio-nexus.yaml, base.yaml] diff --git a/dts/bindings/vendor-prefixes.txt b/dts/bindings/vendor-prefixes.txt index 44c69fbad8a1c..45174f3fe2475 100644 --- a/dts/bindings/vendor-prefixes.txt +++ b/dts/bindings/vendor-prefixes.txt @@ -246,6 +246,7 @@ festo Festo SE & Co. KG fii Foxconn Industrial Internet fintek Feature Integration Technology Inc. firefly Firefly +fobe FoBE Studio focaltech FocalTech Systems Co.,Ltd franzininho Franzininho frida Shenzhen Frida LCD Co., Ltd. diff --git a/tests/drivers/adc/adc_api/boards/quill_nrf52840_mesh.overlay b/tests/drivers/adc/adc_api/boards/quill_nrf52840_mesh.overlay new file mode 100644 index 0000000000000..2af48efc4d1d4 --- /dev/null +++ b/tests/drivers/adc/adc_api/boards/quill_nrf52840_mesh.overlay @@ -0,0 +1,7 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * Copyright (c) 2023 Benjamin Björnsson + */ + +#include "nordic,nrf-saadc-common.dtsi"