Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions boards/silabs/dev_kits/bgm220_ek4314a/board.yml

This file was deleted.

6 changes: 0 additions & 6 deletions boards/silabs/dev_kits/xg22_ek2710a/board.yml

This file was deleted.

10 changes: 10 additions & 0 deletions boards/silabs/explorer_kits/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.. _explorer_kits:

Explorer Kits
#############

.. toctree::
:maxdepth: 1
:glob:

**/*
5 changes: 5 additions & 0 deletions boards/silabs/explorer_kits/xg22/Kconfig.bg22_ek4108a
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Copyright The Zephyr Project Contributors
# SPDX-License-Identifier: Apache-2.0

config BOARD_BG22_EK4108A
select SOC_EFR32BG22C224F512IM40
Original file line number Diff line number Diff line change
@@ -1,28 +1,21 @@
# Copyright The Zephyr Project Contributors
# SPDX-License-Identifier: Apache-2.0

if BOARD_XG22_EK2710A
if BOARD_BGM220_EK4314A || BOARD_XG22_EK2710A || BOARD_BG22_EK4108A

config LOG_BACKEND_SWO_FREQ_HZ
default 875000
depends on LOG_BACKEND_SWO

if SOC_GECKO_USE_RAIL

config FPU
default y

endif # SOC_GECKO_USE_RAIL
default y if SOC_GECKO_USE_RAIL || BT

if BT

config FPU
default y

config MAIN_STACK_SIZE
default 3072 if PM
default 2304

endif # BT

endif # BOARD_XG22_EK2710A
endif
50 changes: 50 additions & 0 deletions boards/silabs/explorer_kits/xg22/bg22_ek4108a.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/*
* Copyright The Zephyr Project Contributors
*
* SPDX-License-Identifier: Apache-2.0
*/

/dts-v1/;
#include <silabs/xg22/efr32bg22c224f512im40.dtsi>
#include "xg22_explorer_kit.dtsi"

/ {
model = "Silicon Labs BRD4108A (BG22 Explorer Kit)";
compatible = "silabs,xg22_ek4108a", "silabs,efr32bg22";
};

&radio {
pa-voltage-mv = <1800>;
};

&hfxo {
ctune = <140>;
precision = <50>;
status = "okay";
};

&lfxo {
ctune = <25>;
precision = <50>;
status = "okay";
};

&em23grpaclk {
clocks = <&lfxo>;
};

&em4grpaclk {
clocks = <&lfxo>;
};

&prortcclk {
clocks = <&lfxo>;
};

&rtccclk {
clocks = <&lfxo>;
};

&wdog0clk {
clocks = <&lfxo>;
};
24 changes: 24 additions & 0 deletions boards/silabs/explorer_kits/xg22/bg22_ek4108a.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
identifier: bg22_ek4108a
name: EFR32BG22 Explorer Kit (BG22-EK4108A, BRD4108A)
type: mcu
arch: arm
ram: 32
flash: 512
toolchain:
- zephyr
- gnuarmemb
supported:
- bluetooth
- counter
- gpio
- uart
- watchdog
- clock_control
- comparator
- i2c
- dma
- spi
testing:
ignore_tags:
- pm
vendor: silabs
14 changes: 14 additions & 0 deletions boards/silabs/explorer_kits/xg22/bgm220_ek4314a.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/*
* Copyright The Zephyr Project Contributors
*
* SPDX-License-Identifier: Apache-2.0
*/

/dts-v1/;
#include <silabs/xg22/bgm220pc22hna.dtsi>
#include "xg22_explorer_kit.dtsi"

/ {
model = "Silicon Labs BRD4314A (BGM220 Explorer Kit)";
compatible = "silabs,bgm220_ek4314a", "silabs,efr32bg22";
};
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
board_runner_args(jlink "--device=EFR32MG22C224F512IM40" "--reset-after-load")
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

board_runner_args(silabs_commander "--device=EFR32MG22E224F512IM40")
board_runner_args(silabs_commander "--device=${CONFIG_SOC}")
include(${ZEPHYR_BASE}/boards/common/silabs_commander.board.cmake)
16 changes: 16 additions & 0 deletions boards/silabs/explorer_kits/xg22/board.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
boards:
- name: bgm220_ek4314a
full_name: BGM220 Explorer Kit (BGM220-EK4314A)
vendor: silabs
socs:
- name: bgm220pc22hna
- name: bg22_ek4108a
full_name: EFR32BG22 Explorer Kit (BG22-EK4108A)
vendor: silabs
socs:
- name: efr32bg22c224f512im40
- name: xg22_ek2710a
full_name: EFR32xG22E Explorer Kit (xG22-EK2710A)
vendor: silabs
socs:
- name: efr32mg22e224f512im40
130 changes: 130 additions & 0 deletions boards/silabs/explorer_kits/xg22/doc/bg22_ek4108a.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
.. zephyr:board:: bg22_ek4108a

Overview
********

The EFR32BG22 Explorer Kit (BG22-EK4108A) contains
a Wireless System-On-Chip from the EFR32BG22 family built on an
ARM Cortex®-M33 processor with excellent low power capabilities.

Hardware
********

- EFR32BG22C224F512IM40 Mighty Gecko SoC
- CPU core: ARM Cortex®-M33 with FPU
- Flash memory: 512 kB
- RAM: 32 kB
- Transmit power: up to +6 dBm
- Operation frequency: 2.4 GHz
- Crystal for HFXO (38.4 MHz)

For more information about the EFR32BG22 SoC and BRD4108A board, refer to these
documents:

- `EFR32BG22 Website`_
- `EFR32BG22 Datasheet`_
- `EFR32xG22 Reference Manual`_
- `BRD4108A User Guide`_

Supported Features
==================

.. zephyr:board-supported-hw::

Connections and IOs
===================

In the following table, the column **Name** contains Pin names. For example, PA2
means Pin number 2 on PORTA, as used in the board's datasheets and manuals.

+-------+-------------+-------------------------------------+
| Name | Function | Usage |
+=======+=============+=====================================+
| PA4 | GPIO | LED0 |
+-------+-------------+-------------------------------------+
| PC7 | GPIO | Push Button 0 |
+-------+-------------+-------------------------------------+
| PA5 | USART1_TX | UART Console VCOM_TX US0_TX |
+-------+-------------+-------------------------------------+
| PA6 | USART1_RX | UART Console VCOM_RX US0_RX |
+-------+-------------+-------------------------------------+

System Clock
============

The EFR32BG22 SoC is configured to use the 38.4 MHz external oscillator on the
board, and can operate a clock speeds of up to 76.8 MHz.

Serial Port
===========

The EFR32BG22 SoC has two USARTs and one EUART.
USART1 is connected to the board controller and is used for the console.

Programming and Debugging
*************************

.. zephyr:board-supported-runners::

.. note::
Before using the kit the first time, you should update the J-Link firmware
in Simplicity Studio.

Flashing
========

The sample application :zephyr:code-sample:`hello_world` is used for this example.
Build the Zephyr kernel and application:

.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: bg22_ek4108a
:goals: build

Connect the bg22_ek4108a to your host computer using the USB port and you
should see a USB connection.

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'll see the following message on the corresponding serial port
terminal session:

.. code-block:: console

Hello World! bg22_ek4108a/efr32bg22c224f512im40

Bluetooth
=========

To use the BLE function, run the command below to retrieve necessary binary
blobs from the SiLabs 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: bg22_ek4108a
:goals: build

.. _EFR32BG22 Website:
https://www.silabs.com/wireless/bluetooth/efr32bg22-series-2-socs#

.. _EFR32BG22 Datasheet:
https://www.silabs.com/documents/public/data-sheets/efr32bg22-datasheet.pdf

.. _EFR32xG22 Reference Manual:
https://www.silabs.com/documents/public/reference-manuals/efr32xg22-rm.pdf

.. _BRD4108A User Guide:
https://www.silabs.com/documents/public/user-guides/ug509-bg22-ek4108a.pdf
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,6 @@ means Pin number 2 on PORTA, as used in the board's datasheets and manuals.
| PA6 | USART1_RX | UART Console VCOM_RX US0_RX |
+-------+-------------+-------------------------------------+

The default configuration can be found in
:zephyr_file:`boards/silabs/dev_kits/xg22_ek2710a/xg22_ek2710a_defconfig`

System Clock
============

Expand Down
50 changes: 50 additions & 0 deletions boards/silabs/explorer_kits/xg22/xg22_ek2710a.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/*
* Copyright The Zephyr Project Contributors
*
* SPDX-License-Identifier: Apache-2.0
*/

/dts-v1/;
#include <silabs/xg22/efr32mg22e224f512im40.dtsi>
#include "xg22_explorer_kit.dtsi"

/ {
model = "Silicon Labs BRD2710A (xG22 Explorer Kit)";
compatible = "silabs,xg22_ek2710a", "silabs,efr32mg22";
};

&radio {
pa-voltage-mv = <1800>;
};

&hfxo {
ctune = <140>;
precision = <50>;
status = "okay";
};

&lfxo {
ctune = <25>;
precision = <50>;
status = "okay";
};

&em23grpaclk {
clocks = <&lfxo>;
};

&em4grpaclk {
clocks = <&lfxo>;
};

&prortcclk {
clocks = <&lfxo>;
};

&rtccclk {
clocks = <&lfxo>;
};

&wdog0clk {
clocks = <&lfxo>;
};
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
identifier: xg22_ek2710a
name: EFR32xG22 Explorer Kit (xG22-EK2710A, BRD2710A)
name: EFR32xG22E Explorer Kit (xG22-EK2710A, BRD2710A)
type: mcu
arch: arm
ram: 32
Expand Down
10 changes: 10 additions & 0 deletions boards/silabs/explorer_kits/xg22/xg22_ek2710a_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright The Zephyr Project Contributors
# SPDX-License-Identifier: Apache-2.0

CONFIG_ARM_MPU=y
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_SERIAL=y
CONFIG_GPIO=y
CONFIG_HW_STACK_PROTECTION=y
CONFIG_REGULATOR=y
Loading
Loading