Skip to content

Commit 4010d39

Browse files
asmellbycfriedt
authored andcommitted
boards: silabs: Tidy up xg24_rb4187c board definition
Add missing PWM node, remove unused defconfig, add Commander runner support. Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
1 parent 8a9a469 commit 4010d39

File tree

8 files changed

+84
-37
lines changed

8 files changed

+84
-37
lines changed
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Copyright (c) 2020 Piotr Mienkowski
22
# Copyright (c) 2020 TriaGnoSys GmbH
3+
# Copyright (c) 2025 Silicon Laboratories Inc.
34
# SPDX-License-Identifier: Apache-2.0
45

56
if BOARD_XG24_RB4187C
@@ -8,22 +9,15 @@ config LOG_BACKEND_SWO_FREQ_HZ
89
default 875000
910
depends on LOG_BACKEND_SWO
1011

11-
if SOC_GECKO_USE_RAIL
12-
1312
config FPU
14-
default y
15-
16-
endif # SOC_GECKO_USE_RAIL
13+
default y if SOC_GECKO_USE_RAIL || BT
1714

1815
if BT
1916

20-
config FPU
21-
default y
22-
2317
config MAIN_STACK_SIZE
2418
default 3072 if PM
2519
default 2304
2620

2721
endif # BT
2822

29-
endif # BOARD_XG24_RB4187C
23+
endif

boards/silabs/radio_boards/xg24/board.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@
33
board_runner_args(jlink "--device=EFR32MG24BxxxF1536")
44
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
55

6+
board_runner_args(silabs_commander "--device=${CONFIG_SOC}")
7+
include(${ZEPHYR_BASE}/boards/common/silabs_commander.board.cmake)
8+
69
board_runner_args(openocd)
710
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)

boards/silabs/radio_boards/xg24/doc/efr32mg24-xg24-rb4187c.jpg renamed to boards/silabs/radio_boards/xg24/doc/xg24_rb4187c.jpg

File renamed without changes.

boards/silabs/radio_boards/xg24/doc/index.rst renamed to boards/silabs/radio_boards/xg24/doc/xg24_rb4187c.rst

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@
33
Overview
44
********
55

6-
The EFR32MG24 Mighty Gecko Radio Board is one of the two
7-
radio boards delivered with `xG24-PK6010A Website`_. It contains
8-
a Wireless System-On-Chip from the EFR32MG24 family built on an
9-
ARM Cortex®-M33F processor with excellent low power capabilities.
6+
The `EFR32xG24 +20 dBm Radio Board`_ is the radio board delivered with the
7+
`EFR32xG24 Pro Kit +20 dBm`_, and is also available standalone. It contains a Wireless
8+
System-On-Chip from the EFR32MG24 family built on an ARM Cortex®-M33 processor with excellent low
9+
power capabilities.
1010

11-
The BRD4187C a.k.a. xG24-RB4187C radio board plugs into the Wireless Pro Kit
12-
Mainboard BRD4002A and is supported as one of :ref:`silabs_radio_boards`.
11+
The radio board plugs into the Wireless Pro Kit Mainboard BRD4002A and is supported in Zephyr as one
12+
of several :ref:`silabs_radio_boards`.
13+
14+
.. _EFR32xG24 +20 dBm Radio Board:
15+
https://www.silabs.com/development-tools/wireless/xg24-rb4187c-efr32xg24-wireless-gecko-radio-board
16+
.. _EFR32xG24 Pro Kit +20 dBm:
17+
https://www.silabs.com/development-tools/wireless/efr32xg24-pro-kit-20-dbm
1318

1419
Hardware
1520
********
@@ -28,9 +33,17 @@ documents:
2833
- `EFR32MG24 Website`_
2934
- `EFR32MG24 Datasheet`_
3035
- `EFR32xG24 Reference Manual`_
31-
- `xG24-PK6010A Website`_
3236
- `BRD4187C User Guide`_
3337

38+
.. _EFR32MG24 Website:
39+
https://www.silabs.com/wireless/zigbee/efr32mg24-series-2-socs
40+
.. _EFR32MG24 Datasheet:
41+
https://www.silabs.com/documents/public/data-sheets/efr32mg24-datasheet.pdf
42+
.. _EFR32xG24 Reference Manual:
43+
https://www.silabs.com/documents/public/reference-manuals/efr32xg24-rm.pdf
44+
.. _BRD4187C User Guide:
45+
https://www.silabs.com/documents/public/reference-manuals/brd4187c-rm.pdf
46+
3447
Supported Features
3548
==================
3649

@@ -56,7 +69,7 @@ Programming and Debugging
5669
Flashing
5770
========
5871

59-
Connect the BRD4002A board with a mounted BRD4187C radio module to your host
72+
Connect the BRD4002A board with a mounted BRD4187C radio board to your host
6073
computer using the USB port.
6174

6275
Here is an example for the :zephyr:code-sample:`hello_world` application.
@@ -79,18 +92,21 @@ Reset the board and you should see the following message in the terminal:
7992
8093
Hello World! xg24_rb4187c
8194
95+
Bluetooth
96+
=========
8297

83-
.. _xG24-PK6010A Website:
84-
https://www.silabs.com/development-tools/wireless/efr32xg24-pro-kit-20-dbm
98+
To use Bluetooth functionality, run the command below to retrieve necessary binary
99+
blobs from the Silicon Labs HAL repository.
85100

86-
.. _BRD4187C User Guide:
87-
https://www.silabs.com/documents/public/user-guides/ug526-brd4187c-user-guide.pdf
101+
.. code-block:: console
88102
89-
.. _EFR32MG24 Website:
90-
https://www.silabs.com/wireless/zigbee/efr32mg24-series-2-socs
103+
west blobs fetch hal_silabs
91104
92-
.. _EFR32MG24 Datasheet:
93-
https://www.silabs.com/documents/public/data-sheets/efr32mg24-datasheet.pdf
105+
Then build the Zephyr kernel and a Bluetooth sample with the following
106+
command. The :zephyr:code-sample:`bluetooth_observer` sample application is used in
107+
this example.
94108

95-
.. _EFR32xG24 Reference Manual:
96-
https://www.silabs.com/documents/public/reference-manuals/brd4187c-rm.pdf
109+
.. zephyr-app-commands::
110+
:zephyr-app: samples/bluetooth/observer
111+
:board: xg24_rb4187c
112+
:goals: build

boards/silabs/radio_boards/xg24/xg24_rb4187c-pinctrl.dtsi

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,14 @@
4646
};
4747
};
4848

49+
timer0_default: timer0_default {
50+
group0 {
51+
pins = <TIMER0_CC0_PB2>, <TIMER0_CC1_PB4>;
52+
drive-push-pull;
53+
output-low;
54+
};
55+
};
56+
4957
usart0_default: usart0_default {
5058
group0 {
5159
pins = <USART0_TX_PA8>;

boards/silabs/radio_boards/xg24/xg24_rb4187c.dts

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@
77
/dts-v1/;
88
#include <silabs/xg24/efr32mg24b220f1536im48.dtsi>
99
#include <zephyr/dt-bindings/input/input-event-codes.h>
10+
#include <zephyr/dt-bindings/pwm/pwm.h>
1011
#include <zephyr/dt-bindings/regulator/silabs_dcdc.h>
1112
#include "xg24_rb4187c-pinctrl.dtsi"
1213

1314
/ {
14-
model = "Silicon Labs BRD4187C (Mighty Gecko 24 Radio Board)";
15+
model = "Silicon Labs EFR32xG24 2.4 GHz 20 dBm Radio Board (xG24-RB4187C, BRD4187C)";
1516
compatible = "silabs,xg24_rb4187c", "silabs,efr32mg24";
1617

1718
chosen {
@@ -30,6 +31,8 @@
3031
dht0 = &si7021;
3132
led0 = &led0;
3233
led1 = &led1;
34+
pwm-led0 = &pwm_led0;
35+
pwm-led1 = &pwm_led1;
3336
sw0 = &button0;
3437
sw1 = &button1;
3538
watchdog0 = &wdog0;
@@ -49,6 +52,20 @@
4952
};
5053
};
5154

55+
pwmleds {
56+
compatible = "pwm-leds";
57+
58+
pwm_led0: pwm_led_0 {
59+
pwms = <&timer0_pwm 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
60+
label = "PWM LED 0";
61+
};
62+
63+
pwm_led1: pwm_led_1 {
64+
pwms = <&timer0_pwm 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
65+
label = "PWM LED 1";
66+
};
67+
};
68+
5269
buttons {
5370
compatible = "gpio-keys";
5471

@@ -199,6 +216,16 @@
199216
};
200217
};
201218

219+
&timer0 {
220+
status = "okay";
221+
222+
timer0_pwm: pwm {
223+
pinctrl-0 = <&timer0_default>;
224+
pinctrl-names = "default";
225+
status = "okay";
226+
};
227+
};
228+
202229
&gpio {
203230
status = "okay";
204231
};

boards/silabs/radio_boards/xg24/xg24_rb4187c.yaml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@ toolchain:
1010
supported:
1111
- adc
1212
- bluetooth
13+
- comparator
14+
- counter
15+
- dac
16+
- dma
17+
- entropy
18+
- flash
1319
- gpio
14-
- uart
20+
- pwm
1521
- spi
16-
- dma
22+
- uart
1723
- watchdog
18-
- comparator
19-
- dac
20-
testing:
21-
ignore_tags:
22-
- pm
2324
vendor: silabs

boards/silabs/radio_boards/xg24/xg24_rb4187c_defconfig

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,3 @@ CONFIG_CONSOLE=y
55
CONFIG_UART_CONSOLE=y
66
CONFIG_SERIAL=y
77
CONFIG_GPIO=y
8-
CONFIG_SOC_GECKO_EMU_DCDC=y
9-
CONFIG_SOC_GECKO_EMU_DCDC_MODE_ON=y

0 commit comments

Comments
 (0)