boards: silabs: Add xgm240_rb4316a and xgm240_rb4317a
Add support for xGM240-RB4316A and xGM240-RB4317A radio boards
for xGM240 modules. The two boards share pinout configuration, but
have different radio and power configurations.
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
diff --git a/boards/silabs/radio_boards/xg24/Kconfig.defconfig b/boards/silabs/radio_boards/xg24/Kconfig.defconfig
index 040d6fb..3b33954 100644
--- a/boards/silabs/radio_boards/xg24/Kconfig.defconfig
+++ b/boards/silabs/radio_boards/xg24/Kconfig.defconfig
@@ -3,7 +3,7 @@
# Copyright (c) 2025 Silicon Laboratories Inc.
# SPDX-License-Identifier: Apache-2.0
-if BOARD_XG24_RB4186C || BOARD_XG24_RB4187C
+if BOARD_XG24_RB4186C || BOARD_XG24_RB4187C || BOARD_XGM240_RB4316A || BOARD_XGM240_RB4317A
config LOG_BACKEND_SWO_FREQ_HZ
default 875000
diff --git a/boards/silabs/radio_boards/xg24/Kconfig.xgm240_rb4316a b/boards/silabs/radio_boards/xg24/Kconfig.xgm240_rb4316a
new file mode 100644
index 0000000..7715bc9
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/Kconfig.xgm240_rb4316a
@@ -0,0 +1,5 @@
+# Copyright (c) 2025 Silicon Laboratories Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+config BOARD_XGM240_RB4316A
+ select SOC_MGM240PB22VNA
diff --git a/boards/silabs/radio_boards/xg24/Kconfig.xgm240_rb4317a b/boards/silabs/radio_boards/xg24/Kconfig.xgm240_rb4317a
new file mode 100644
index 0000000..5a6b5e3
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/Kconfig.xgm240_rb4317a
@@ -0,0 +1,5 @@
+# Copyright (c) 2025 Silicon Laboratories Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+config BOARD_XGM240_RB4317A
+ select SOC_MGM240PB32VNA
diff --git a/boards/silabs/radio_boards/xg24/board.yml b/boards/silabs/radio_boards/xg24/board.yml
index 518f999..8e0834d 100644
--- a/boards/silabs/radio_boards/xg24/board.yml
+++ b/boards/silabs/radio_boards/xg24/board.yml
@@ -9,3 +9,13 @@
vendor: silabs
socs:
- name: efr32mg24b220f1536im48
+ - name: xgm240_rb4316a
+ full_name: xGM240P 10 dBm Module Radio Board (xGM240-RB4316A)
+ vendor: silabs
+ socs:
+ - name: mgm240pb22vna
+ - name: xgm240_rb4317a
+ full_name: xGM240P 20 dBm Module Radio Board (xGM240-RB4317A)
+ vendor: silabs
+ socs:
+ - name: mgm240pb32vna
diff --git a/boards/silabs/radio_boards/xg24/doc/xgm240_rb4316a.rst b/boards/silabs/radio_boards/xg24/doc/xgm240_rb4316a.rst
new file mode 100644
index 0000000..c8e7931
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/doc/xgm240_rb4316a.rst
@@ -0,0 +1,116 @@
+.. zephyr:board:: xgm240_rb4316a
+
+Overview
+********
+
+The `xGM240P +10 dBm Module Radio Board`_ for the xGM240P module contains a Wireless
+System-On-Chip from the EFR32MG24 family built on an ARM Cortex®-M33 processor with excellent low
+power capabilities.
+
+The radio board plugs into the Wireless Pro Kit Mainboard BRD4002A and is supported in Zephyr as one
+of several :ref:`silabs_radio_boards`.
+
+.. _xGM240P +10 dBm Module Radio Board:
+ https://www.silabs.com/development-tools/wireless/xgm240-rb4316a-xgm240p-module-radio-board
+
+Hardware
+********
+
+- MGM240PB32VNA module based on EFR32MG24
+- CPU core: ARM Cortex®-M33 with FPU
+- Flash memory: 1536 kB
+- RAM: 256 kB
+- Transmit power: up to +10 dBm
+- Operation frequency: 2.4 GHz
+- Crystal for LFXO (32.768 kHz) on the board and HFXO (39 MHz) in the module.
+
+For more information about the MGM240P module, EFR32MG24 SoC and BRD4316A board, refer to these
+documents:
+
+- `MGM240 Modules Website`_
+- `MGM240P Datasheet`_
+- `EFR32xG24 Reference Manual`_
+- `BRD4316A User Guide`_
+
+.. _MGM240 Modules Website:
+ https://www.silabs.com/wireless/zigbee/efr32mg24-series-2-modules
+.. _MGM240P Datasheet:
+ https://www.silabs.com/documents/public/data-sheets/mgm240p-datasheet.pdf
+.. _EFR32xG24 Reference Manual:
+ https://www.silabs.com/documents/public/reference-manuals/efr32xg24-rm.pdf
+.. _BRD4316A User Guide:
+ https://www.silabs.com/documents/public/user-guides/ug528-brd4316a-user-guide.pdf
+
+Supported Features
+==================
+
+.. zephyr:board-supported-hw::
+
+System Clock
+============
+
+The MGM240P module is configured to use the HFRCODPLL oscillator at 78 MHz as the system clock,
+locked to the 39 MHz external crystal oscillator on the board.
+
+Serial Port
+===========
+
+The MGM240P module has one USART and two EUSARTs.
+USART0 is connected to the board controller and is used for the console.
+
+Buttons and LEDs
+================
+
+This board has two buttons and two LEDs that share GPIO pins. If an application wants to use both
+a button and a LED with the same number (e.g. button 0 and LED 0), it needs to time multiplex the
+two functions.
+
+Programming and Debugging
+*************************
+
+.. zephyr:board-supported-runners::
+
+Flashing
+========
+
+Connect the BRD4002A board with a mounted BRD4186C radio board to your host
+computer using the USB port.
+
+Here is an example for the :zephyr:code-sample:`hello_world` application.
+
+.. zephyr-app-commands::
+ :zephyr-app: samples/hello_world
+ :board: xgm240_rb4316a
+ :goals: flash
+
+Open a serial terminal (minicom, putty, etc.) with the following settings:
+
+- Speed: 115200
+- Data: 8 bits
+- Parity: None
+- Stop bits: 1
+
+Reset the board and you should see the following message in the terminal:
+
+.. code-block:: console
+
+ Hello World! xgm240_rb4316a
+
+Bluetooth
+=========
+
+To use Bluetooth functionality, run the command below to retrieve necessary binary
+blobs from the Silicon Labs HAL repository.
+
+.. code-block:: console
+
+ west blobs fetch hal_silabs
+
+Then build the Zephyr kernel and a Bluetooth sample with the following
+command. The :zephyr:code-sample:`bluetooth_observer` sample application is used in
+this example.
+
+.. zephyr-app-commands::
+ :zephyr-app: samples/bluetooth/observer
+ :board: xgm240_rb4316a
+ :goals: build
diff --git a/boards/silabs/radio_boards/xg24/doc/xgm240_rb4316a.webp b/boards/silabs/radio_boards/xg24/doc/xgm240_rb4316a.webp
new file mode 100644
index 0000000..8c7519f
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/doc/xgm240_rb4316a.webp
Binary files differ
diff --git a/boards/silabs/radio_boards/xg24/doc/xgm240_rb4317a.rst b/boards/silabs/radio_boards/xg24/doc/xgm240_rb4317a.rst
new file mode 100644
index 0000000..8baa8b5
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/doc/xgm240_rb4317a.rst
@@ -0,0 +1,116 @@
+.. zephyr:board:: xgm240_rb4317a
+
+Overview
+********
+
+The `xGM240P +20 dBm Module Radio Board`_ for the xGM240P module contains a Wireless
+System-On-Chip from the EFR32MG24 family built on an ARM Cortex®-M33 processor with excellent low
+power capabilities.
+
+The radio board plugs into the Wireless Pro Kit Mainboard BRD4002A and is supported in Zephyr as one
+of several :ref:`silabs_radio_boards`.
+
+.. _xGM240P +20 dBm Module Radio Board:
+ https://www.silabs.com/development-tools/wireless/xgm240-rb4317a-xgm240p-module-radio-board
+
+Hardware
+********
+
+- MGM240PB32VNA module based on EFR32MG24
+- CPU core: ARM Cortex®-M33 with FPU
+- Flash memory: 1536 kB
+- RAM: 256 kB
+- Transmit power: up to +20 dBm
+- Operation frequency: 2.4 GHz
+- Crystal for LFXO (32.768 kHz) on the board and HFXO (39 MHz) in the module.
+
+For more information about the MGM240P module, EFR32MG24 SoC and BRD4317A board, refer to these
+documents:
+
+- `MGM240 Modules Website`_
+- `MGM240P Datasheet`_
+- `EFR32xG24 Reference Manual`_
+- `BRD4317A User Guide`_
+
+.. _MGM240 Modules Website:
+ https://www.silabs.com/wireless/zigbee/efr32mg24-series-2-modules
+.. _MGM240P Datasheet:
+ https://www.silabs.com/documents/public/data-sheets/mgm240p-datasheet.pdf
+.. _EFR32xG24 Reference Manual:
+ https://www.silabs.com/documents/public/reference-manuals/efr32xg24-rm.pdf
+.. _BRD4317A User Guide:
+ https://www.silabs.com/documents/public/user-guides/ug529-brd4317a-user-guide.pdf
+
+Supported Features
+==================
+
+.. zephyr:board-supported-hw::
+
+System Clock
+============
+
+The MGM240P module is configured to use the HFRCODPLL oscillator at 78 MHz as the system clock,
+locked to the 39 MHz external crystal oscillator on the board.
+
+Serial Port
+===========
+
+The MGM240P module has one USART and two EUSARTs.
+USART0 is connected to the board controller and is used for the console.
+
+Buttons and LEDs
+================
+
+This board has two buttons and two LEDs that share GPIO pins. If an application wants to use both
+a button and a LED with the same number (e.g. button 0 and LED 0), it needs to time multiplex the
+two functions.
+
+Programming and Debugging
+*************************
+
+.. zephyr:board-supported-runners::
+
+Flashing
+========
+
+Connect the BRD4002A board with a mounted BRD4186C radio board to your host
+computer using the USB port.
+
+Here is an example for the :zephyr:code-sample:`hello_world` application.
+
+.. zephyr-app-commands::
+ :zephyr-app: samples/hello_world
+ :board: xgm240_rb4317a
+ :goals: flash
+
+Open a serial terminal (minicom, putty, etc.) with the following settings:
+
+- Speed: 115200
+- Data: 8 bits
+- Parity: None
+- Stop bits: 1
+
+Reset the board and you should see the following message in the terminal:
+
+.. code-block:: console
+
+ Hello World! xgm240_rb4317a
+
+Bluetooth
+=========
+
+To use Bluetooth functionality, run the command below to retrieve necessary binary
+blobs from the Silicon Labs HAL repository.
+
+.. code-block:: console
+
+ west blobs fetch hal_silabs
+
+Then build the Zephyr kernel and a Bluetooth sample with the following
+command. The :zephyr:code-sample:`bluetooth_observer` sample application is used in
+this example.
+
+.. zephyr-app-commands::
+ :zephyr-app: samples/bluetooth/observer
+ :board: xgm240_rb4317a
+ :goals: build
diff --git a/boards/silabs/radio_boards/xg24/doc/xgm240_rb4317a.webp b/boards/silabs/radio_boards/xg24/doc/xgm240_rb4317a.webp
new file mode 100644
index 0000000..3bf8411
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/doc/xgm240_rb4317a.webp
Binary files differ
diff --git a/boards/silabs/radio_boards/xg24/xgm240_rb4316a.dts b/boards/silabs/radio_boards/xg24/xgm240_rb4316a.dts
new file mode 100644
index 0000000..17a9ecb
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/xgm240_rb4316a.dts
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2025 Silicon Laboratories Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/dts-v1/;
+#include <silabs/xg24/mgm240pb22vna.dtsi>
+#include "xgm240_rb431xa.dtsi"
+
+/ {
+ model = "Silicon Labs xGM240P +10 dBm Module Radio Board (xGM240-RB4316A, BRD4316A)";
+ compatible = "silabs,xgm240_rb4316a", "silabs,mgm24";
+};
diff --git a/boards/silabs/radio_boards/xg24/xgm240_rb4316a.yaml b/boards/silabs/radio_boards/xg24/xgm240_rb4316a.yaml
new file mode 100644
index 0000000..9b25799
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/xgm240_rb4316a.yaml
@@ -0,0 +1,23 @@
+identifier: xgm240_rb4316a
+name: xGM240P +10 dBm Module Radio Board (xGM240-RB4316A, BRD4316A)
+type: mcu
+arch: arm
+ram: 256
+flash: 1536
+toolchain:
+ - zephyr
+ - gnuarmemb
+supported:
+ - bluetooth
+ - comparator
+ - counter
+ - dac
+ - dma
+ - entropy
+ - flash
+ - gpio
+ - pwm
+ - spi
+ - uart
+ - watchdog
+vendor: silabs
diff --git a/boards/silabs/radio_boards/xg24/xgm240_rb4316a_defconfig b/boards/silabs/radio_boards/xg24/xgm240_rb4316a_defconfig
new file mode 100644
index 0000000..8401c4d
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/xgm240_rb4316a_defconfig
@@ -0,0 +1,8 @@
+# Copyright (c) 2025 Silicon Laboratories Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+CONFIG_ARM_MPU=y
+CONFIG_CONSOLE=y
+CONFIG_UART_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_GPIO=y
diff --git a/boards/silabs/radio_boards/xg24/xgm240_rb4317a.dts b/boards/silabs/radio_boards/xg24/xgm240_rb4317a.dts
new file mode 100644
index 0000000..454a2f1
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/xgm240_rb4317a.dts
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2025 Silicon Laboratories Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/dts-v1/;
+#include <silabs/xg24/mgm240pb32vna.dtsi>
+#include "xgm240_rb431xa.dtsi"
+
+/ {
+ model = "Silicon Labs xGM240P +20 dBm Module Radio Board (xGM240-RB4317A, BRD4317A)";
+ compatible = "silabs,xgm240_rb4317a", "silabs,mgm24";
+};
diff --git a/boards/silabs/radio_boards/xg24/xgm240_rb4317a.yaml b/boards/silabs/radio_boards/xg24/xgm240_rb4317a.yaml
new file mode 100644
index 0000000..a8ea40c
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/xgm240_rb4317a.yaml
@@ -0,0 +1,23 @@
+identifier: xgm240_rb4317a
+name: xGM240P +20 dBm Module Radio Board (xGM240-RB4317A, BRD4317A)
+type: mcu
+arch: arm
+ram: 256
+flash: 1536
+toolchain:
+ - zephyr
+ - gnuarmemb
+supported:
+ - bluetooth
+ - comparator
+ - counter
+ - dac
+ - dma
+ - entropy
+ - flash
+ - gpio
+ - pwm
+ - spi
+ - uart
+ - watchdog
+vendor: silabs
diff --git a/boards/silabs/radio_boards/xg24/xgm240_rb4317a_defconfig b/boards/silabs/radio_boards/xg24/xgm240_rb4317a_defconfig
new file mode 100644
index 0000000..8401c4d
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/xgm240_rb4317a_defconfig
@@ -0,0 +1,8 @@
+# Copyright (c) 2025 Silicon Laboratories Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+CONFIG_ARM_MPU=y
+CONFIG_CONSOLE=y
+CONFIG_UART_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_GPIO=y
diff --git a/boards/silabs/radio_boards/xg24/xgm240_rb431xa-pinctrl.dtsi b/boards/silabs/radio_boards/xg24/xgm240_rb431xa-pinctrl.dtsi
new file mode 100644
index 0000000..9267ab7
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/xgm240_rb431xa-pinctrl.dtsi
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2025 Silicon Laboratories Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <zephyr/dt-bindings/pinctrl/silabs/xg24-pinctrl.h>
+
+&pinctrl {
+ eusart1_default: eusart1_default {
+ group0 {
+ pins = <EUSART1_TX_PC0>, <EUSART1_SCLK_PC2>;
+ drive-push-pull;
+ output-high;
+ };
+
+ group1 {
+ pins = <EUSART1_RX_PC1>;
+ input-enable;
+ silabs,input-filter;
+ };
+ };
+
+ itm_default: itm_default {
+ group0 {
+ pins = <GPIO_SWV_PA3>;
+ drive-push-pull;
+ output-high;
+ };
+ };
+
+ i2c0_default: i2c0_default {
+ group0 {
+ pins = <I2C0_SCL_PB2>, <I2C0_SDA_PB3>;
+ drive-open-drain;
+ bias-pull-up;
+ };
+ };
+
+ pti_default: pti_default {
+ group0 {
+ pins = <PTI_DOUT_PC4>, <PTI_DFRAME_PC5>;
+ drive-push-pull;
+ output-high;
+ };
+ };
+
+ timer0_default: timer0_default {
+ group0 {
+ pins = <TIMER0_CC0_PB0>, <TIMER0_CC1_PB1>;
+ drive-push-pull;
+ output-high;
+ };
+ };
+
+ usart0_default: usart0_default {
+ group0 {
+ pins = <USART0_TX_PA5>;
+ drive-push-pull;
+ output-high;
+ };
+
+ group1 {
+ pins = <USART0_RX_PA6>;
+ input-enable;
+ silabs,input-filter;
+ };
+ };
+};
diff --git a/boards/silabs/radio_boards/xg24/xgm240_rb431xa.dtsi b/boards/silabs/radio_boards/xg24/xgm240_rb431xa.dtsi
new file mode 100644
index 0000000..7e22f7e
--- /dev/null
+++ b/boards/silabs/radio_boards/xg24/xgm240_rb431xa.dtsi
@@ -0,0 +1,301 @@
+/*
+ * Copyright (c) 2025 Silicon Laboratories Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <zephyr/dt-bindings/input/input-event-codes.h>
+#include <zephyr/dt-bindings/pwm/pwm.h>
+#include <zephyr/dt-bindings/regulator/silabs_dcdc.h>
+#include "xgm240_rb431xa-pinctrl.dtsi"
+
+/ {
+ chosen {
+ zephyr,bt-hci = &bt_hci_silabs;
+ zephyr,code-partition = &slot0_partition;
+ zephyr,console = &usart0;
+ zephyr,display = &ls0xx_ls013b7dh03;
+ zephyr,flash = &flash0;
+ zephyr,shell-uart = &usart0;
+ zephyr,sram = &sram0;
+ zephyr,uart-pipe = &usart0;
+ };
+
+ aliases {
+ dht0 = &si7021;
+ led0 = &led0;
+ led1 = &led1;
+ pwm-led0 = &pwm_led0;
+ pwm-led1 = &pwm_led1;
+ spi-flash0 = &mx25r80;
+ sw0 = &button0;
+ sw1 = &button1;
+ watchdog0 = &wdog0;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led0: led_0 {
+ gpios = <&gpiob 0 GPIO_ACTIVE_LOW>;
+ label = "LED 0";
+ };
+
+ led1: led_1 {
+ gpios = <&gpiob 1 GPIO_ACTIVE_LOW>;
+ label = "LED 1";
+ };
+ };
+
+ pwmleds {
+ compatible = "pwm-leds";
+
+ pwm_led0: pwm_led_0 {
+ pwms = <&timer0_pwm 0 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
+ label = "PWM LED 0";
+ };
+
+ pwm_led1: pwm_led_1 {
+ pwms = <&timer0_pwm 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
+ label = "PWM LED 1";
+ };
+ };
+
+ buttons {
+ compatible = "gpio-keys";
+
+ button0: button_0 {
+ gpios = <&gpiob 0 GPIO_ACTIVE_LOW>;
+ label = "User Push Button 0";
+ zephyr,code = <INPUT_KEY_0>;
+ };
+
+ button1: button_1 {
+ gpios = <&gpiob 1 GPIO_ACTIVE_LOW>;
+ label = "User Push Button 1";
+ zephyr,code = <INPUT_KEY_1>;
+ };
+ };
+
+ sensor_enable: sensor_enable {
+ compatible = "regulator-fixed";
+ enable-gpios = <&gpiod 2 GPIO_ACTIVE_HIGH>;
+ regulator-name = "sensor_enable";
+ };
+
+ exp_header: exp-header {
+ compatible = "silabs,exp-header";
+ #gpio-cells = <2>;
+ gpio-map = <4 0 &gpioc 0 0>,
+ <6 0 &gpioc 1 0>,
+ <7 0 &gpiob 0 0>,
+ <8 0 &gpioc 2 0>,
+ <9 0 &gpiob 1 0>,
+ <10 0 &gpioc 3 0>,
+ <12 0 &gpioa 5 0>,
+ <14 0 &gpioa 6 0>,
+ <15 0 &gpiob 2 0>,
+ <16 0 &gpiob 3 0>;
+ gpio-map-mask = <0xffffffff 0x0>;
+ gpio-map-pass-thru = <0x0 GPIO_DT_FLAGS_MASK>;
+ };
+};
+
+&cpu0 {
+ clock-frequency = <78000000>;
+};
+
+&itm {
+ pinctrl-0 = <&itm_default>;
+ pinctrl-names = "default";
+ swo-ref-frequency = <DT_FREQ_M(78)>;
+};
+
+&lfxo {
+ ctune = <44>;
+ precision = <50>;
+ status = "okay";
+};
+
+&hfrcodpll {
+ clock-frequency = <DT_FREQ_M(78)>;
+ clocks = <&hfxo>;
+ dpll-autorecover;
+ dpll-edge = "fall";
+ dpll-lock = "phase";
+ dpll-m = <1919>;
+ dpll-n = <3839>;
+};
+
+&em23grpaclk {
+ clocks = <&lfxo>;
+};
+
+&em4grpaclk {
+ clocks = <&lfxo>;
+};
+
+&sysrtcclk {
+ clocks = <&lfxo>;
+};
+
+&wdog0clk {
+ clocks = <&lfxo>;
+};
+
+&wdog1clk {
+ clocks = <&lfxo>;
+};
+
+&usart0 {
+ current-speed = <115200>;
+ pinctrl-0 = <&usart0_default>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+&eusart1 {
+ compatible = "silabs,eusart-spi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <DT_FREQ_M(10)>;
+ pinctrl-0 = <&eusart1_default>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ cs-gpios = <&gpioc 6 GPIO_ACTIVE_HIGH>, <&gpioa 4 GPIO_ACTIVE_LOW>;
+
+ ls0xx_ls013b7dh03: ls0xx@0 {
+ compatible = "sharp,ls0xx";
+ reg = <0>;
+ height = <128>;
+ spi-max-frequency = <DT_FREQ_K(1100)>;
+ width = <128>;
+ extcomin-gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
+ extcomin-frequency = <60>;
+ disp-en-gpios = <&gpiod 3 GPIO_ACTIVE_HIGH>;
+ };
+
+ mx25r80: mx25r8035f@1 {
+ compatible = "jedec,spi-nor";
+ reg = <1>;
+ dpd-wakeup-sequence = <30000 20 35000>;
+ has-dpd;
+ jedec-id = [c2 28 14];
+ mxicy,mx25r-power-mode = "low-power";
+ size = <DT_SIZE_M(8)>;
+ spi-max-frequency = <DT_FREQ_M(33)>;
+ zephyr,pm-device-runtime-auto;
+ };
+};
+
+&i2c0 {
+ pinctrl-0 = <&i2c0_default>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ si7021: si7021@40 {
+ compatible = "silabs,si7006";
+ reg = <0x40>;
+ vin-supply = <&sensor_enable>;
+ };
+};
+
+&timer0 {
+ status = "okay";
+
+ timer0_pwm: pwm {
+ pinctrl-0 = <&timer0_default>;
+ pinctrl-names = "default";
+ status = "okay";
+ };
+};
+
+&gpio {
+ status = "okay";
+};
+
+&gpioa {
+ status = "okay";
+};
+
+&gpiob {
+ status = "okay";
+
+ board-controller-enable {
+ gpio-hog;
+ gpios = <4 GPIO_ACTIVE_HIGH>;
+ output-high;
+ };
+};
+
+&gpioc {
+ status = "okay";
+};
+
+&gpiod {
+ status = "okay";
+};
+
+&wdog0 {
+ status = "okay";
+};
+
+&sysrtc0 {
+ status = "okay";
+};
+
+&se {
+ status = "okay";
+};
+
+&dcdc {
+ regulator-boot-on;
+ regulator-initial-mode = <SILABS_DCDC_MODE_BUCK>;
+ status = "okay";
+};
+
+&flash0 {
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ /* Reserve 48 kB for the bootloader */
+ boot_partition: partition@0 {
+ reg = <0x0 DT_SIZE_K(48)>;
+ label = "mcuboot";
+ read-only;
+ };
+
+ /* Reserve 728 kB for the application in slot 0 */
+ slot0_partition: partition@c000 {
+ reg = <0x0000c000 DT_SIZE_K(728)>;
+ label = "image-0";
+ };
+
+ /* Reserve 728 kB for the application in slot 1 */
+ slot1_partition: partition@c2000 {
+ reg = <0x000c2000 DT_SIZE_K(728)>;
+ label = "image-1";
+ };
+
+ /* Set 32 kB of storage at the end of the 1536 kB of flash */
+ storage_partition: partition@178000 {
+ reg = <0x00178000 DT_SIZE_K(32)>;
+ label = "storage";
+ };
+ };
+};
+
+&vdac0 {
+ status = "okay";
+};
+
+&vdac1 {
+ status = "okay";
+};
+
+&bt_hci_silabs {
+ status = "okay";
+};