Commit Graph

20 Commits

Author SHA1 Message Date
Aksel Skauge Mellbye
fccc0a7544 drivers: pwm: silabs: Add TIMER PWM driver for Series 2
Add PWM driver for the Timer peripheral on Series 2.
The TIMER uses the high-frequency EM01 Group A clock, and has
a 16- or 32-bit counter. It supports PWM period and pulse capture
on channel 0, and PWM output on all channels.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-06-25 14:07:40 +02:00
Aksel Skauge Mellbye
566fc7a7db drivers: pwm: silabs: Add LETIMER PWM driver for Series 2
Add PWM driver for the Low Energy Timer peripheral on Series 2.
The LETIMER runs at up to 32 kHz and has a 24-bit counter. It
only supports PWM output, it does not support input capture.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-06-25 14:07:40 +02:00
Tamas Jozsi
e4dc7c9fb1 soc: silabs: Add support for the MGM240SD22VNA
Also introduce the framework to support other
Silicon Labs modules.

Signed-off-by: Tamas Jozsi <tamas.jozsi@silabs.com>
2025-06-21 15:31:36 +02:00
Jori Rintahaka
133f5bc3c2 drivers: bluetooth: hci: refactor silabs controller init
Refactor the controller init to use the new init routines the
controller now provides. Instead of using a hardcoded set of
features, the features are now initialized based on Kconfig
values that the application selects.

Add config files under modules/hal_silabs, used by the controller
init routines in the external module hal_silabs to determine which
features to enable based on Kconfig options. This brings the
controller feature configurability to roughly parity with the
Simplicity SDK.

Signed-off-by: Jori Rintahaka <jori.rintahaka@silabs.com>
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-06-18 17:45:51 -04:00
Aksel Skauge Mellbye
7e517786ed modules: hal_silabs: Update HAL to v2025.6.0
Update the Simplicity SDK HAL for Silicon Labs Series 2
devices to v2025.6.0.

The em_core source file no longer exists in the latest version
of the HAL, and is removed.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-06-18 17:45:51 -04:00
Kalle Kietäväinen
c8e93401d0 drivers: bluetooth: silabs: Set maximum TX power
Honor Kconfig option `BT_CTLR_TX_PWR_ANTENNA` for limiting the maximum TX
power. The default value for this option is 0 dBm, which means that after
this change the actual TX power is likely lower than before, unless
increased by this option.

Signed-off-by: Kalle Kietäväinen <kalle.kietavainen@silabs.com>
2025-02-13 16:44:21 +01:00
Martin Hoff
d9164456c6 modules: hal_silabs: Update CMake with new EMDRV hal
Update Cmake to include hal EMDRV header
It also adds dmadrv source when CONFIG_SOC_GECKO_LDMA is selected

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-02-12 16:03:39 +01:00
Aksel Skauge Mellbye
e338657642 modules: hal_silabs: Apply PA configuration from device tree
Propagate device tree configuration for the power amplifier to
the HAL configuration header.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-04 09:19:53 +01:00
Christian Galante
014a869ecf module: hal_silabs: enable acmp module in series 2 hal
This enables silabs series 2 hal source files for the silabs
acmp module to be compiled when the SOC_SILABS_ACMP
configuration is selected.

Signed-off-by: Christian Galante <christian.galante@silabs.com>
2025-02-03 11:16:57 +01:00
Johan Hedberg
77a350efa7 drivers: bluetooth: silabs_efr32: Add support for vendor HCI extensions
Add a Kconfig option which can be used to enable vendor HCI extensions for
Silicon Labs EFR32 devices.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2025-01-31 09:40:33 +01:00
Aksel Skauge Mellbye
df9660f918 modules: hal_silabs: Update HAL version
Update HAL to Simplicity SDK 2024.12.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-01-14 13:26:00 +01:00
Johan Hedberg
5f963feed4 modules: hal_silabs: Add stubs to support CONFIG_BUILD_ONLY_NO_BLOBS
Add empty function stubs to support building with the newly introduced
CONFIG_BUILD_ONLY_NO_BLOBS option.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2024-12-25 03:37:53 +01:00
Martin Hoff
fc562b9a7b drivers: dma: Add initial support for silabs LDMA
Initial support of silabs LDMA using hal library em_ldma.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2024-12-16 18:24:51 +01: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
Aksel Skauge Mellbye
da6ddc92cd drivers: timer: silabs: Add sleeptimer timer driver
Add OS timer implementation making use of the Sleeptimer HAL.
Sleeptimer integrates tightly with the Silabs Power Manager HAL,
and must be used as the OS timer to achieve optimal power consumption
when using the radio.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-10-24 17:51:01 +02:00
Aksel Skauge Mellbye
d12de2d6b4 soc: silabs: Add soc_prep_hook() for Series 2
CMSIS SystemInit is not used in Zephyr. Implement the functionality
that isn't already done by Zephyr startup using soc_prep_hook().

The reason the lack of TrustZone init did not create immediately obvious
issues previously is that SMU faults can only happen if the SMU clock is
enabled.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-10-24 14:07:25 +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
955aca6c09 soc: silabs: Initialize clock manager HAL from DT
Swap from the deprecated device_init_* functions to clock manager
for clock tree configuration. Populate config headers using
device tree representation of clock tree and oscillator config.

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
Johan Hedberg
60462266e3 modules: hal_silabs: Move CMake and Kconfig to the main tree
Move the CMakeLists.txt and Kconfig files from the hal_silabs tree under
modules/hal_silabs in the main tree. This also includes all Zephyr shim
code from the hal_silabs tree.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2024-10-22 20:41:23 +02:00