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 <p.sharad@capgemini.com>
This commit is contained in:
Sharad Patil 2024-01-24 18:00:54 +05:30 committed by Carles Cufí
parent 517574ac90
commit 82af470b60
8 changed files with 222 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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 <efr32_radio_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 <efr32_radio_programming>`
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@ -0,0 +1,70 @@
/*
* Copyright (c) 2020 Piotr Mienkowski
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <silabs/efr32mg12p432f1024gl125.dtsi>
#include <silabs/efr32xg12p-pinctrl.dtsi>
#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";
};

View File

@ -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

View File

@ -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