Commit Graph

146 Commits

Author SHA1 Message Date
Jérôme Pouiller
87bd628ef5 boards: silabs: swix91x: Add support for Wifi
Report WiFi declaration in the board definitions.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-02-11 22:07:11 +01:00
Jérôme Pouiller
c75740a77c boards: silabs: siwx91x: Add support for Bluetooth
Report Bluetooth HCI declaration in the board definitions.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-02-11 22:07:11 +01:00
Jérôme Pouiller
24a0d0a54f boards: silabs: siwx91x: Add support for Flash
A specific section of the flash on the SiWx917 is reserved for the
Network co-processor (NWP). This zone needs to be delimited in order to
not overwrite it. We then need to use "code-partition" to provide Zephyr
the application code flash location.

Co-authored-by: Martin Hoff <martin.hoff@silabs.com>
Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-02-11 22:07:11 +01:00
Jérôme Pouiller
3fad258adc boards: silabs: siwx91x: Add support for DMAs
Report DMA configuration in the board definitions.

Note the addresses of the DMA buffers are hardcoded in the HAL. So,
these areas have to be declared in the linker file.

Co-authored-by: Sai Santhosh Malae <santhosh.malae@silabs.com>
Signed-off-by: Sai Santhosh Malae <santhosh.malae@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-02-11 22:07:11 +01:00
Jérôme Pouiller
300f4fe3f4 boards: silabs: siwx91x: Add support for hardware RNG
Report entropy configuration in the board definitions.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-02-11 22:07:11 +01:00
Jérôme Pouiller
42a8c06587 boards: silabs: siwx91x: Add support for GPIOs
Report gpio configuration in the board definitions.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-02-11 22:07:11 +01:00
Jérôme Pouiller
1f887ca6e3 boards: silabs: siwx91x: Add support for pinctrl
Report pinctrl configuration in the board definitions.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-02-11 22:07:11 +01:00
Jérôme Pouiller
aac0b343b5 soc: silabs: Introduce new SoC SiWG917
Introduce minimal support for Silicon Labs SiWx91x family. SiWx91x
provide many device and especially Bluetooth and Wifi connectivity. This
patch prepare Zephyr to receive further drivers.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-02-11 22:07:11 +01:00
Martin Hoff
c901551825 driver: dma: silabs: Add signal binding to support P2M and M2P transfer
Improve the silabs ldma driver to support P2M and M2P transfer. It also
adds signal binding to support source request binding in the dts.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-02-05 15:02:35 +01:00
Aksel Skauge Mellbye
90e55bae43 dts: silabs: Add radio binding for Series 2
Add the radio on Series 2 devices to device tree and move the
BT HCI node inside it.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-04 09:19:53 +01:00
Christian Galante
9f563b4685 dts: arm: silabs: instantiate acmp nodes for xg2x parts
Defines an acmp node for xg21, xg23, xg24, xg27 and xg29
parts, which are all compatible with the silabs,acmp
binding.

Signed-off-by: Christian Galante <christian.galante@silabs.com>
2025-02-03 11:16:57 +01:00
Aksel Skauge Mellbye
120691a155 drivers: pinctrl: silabs: Add support for analog bus allocation
The GPIO peripheral on Silabs Series 2 devices is responsible for
allocating analog buses to analog peripherals. Enable support for
this in the pinctrl driver. Since these bus allocations are not
digital pins, introduce a new property silabs,analog-bus for this
purpose.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-01-30 18:30:01 +01:00
Bastien Beauchamp
1e75491cdb dts: arm: silabs: Remove exit latency and min residency on Silabs S2 SoCs
The exit latency and min residency is handled by sl_power_manager.
This improve power consumption by letting the device sleep longer.

Signed-off-by: Bastien Beauchamp <bastien.beauchamp@silabs.com>
2025-01-23 19:23:27 +01:00
Martin Hoff
2f5f39fa37 dts: arm: change usart binding of silabs series 2 boards
Make the Silabs series 2 boards use the new USART driver
"silabs,usart-uart".

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-01-21 19:29:25 +01:00
Aksel Skauge Mellbye
2d3539b19a soc: silabs: Add support for xG29 device family
Add EFR32MG29 and EFR32BG29 device families.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-01-20 16:34:50 +01:00
Yishai Jaffe
62ea40bb9e drivers: spi: silabs: remove gecko from name
Gecko is being phased out so we changed every mention of gecko in the
silabs spi drivers

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2025-01-16 22:43:59 +01:00
Yishai Jaffe
0f948fdb1c soc: silabs: efr32xg23: add DMA support
Added DMA support to efr32xg23 socs and boards containing them.

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2024-12-30 19:47:19 +01:00
Daniel Fuchs
f0fee215ab soc: introduce the EFR32MG24B210F1536IM48
The EFR32MG24B210F1536IM48 has 4 more GPIOs than the
EFR32MG24B310F1536IM48, and does not support the high accuracy
mode for the IADC.

Signed-off-by: Daniel Fuchs <software@sagacioussuricata.com>
2024-12-30 08:43:12 +01:00
Yishai Jaffe
503721bbcc boards: silabs: removed FLASH_BASE_ADDRESS
Removed FLASH_BASE_ADDRESS configuration from various boards' Kconfig.
The only thing needed in order to do this was to update the relevant dtsi
files so that the flash0 node has its reg property configured properly.

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2024-12-20 16:06:04 +01:00
Yishai Jaffe
5694b24a6e soc: silabs: Add support for SiLabs EFR32ZG23 SoC
Add support for Silicon Labs EFR32ZG23 SoC.

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2024-12-18 20:32:46 +01:00
Martin Hoff
4c3c67bf24 dts: arm/silabs: add dma node for efr32(mg2x/bg2x)
Update dts for efr32mg2x and efr32bg2x board that support silabs ldma

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2024-12-16 18:24:51 +01:00
Aksel Skauge Mellbye
26215a7d3b boards: silabs: Remove usage of no-op pin number macro
The GECKO_PIN() macro does not do anything except pass the
argument through unaltered. It only serves to make DeviceTree
files more verbose. It was inconsistently used, make the .dts
files consistent by never using it.

The DBUS pinctrl driver doesn't use the port or location macros
from the gpio_gecko.h header. The pin number macro is the only
other thing defined in this header. Stop including the header on
Series 2 based boards.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-11-27 22:51:55 -05:00
Aksel Skauge Mellbye
a40a26db32 boards: silabs: Use DBUS pinctrl driver for Series 2 boards
Swap from silabs,gecko-pinctrl to silabs,dbus-pinctrl for all boards
with Series 2 SoCs. Explicitly declare pin properties as part of
pinctrl pinout configuration.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-11-27 22:51:55 -05:00
Aksel Skauge Mellbye
8fc5514a94 soc: silabs: Only initialize HFXO Manager if HFXO is enabled
Only initialize the HFXO Manager HAL driver if the HFXO is enabled in
DeviceTree, the device uses SYSRTC for timekeeping, and Power Manager
is enabled. HFXO Manager integrates with the Sleeptimer HAL driver for
SYSRTC to autonomously wake the HFXO prior to Sleeptimer wakeup from
deep sleep. It is not needed on devices that don't have HFXO-SYSRTC
integration, and it is not needed if the application doesn't use deep
sleep.

Add missing call to init_hardware() prior to init().

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-10-25 14:09:36 +02:00
Reto Schneider
de04a0e7cd dts: arm: silabs: sim3u: Add crypto support node
This is needed for Si32 crypto driver support.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2024-10-24 17:52:05 +02:00
Aksel Skauge Mellbye
f302daf67a dts: arm: silabs: Describe RTC timers correctly
The DT node "stimer0" represented two different hardware timers,
RTCC and SYSRTC. Use the correct peripheral names for the nodes.
Add interrupt names and missing interrupt numbers.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-10-24 17:51:01 +02:00
Johan Hedberg
393ecf4426 drivers: bluetooth: Rename Silabs HCI driver
Rename the Silabs HCI driver to hci_silabs_efr32.c to better indicate what
hardware it supports. Also rename the associated devicetree binding and
Kconfig options to be consistent with the new driver name.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2024-10-23 16:50:39 +02:00
Aksel Skauge Mellbye
634976f535 dts: silabs: Add clock bindings and clock tree
Introduce bindings for Series 2 oscillators: HFRCODPLL, HFRCOEM23,
LFRCO and LFXO.

Add clock tree representation in devicetree `clocks` node.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-10-22 20:41:23 +02:00
Aksel Skauge Mellbye
25e998fc04 soc: silabs: Enable device init on EFR32MG21
Switch EFR32MG21 to use the device init HAL. This makes the init sequence
the same as the rest of Series 2.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-10-22 20:41:23 +02:00
Aksel Skauge Mellbye
3d0909ed18 soc: silabs: Initialize DCDC from device tree
The DC-DC converter was unconditionally initialized with default
settings on Series 2. Add device tree binding and nodes, and guard
call to init function. Map DT options to config header from HAL.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-10-22 20:41:23 +02:00
Teresa Zepeda Ventura
6773f33445 drivers: spi: gecko: add new driver for SPI communication via EUSART
Added a new driver to support SPI communication via EUSART. Since the
Silabs EFR32MG24 family SoCs have only one USART, EUSART support is
necessary for implementing SPI functionality.

Signed-off-by: Teresa Zepeda Ventura <teresa.zvent@gmail.com>
2024-10-21 12:46:21 +02:00
Teresa Zepeda Ventura
33594595c9 boards: sparkfun: Add SPI support over EUSART in devicetree
Modified devicetree to integrate support for EUSART in pincontrol settings.

Signed-off-by: Teresa Zepeda Ventura <teresa.zvent@gmail.com>
2024-10-21 12:46:21 +02:00
Aksel Skauge Mellbye
bda8ae8c3f drivers: clock_control: silabs: Add clock control driver
Add clock control driver for Silicon Labs Series 2 and newer.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-09-30 17:12:01 +01:00
Reto Schneider
3bc3ca8620 dts: arm: silabs: sim3u: Add DMA support node
This is needed for Si32 DMA driver support.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2024-09-10 12:38:36 -04:00
Michael Zimmermann
aa3f46cbbf drivers: serial: Add initial SiM3U1xx support
This supports polling and interrupt APIs, but not the async API.

Signed-off-by: Michael Zimmermann <michael.zimmermann@grandcentrix.net>
2024-08-26 18:51:36 +02:00
Michael Zimmermann
2ab246d17e drivers: gpio: Add initial SiM3U1xx support
This is just the driver for banks 0 to 3. Bank 4 will come via a
separate commit since it needs a different driver.

Signed-off-by: Michael Zimmermann <michael.zimmermann@grandcentrix.net>
2024-08-26 18:51:36 +02:00
Michael Zimmermann
d49cc8a56f drivers: clock_control: Add initial SiM3U1xx support
This serves two main purposes:
- change the CPU clock via devicetree nodes
- provide the APB frequency to device drivers via the clock driver
  interface

Theoretically this could also support choosing between the available
clock sources, but right now we only support LPOSC0 going into PLL0,
going into AHB.

Turning the PLL back off is also not supported since the only current
use case is to set the PLL frequency, turn it on, and switch the AHB
over to it.

Signed-off-by: Michael Zimmermann <michael.zimmermann@grandcentrix.net>
2024-08-26 18:51:36 +02:00
Michael Zimmermann
5a1c4cd2e9 soc: Add initial SiM3U1xx support
This is the bare minimum and includes the SoC, pinctrl, flash and
devicetree.

I had to include the flash driver that early because I couldn't make
Zephyr compile without flash driver nodes in the device tree.

Signed-off-by: Michael Zimmermann <michael.zimmermann@grandcentrix.net>
2024-08-26 18:51:36 +02:00
Teresa Zepeda Ventura
1f9f335882 soc: silabs: add configuration for silabs soc EFR32MG24B020F1536IM40
Added configurations and dts for soc part number EFR32MG24B020F1536IM40

Signed-off-by: Teresa Zepeda Ventura <teresa.zvent@gmail.com>
2024-08-12 15:14:56 +02:00
Jordan Yates
cc37eac6bd dts: cleanup leading spaces
Cleanup leading spaces found via the following regexes:
  r" compatible ="
  r"^  "
in:
  zephyr/**/*.dts
  zephyr/**/*.dtsi

Signed-off-by: Jordan Yates <jordan@embeint.com>
2024-06-21 08:46:12 -04:00
Johan Hedberg
3ecd7dbd4c Bluetooth: drivers: Convert Silabs HCI driver to new API
Convert the slz_hci.c HCI driver to use the new HCI driver API. This also
fixes the HCI bus type to correctly indicate VIRTUAL instead of UART.

Signed-off-by: Johan Hedberg <johan.hedberg@gmail.com>
2024-06-11 19:42:49 -04:00
Arunmani Alagarsamy
b116bc7da0 boards: silabs: efr32_radio: Remove duplicate usart0 definition
In the <board>.dts file, the definition for usart0 was found to be
redundant as the same information is already provided in the included
.dtsi file. this commit removes the duplicate definition of usart0,
resulting in a cleaner and more maintainable device tree configuration.

Signed-off-by: Arunmani Alagarsamy <arunmani.a@capgemini.com>
2024-05-07 09:50:10 +02:00
Arunmani Alagarsamy
78150c8e1b boards: silabs: Add I2C node
Add i2c pincntrl to silabs boards that supports pinctrl api.

Signed-off-by: Arunmani Alagarsamy <arunmani.a@capgemini.com>
2024-04-25 18:07:48 -04:00
Sharad Patil
517574ac90 dts: arm: silabs: 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>
2024-01-30 08:46:25 +01:00
Sateesh Kotapati
a03c1ace6b gecko: service files updated | Update to GSDK 4.4.0
Updated the files present in device_init, hfxo_manager, power_manager
and sleeptimer folder as per latest version of gecko_sdk.
Added SL_DEVICE_INIT_HFXO_PRECISION in sl_device_init_hfxo_config.

Signed-off-by: Sateesh Kotapati <sateesh.kotapati@silabs.com>
2024-01-24 13:23:00 +01:00
Wilfried Chauveau
5b3d4598a7 dts: arm: Blanket remove all usages of arm,num-mpu-regions
This removes all occurrences of arm,num-mpu-regions relying on the value
reported by the register instead.
A user may still define this property if they need to have a compile time
definition for it.

Signed-off-by: Wilfried Chauveau <wilfried.chauveau@arm.com>
2023-12-01 10:48:00 +00:00
Franciszek Zdobylak
1d01f5c6b9 dts: arm: silabs: Move gpio gecko header include
Move the include to places where it is actually used.

Signed-off-by: Franciszek Zdobylak <fzdobylak@antmicro.com>
2023-11-20 13:02:49 +01:00
Franciszek Zdobylak
6f91fd858c dts: arm: silabs: Configure hfxo in dtsi
This commit moves configuration of hfxo from headers defined on board level
to device trees of SoCs.

Signed-off-by: Franciszek Zdobylak <fzdobylak@antmicro.com>
2023-11-20 13:01:39 +01:00
Yonatan Schachter
5adc6d5203 dts: silabs: Added pinctrl nodes for Silabs devices
Added pinctrl nodes for Silabs SoCs where they were missing:
efm32pg, efm32hg, efm32wg, efr32mg21.

Signed-off-by: Yonatan Schachter <yonatan.schachter@gmail.com>
2023-10-04 10:30:00 +03:00
Fabio Baltieri
5eb2e5eb2b dts: efm32_pg_1b: add pin-controller binding
This platform (SOC_SERIES_EFM32PG1B) is also using SOC_GECKO_SERIES1 and
needs a pinctrl device defined to build the gecko-uart driver
successfully.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-09-19 18:43:57 -04:00