From 82af470b60fd72d6bf05746fe31b60461a4da873 Mon Sep 17 00:00:00 2001 From: Sharad Patil Date: Wed, 24 Jan 2024 18:00:54 +0530 Subject: [PATCH] boards: efr32_radio: Add Support for Silabs MG12 BRD4161A board Added support in board directory for EFR32 MG12 BRD4161A board Signed-off-by: Sharad Patil --- boards/arm/efr32_radio/Kconfig.board | 6 + boards/arm/efr32_radio/Kconfig.defconfig | 1 + boards/arm/efr32_radio/board.cmake | 2 + boards/arm/efr32_radio/doc/brd4161a.rst | 109 ++++++++++++++++++ .../efr32_radio/doc/efr32mg12-slwrb4161a.jpeg | Bin 0 -> 59280 bytes .../arm/efr32_radio/efr32_radio_brd4161a.dts | 70 +++++++++++ .../arm/efr32_radio/efr32_radio_brd4161a.yaml | 21 ++++ .../efr32_radio_brd4161a_defconfig | 13 +++ 8 files changed, 222 insertions(+) create mode 100644 boards/arm/efr32_radio/doc/brd4161a.rst create mode 100644 boards/arm/efr32_radio/doc/efr32mg12-slwrb4161a.jpeg create mode 100644 boards/arm/efr32_radio/efr32_radio_brd4161a.dts create mode 100644 boards/arm/efr32_radio/efr32_radio_brd4161a.yaml create mode 100644 boards/arm/efr32_radio/efr32_radio_brd4161a_defconfig diff --git a/boards/arm/efr32_radio/Kconfig.board b/boards/arm/efr32_radio/Kconfig.board index 6104a3884f0..bbae554ae69 100644 --- a/boards/arm/efr32_radio/Kconfig.board +++ b/boards/arm/efr32_radio/Kconfig.board @@ -17,6 +17,12 @@ config BOARD_EFR32_RADIO_BRD4170A select BOARD_EFR32_RADIO select SOC_PART_NUMBER_EFR32MG12P433F1024GM68 +config BOARD_EFR32_RADIO_BRD4161A + bool "Silicon Labs BRD4161A (Mighty Gecko Radio Board)" + depends on SOC_SERIES_EFR32MG12P + select BOARD_EFR32_RADIO + select SOC_PART_NUMBER_EFR32MG12P432F1024GL125 + config BOARD_EFR32_RADIO_BRD4250B bool "Silicon Labs BRD4250B (Flex Gecko Radio Board)" depends on SOC_SERIES_EFR32FG1P diff --git a/boards/arm/efr32_radio/Kconfig.defconfig b/boards/arm/efr32_radio/Kconfig.defconfig index 39c4b9ff695..b91aa627b70 100644 --- a/boards/arm/efr32_radio/Kconfig.defconfig +++ b/boards/arm/efr32_radio/Kconfig.defconfig @@ -9,6 +9,7 @@ if BOARD_EFR32_RADIO config BOARD default "efr32_radio_brd4104a" if BOARD_EFR32_RADIO_BRD4104A default "efr32_radio_brd4170a" if BOARD_EFR32_RADIO_BRD4170A + default "efr32_radio_brd4161a" if BOARD_EFR32_RADIO_BRD4161A default "efr32_radio_brd4250b" if BOARD_EFR32_RADIO_BRD4250B default "efr32_radio_brd4180a" if BOARD_EFR32_RADIO_BRD4180A default "efr32_radio_brd4187c" if BOARD_EFR32_RADIO_BRD4187C diff --git a/boards/arm/efr32_radio/board.cmake b/boards/arm/efr32_radio/board.cmake index 95eaa403fcb..d684946143e 100644 --- a/boards/arm/efr32_radio/board.cmake +++ b/boards/arm/efr32_radio/board.cmake @@ -8,6 +8,8 @@ elseif(CONFIG_BOARD_EFR32_RADIO_BRD4250B) board_runner_args(jlink "--device=EFR32FG1PxxxF256") elseif(CONFIG_BOARD_EFR32_RADIO_BRD4170A) board_runner_args(jlink "--device=EFR32MG12PxxxF1024") +elseif(CONFIG_BOARD_EFR32_RADIO_BRD4161A) +board_runner_args(jlink "--device=EFR32MG12PxxxF1024") elseif(CONFIG_BOARD_EFR32_RADIO_BRD4180A) board_runner_args(jlink "--device=EFR32MG21AxxxF1024") elseif(CONFIG_BOARD_EFR32_RADIO_BRD4187C) diff --git a/boards/arm/efr32_radio/doc/brd4161a.rst b/boards/arm/efr32_radio/doc/brd4161a.rst new file mode 100644 index 00000000000..f51d54b5f3d --- /dev/null +++ b/boards/arm/efr32_radio/doc/brd4161a.rst @@ -0,0 +1,109 @@ +.. _efr32_radio_brd4161a: + +EFR32 BRD4161A (SLWRB4161A) +########################### + +Overview +******** + +The EFR32MG12 Mighty Gecko Radio Board contains a Wireless System-On-Chip +from the EFR32MG12 family built on an ARM Cortex®-M4F processor with excellent +low power capabilities. + +.. figure:: efr32mg12-slwrb4161a.jpeg + :align: center + :alt: SLWRB4161A Mighty Gecko Radio Board + + SLWRB4161A (image courtesy of Silicon Labs) + +The BRD4161A a.k.a. SLWRB4161A radio board plugs into the Wireless Starter Kit +Mainboard BRD4001A and is supported as one of :ref:`efr32_radio`. + +Hardware +******** + +- EFR32MG12P432F1024GL125 Mighty Gecko SoC +- CPU core: ARM Cortex®-M4 with FPU +- Flash memory: 1024 kB +- RAM: 256 kB +- Transmit power: up to +19 dBm +- Operation frequency: 2.4 GHz and Sub-Ghz +- Crystals for LFXO (32.768 kHz) and HFXO (38.4 MHz). + +For more information about the EFR32MG12 SoC and BRD4170A board, refer to these +documents: + +- `EFR32MG12 Website`_ +- `EFR32MG12 Datasheet`_ +- `EFR32xG12 Reference Manual`_ +- `BRD4161A User Guide`_ + +Supported Features +================== + +Please refer to +:ref:`EFR32 Radio Board Supported Features ` +for details of the configuration and common features supported by the +efr32_radio_brd4161a board. + +The default configuration can be found in the defconfig file: + + ``boards/arm/efr32_radio/efr32_radio_brd4161a_defconfig`` + +System Clock +============ + +The EFR32MG12P SoC is configured to use the 38.4 MHz external oscillator on the +board. + +Serial Port +=========== + +The EFR32MG12P SoC has four USARTs and one Low Energy UARTs (LEUART). +USART0 is connected to the board controller and is used for the console. + +Programming and Debugging +************************* + +Please refer to +:ref:`Programming and Debugging EFR32 Radio Board ` +for details on the supported debug interfaces. + +Flashing +======== + +Connect the BRD4001A board with a mounted BRD4170A radio module to your host +computer using the USB port. + +Here is an example for the :ref:`hello_world` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: efr32_radio_brd4161a + :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! efr32_radio_brd4161a + + +.. _EFR32MG12 Website: + https://www.silabs.com/wireless/zigbee/efr32mg12-series-1-socs + +.. _EFR32MG12 Datasheet: + https://www.silabs.com/documents/public/data-sheets/efr32mg12-datasheet.pdf + +.. _EFR32xG12 Reference Manual: + https://www.silabs.com/documents/public/reference-manuals/efr32xg12-rm.pdf + +.. _BRD4161A User Guide: + https://www.silabs.com/documents/public/user-guides/ug260-brd4161a-user-guide.pdf diff --git a/boards/arm/efr32_radio/doc/efr32mg12-slwrb4161a.jpeg b/boards/arm/efr32_radio/doc/efr32mg12-slwrb4161a.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..eb912df1e3084d20879876b5a377a81a49e43f6a GIT binary patch literal 59280 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�%gP58--D=>>=)}(7HD9`{P%T9a zq#?w}U=qJOC2kP(^pfL|PVrM3wdDk8G|#AadHRZ5%sSp!`zAE;-SE%Q`alxBs8juG zeZl3iv!#R)RG4Wv6l^msX{rm8g{;`$Rx#>&MfX$LiXL5CkS31LHqGlW=ejlY`a-5o zvT#b&ol#K=l8A!ml9*o)o1Q7Ag#v*`qLG`w|u;yrF2+jIVi>|5;3v5L*lC{WgwBeK`l=aizn;Inxp6PyQ3qWkBh zO_CuoCR4w2R=D#t@3*PKYc zt=&N!zeL&;jK2Oi1quJ5pvV8U;J>R;^nX#~|G41)vupex*9hF4KhO2#uKwfZu%GmZ zKaayG*|g^I@5hmO4jk~$4#90*YrXWR;CIHL|6c`vcV4Esf8W&DoB!wll-Da-h;7AU t0Y_xIK#vqqrqKjZnH$R*|2)f?(?`=WW;K)9*bu5nO$g>;4CXl+{uc&rB&7fV literal 0 HcmV?d00001 diff --git a/boards/arm/efr32_radio/efr32_radio_brd4161a.dts b/boards/arm/efr32_radio/efr32_radio_brd4161a.dts new file mode 100644 index 00000000000..6f1cba19b5c --- /dev/null +++ b/boards/arm/efr32_radio/efr32_radio_brd4161a.dts @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2020 Piotr Mienkowski + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include "efr32_radio.dtsi" + +/ { + model = "Silicon Labs BRD4161A (Mighty Gecko Radio Board)"; + compatible = "silabs,efr32_radio_brd4161a", "silabs,efr32mg12p"; + + aliases { + spi-flash0 = &mx25r80; + }; +}; + +&cpu0 { + clock-frequency = <38400000>; +}; + +&flash0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + /* Reserve 32 kB for the bootloader */ + boot_partition: partition@0 { + label = "mcuboot"; + reg = <0x0 0x00008000>; + read-only; + }; + + /* Reserve 220 kB for the application in slot 0 */ + slot0_partition: partition@8000 { + label = "image-0"; + reg = <0x00008000 0x00037000>; + }; + + /* Reserve 220 kB for the application in slot 1 */ + slot1_partition: partition@3f000 { + label = "image-1"; + reg = <0x0003f000 0x00037000>; + }; + + /* Reserve 32 kB for the scratch partition */ + scratch_partition: partition@76000 { + label = "image-scratch"; + reg = <0x00076000 0x00008000>; + }; + + /* Set 8Kb of storage at the end of the 512KB of flash */ + storage_partition: partition@7e000 { + label = "storage"; + reg = <0x0007e000 0x00002000>; + }; + + }; +}; + +&usart0 { + current-speed = <115200>; + pinctrl-0 = <&usart0_default>; + pinctrl-names = "default"; + status = "okay"; +}; diff --git a/boards/arm/efr32_radio/efr32_radio_brd4161a.yaml b/boards/arm/efr32_radio/efr32_radio_brd4161a.yaml new file mode 100644 index 00000000000..108d6f16c0f --- /dev/null +++ b/boards/arm/efr32_radio/efr32_radio_brd4161a.yaml @@ -0,0 +1,21 @@ +identifier: efr32_radio_brd4161a +name: BRD4161A +type: mcu +arch: arm +ram: 256 +flash: 1024 +toolchain: + - zephyr + - gnuarmemb +supported: + - counter + - gpio + - nvs + - spi + - uart + - watchdog +testing: + ignore_tags: + - net + - bluetooth +vendor: silabs diff --git a/boards/arm/efr32_radio/efr32_radio_brd4161a_defconfig b/boards/arm/efr32_radio/efr32_radio_brd4161a_defconfig new file mode 100644 index 00000000000..fbf7cf38325 --- /dev/null +++ b/boards/arm/efr32_radio/efr32_radio_brd4161a_defconfig @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_ARM_MPU=y +CONFIG_SOC_SERIES_EFR32MG12P=y +CONFIG_BOARD_EFR32_RADIO_BRD4161A=y +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y +CONFIG_SERIAL=y +CONFIG_GPIO=y +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=38400000 +CONFIG_CMU_HFCLK_HFXO=y +CONFIG_SOC_GECKO_EMU_DCDC=y +CONFIG_SOC_GECKO_EMU_DCDC_MODE_ON=y