Commit graph

7,339 commits

Author SHA1 Message Date
Zhiyuan Tang
222be8cf74 soc: rtl8752h: add essential SoC initialization
Add initialization of critical components for the RTL8752H
series.

Key initializations include:
- Realtek OS abstraction layer.
- Clock active mode settings.
- Power Management (PM).
- PHY  modules.
- Bluetooth controller ROM initialization.

Note: A mechanism is introduced to synchronize the RAM Vector Table between
Realtek's ROM code (which writes raw ISRs) and Zephyr's interrupt
management subsystem (sw_isr_table).

Signed-off-by: Zhiyuan Tang <zhiyuan_tang@realsil.com.cn>
2026-03-18 08:39:10 -05:00
Khai Cao
5c6df0e1df soc: renesas: ra: Add Kconfig.sysbuild for second-core launcher
Add Kconfig.sysbuild for ek_ra8d2 second-core launcher

Signed-off-by: Khai Cao <khai.cao.xk@renesas.com>
2026-03-18 08:38:02 -05:00
Axel Le Bourhis
d7912cf2e4 soc: nxp: mcxw70: enable BLE support
- Add NBU pinmux to configure HDI mode with external radio
- Define nbu_handler to the MU interrupt handler
- Enable TSTMR0 clock at init
- Enable connectivity framework, MCMGR, rpmsg-lite
- Enable MU driver when selecting NXP_RF_IMU
- Disable LPUART1 to avoid pin conflicts with radio interface

Signed-off-by: Axel Le Bourhis <axel.lebourhis@nxp.com>
2026-03-18 08:37:20 -05:00
Axel Le Bourhis
388fe4b4d8 dts: bindings: nxp,nbu: add pinctrl to support external radio
When using an external radio, we need to configure pins for HDI mode.
Since it's specific to NBU, we can add this control in the nxp_nbu
driver.

Signed-off-by: Axel Le Bourhis <axel.lebourhis@nxp.com>
2026-03-18 08:37:20 -05:00
Axel Le Bourhis
76789229e7 soc: mcxw70: define the shared memory on the device tree
Define a shared memory section in STCM, this shared memory is used
to transmit data to the NBU core.
This shared STCM section must be used through non-secure address range
because the NBU core can only access non-secure memory regions, and
the main core must reference non-secure addresses in the data shared
with the NBU core.

Since the MCXW70 doesn't have an SMU2, reworked the sections.ld file
to use a macro-based approach to determine the node label.
This allows to differentiate devices that have SMU2 from those that
don't, while reusing the same sections.ld file.
Use "stcm_shared" as node label for MCXW70.
Use node status in sections.ld since all regions are not available
on all SoCs.

Signed-off-by: Axel Le Bourhis <axel.lebourhis@nxp.com>
2026-03-18 08:37:20 -05:00
Lucien Zhao
a56964ddf1 soc: nxp: imxrt118x: Add FLEXSPI2 clock configuration
- Configure FLEXSPI2 root clock using SYS_PLL3_PFD2 with divider 2
  when FLEXSPI2 is enabled and not used for XIP flash

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2026-03-18 18:23:01 +09:00
Yuzhuo Liu
66feaaf25f drivers: counter: add Realtek Bee series driver
Add counter timer driver support for Realtek Bee series SoCs,
including RTL87x2G and RTL8752H.

This driver is based on the hardware timer and supports:
- Relative alarm configuration
- Top value configuration

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-03-18 18:22:17 +09:00
Lucien Zhao
ba77cd548f soc: imxrt118x: align TRDC init with MCUX SDK
BOARD_GrantTRDCFullPermissions() flow:
- Request TRDC ownership via ELE for AON/MEGA/WAKEUP
- Apply SDK-aligned DAC (including TRDC3 MDAC assignments)
- Grant full access control settings for TRDC1/TRDC2

Refactor the implementation out of soc.c into a dedicated trdc_setup.c
file to keep soc.c focused on early init sequencing, and add it to the
SoC CMakeLists.

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2026-03-18 18:20:43 +09:00
Lucien Zhao
9429aa4e60 soc: imxrt118x: raise VDD_SOC for cm7 core
- Increase default DCDC/core voltage to 1.125 V for improved margin.

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2026-03-18 18:19:48 +09:00
Lucien Zhao
b5800c5357 soc: imxrt118x: harden CM7 kick-off sequence
- Gate off M7 clock before clearing M7_CFG[WAIT] (CPUWAIT) and gate
  it back on after the deassert. (This is the process requirement
  in RT118X RM)

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2026-03-18 18:19:48 +09:00
Petr Buchta
887474be01 boards: nxp: frdm_mcxa577: Fix MCUboot header size
The default value 0x200 wasn't compatible with IVT alignment which  was
set to 0x400 due to large number of ISR.

Signed-off-by: Petr Buchta <petr.buchta@nxp.com>
2026-03-18 12:45:32 +09:00
Hui Bai
36e899816b soc: nxp: rw: Disable AVPLL and TDDR when doing clock initialization.
The RW612 will enter PM_STATE_RUNTIME_IDLE mode when idle but the
average current is higher than expected. The expected current should be
around 15mA but the actual current is nearly 18mA.
By disabling AVPLL and TDDR clock in clock_init, the current of
PM_STATE_RUNTIME_IDLE mode is ok, which is around 15.5mA

Signed-off-by: Hui Bai <hui.bai@nxp.com>
2026-03-18 11:03:20 +09:00
CHEN Xing
a305e6de1d soc: microchip: sam: update for sama7g5 tc
Update MMU and GCLK configurations for tc

Signed-off-by: CHEN Xing <xing.chen@microchip.com>
2026-03-17 18:27:21 -04:00
Kate Wang
d70c6ca75c soc: nxp: imxrt11xx: add LCDIFV2 clock and device tree support
Add clock initialization and device tree node for the LCDIFV2 display
controller on i.MX RT11xx SoCs.

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2026-03-17 18:26:04 -04:00
Fabio Baltieri
c0c1b9010c soc: realtek: select HAS_PM for RTS5912
Select HAS_PM for RTS5912, this SoC supports PM and there's some
"default y" entries for it, resulting in a combination where PM is
selected and cannot be unselected.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2026-03-17 18:25:46 -04:00
Jamie McCrae
f22592cbc5 tree: Replace FIXED_PARTITION_* macro usage with PARTITION_*
Replaces usage of these deprecated macros with ones that support
fixed and mapped partition compatibles. Also includes an update to
hal_espressif which also (rightly or wrongly) has zephyr specific
code in it

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2026-03-17 18:24:52 -04:00
Jamie McCrae
3b3697732a dts: Remove ranges properties
This change is being reverted as devices should be updated to use
the new zephyr,mapped-partitions binding instead in which the
ranges property should be used

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2026-03-17 18:24:52 -04:00
Chay Guo
6af9a61033 boards: nxp: mimxrt685_evk: Add ACMP support
Added the ACMP instance support with corresponding clock configuration.

Signed-off-by: Chay Guo <changyi.guo@nxp.com>
2026-03-17 18:24:04 -04:00
Jjateen Gundesha
786f040751 soc: nxp: imx943: fix pm_mcore link failure when SCMI helpers absent
SOC_IMX943_PM_MCORE had no dependency on NXP_SCMI_CPU_DOMAIN_HELPERS,
causing pm_mcore.c to be compiled even when the scmi_nxp_cpu_* symbols
were not built, resulting in undefined reference link failures.

Fix by adding depends on NXP_SCMI_CPU_DOMAIN_HELPERS to the Kconfig
entry, ensuring pm_mcore.c is only compiled when the full SCMI CPU
domain stack is present. With this change, enabling CONFIG_PM=y without
the required SCMI stack is caught at Kconfig level rather than failing
at link time.

Fixes #103992

Signed-off-by: Jjateen Gundesha <jjateen97@gmail.com>
2026-03-17 18:23:09 -04:00
Peter Marheine
5fec964b23 soc: ite: remove unnecessary __soc_handle_irq trampoline
Defining `__soc_handle_irq` (part of the code path run on every
interrupt) as a jump to `get_irq` introduces unnecessary latency to
interrupt handling and inflates code size. Since `get_irq` is not
otherwise called, rename it to `__soc_handle_irq` and delete the old
trampoline.

The signature of the function is changed to match the declaration of
`__soc_handle_irq`, which is possible since commit
495a3281d4679c19703810afbac9607d16ac6788 corrected its declaration.

Signed-off-by: Peter Marheine <pmarheine@chromium.org>
2026-03-17 18:23:00 -04:00
Holt Sun
7607e9fa1e dts: soc: arm: nxp: mcxw: designate lptmr0 as system timer via chosen
Set zephyr,system-timer = &lptmr0 in the MCX-W7x and MCX-W70 DTSI
/chosen nodes. lptmr1 remains available for use by the counter driver.
Both drivers can be active simultaneously since they use separate
hardware instances.

Update SYS_CLOCK_HW_CYCLES_PER_SEC in the MCX-W7xx SoC defconfig to
resolve the clock frequency from the chosen node path instead of the
lptmr0 nodelabel.

Signed-off-by: Holt Sun <holt.sun@nxp.com>
2026-03-17 18:22:50 -04:00
Holt Sun
c4efe9821c dts: soc: arm: nxp: imx95: designate lptmr1 as system timer via chosen
Set zephyr,system-timer = &lptmr1 in the i.MX95 DTSI /chosen node.
lptmr2 remains available for use by the counter driver. Both drivers
can be active simultaneously since they use separate hardware instances.

Default MCUX_LPTMR_TIMER to y in the i.MX95 SoC defconfig and resolve
SYS_CLOCK_HW_CYCLES_PER_SEC from the chosen node path instead of a
hard-coded node address.

Signed-off-by: Holt Sun <holt.sun@nxp.com>
2026-03-17 18:22:50 -04:00
Alessandro Manganaro
69c9392640 soc: st: stm32: stm32wbax: Implementing ram retention in s2ram
Implementing the stm32wba power controller interface to manage
the ram retention in s2ram power state.

According the defined RAM, only the required pages will be retained.
This memory size can be modified by the overlay mechanism matching
the RAM required by the application and highlighted
in the building report.

Signed-off-by: Alessandro Manganaro <alessandro.manganaro@st.com>
2026-03-17 18:22:16 -04:00
Laura Carlesso
0bbc5ee22a soc: infineon: kit_pse84_eval: Enable relocate code config on cm33
Set CONFIG_CODE_DATA_RELOCATION for cm33 core so
that code that needs to be executed from RAM rather
than ext flash gets properly relocated
Additionally, ensure that the SRAM memory allows code
to be executed from it so set the MPU appropriately.
This aligns the strategy with the cm55 core for which all
this is already in place but does it by properly
setting the MPU regions from the start.

Signed-off-by: Laura Carlesso <laura.carlesso@infineon.com>
2026-03-17 18:22:07 -04:00
Aksel Skauge Mellbye
116e81fb6b soc: silabs: Enable RF path switch configuration
Configure and enable the RF path switch at boot if present.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2026-03-17 18:19:13 -04:00
Aksel Skauge Mellbye
52f1869e08 soc: silabs: Make radio init generic
Add a more generic function `soc_radio_init` to enable additional
operations to be performed as part of radio init.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2026-03-17 18:19:13 -04:00
Etienne Carriere
0505085d0c soc: st: stm32wba: disable debug when powering off
Disable debug support when powering off through the SoC STANDBY
state to prevent draining current.

When CONFIG_STM32_ENABLE_DEBUG_SLEEP_STOP is enabled, debug remains
powered in standby state which is expected when sleeping but not when
powering off.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-17 18:18:07 -04:00
Etienne Carriere
53dc8d1268 soc: st: stm32f1: disable debug when powering off
Disable debug support when powering off through the SoC STANDBY
state to prevent draining current.

When CONFIG_STM32_ENABLE_DEBUG_SLEEP_STOP is enabled, debug remains
powered in standby state which is expected when sleeping but not when
powering off.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-17 18:18:07 -04:00
Etienne Carriere
0fad29251d soc: st: stm32l1: disable debug when powering off
Disable debug support when powering off through the SoC STANDBY
state to prevent draining current.

When CONFIG_STM32_ENABLE_DEBUG_SLEEP_STOP is enabled, debug remains
powered in standby state which is expected when sleeping but not when
powering off.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-17 18:18:07 -04:00
Etienne Carriere
9b03adb4fe soc: st: stm32l1: use stm32_enter_poweroff() helper function
Use stm32_enter_poweroff() helper function to reach poweroff
state on stm32l1x SoCs.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-17 18:18:07 -04:00
Axel Le Bourhis
f79fbba954 soc: nxp: mcxw7x: set the core voltage to 1.1V at 96MHz
When the system clock operates at 96MHz, the core voltage must be
raised to 1.1V to ensure stability.
This fixes spurious resets occuring mainly during clock initialization.

Signed-off-by: Axel Le Bourhis <axel.lebourhis@nxp.com>
2026-03-16 19:09:20 -05:00
Jean-Pierre De Jesus DIAZ
fe9e759b50 soc: simplelink: Add cc1312r
This adds the CC1312R SoC by Texas Instruments, this requires virtually
no changes since the cc13x2_c26x2 family of SoCs already implement
everything.

One thing not yet enabled is the IEEE 802.15.4g Sub-GHz
driver for this SoC because I can't download SmartRF Studio
due to access constraints from TI.

Signed-off-by: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
2026-03-16 19:01:47 -05:00
Sreeram Tatapudi
c8bdb35f9f soc: Infineon: pse84: Updates to align with the hal_infineon changes
Updates to align with the latest assets from the hal_infineon repo

Signed-off-by: Sreeram Tatapudi <sreeram.praveen@infineon.com>
2026-03-16 19:00:42 -05:00
Michał Stasiak
374598306e soc: nordic: nrf54h: update bicrgen range
HFXO.STARTUPTIME is the last register to generate
BICR from.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2026-03-16 10:05:41 -04:00
Michał Stasiak
f20fee2431 soc: nordic: gppi_init: change included header
Name of included header has changed.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2026-03-16 10:05:41 -04:00
Michał Stasiak
19d6a35eef modules: hal_nordic: introduce nRF91 anomaly 36 config
Added Kconfig that allows enabling nRF91 anomaly 36
workaround. Added translation to MDK-based symbol
in mdk_config.h.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2026-03-16 10:05:41 -04:00
Khai Cao
483218c6ea soc: renesas: ra: Add Kconfig.sysbuild for second-core launcher
Add Kconfig.sysbuild for second-core launcher

Signed-off-by: Khai Cao <khai.cao.xk@renesas.com>
2026-03-16 12:32:21 +01:00
Christophe Guibout
55b0ebf0df soc: st: add support for stm32mp215f
Add stm32mp215f SoC variants that are close to stm32mp25x with
less features but with optimized power consumption:
- rework SOC management to handle both stm32mp25x and stm32mp21x
- Fix NUM_IRQS where last usable IRQ is 311
- Factorize Kconfig

Signed-off-by: Christophe Guibout <christophe.guibout@st.com>
2026-03-16 12:24:52 +01:00
Gerson Fernando Budke
2857fffd12 soc: atmel: sam: Add configurable MCK prescaler
Add CONFIG_SOC_ATMEL_SAM_MCK_PRESCALLER to allow configure the
Master Clock (MCK) prescaler. This is needed for SAM4E which
requires a prescaler of 2 to achieve the correct clock frequency.

Changes:
- Add SOC_ATMEL_SAM_MCK_PRESCALLER Kconfig option with default of 2 for
  SAM4E and 1 for other SAM series
- Fix SOC_ATMEL_SAM_PLLA_MULA default for SAM4E from 9 to 19 to achieve
  120MHz: 12MHz * 20 / 2 = 120MHz
- Use CONFIG_SOC_ATMEL_SAM_MCK_PRESCALLER in SoC init for
  SAM4E, SAM4S, SAMX7X

Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2026-03-16 12:21:08 +01:00
Jiafei Pan
2cb4abbe39 soc: imx93: fix cpu pm dependency
SoC's PM API actually depends on PSCI driver, and enable PM_CPU_OPS
for SoC when CONFIG_PM is enabled.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2026-03-16 12:18:18 +01:00
Holt Sun
ac16ed0c3e soc: nxp: mcxc/k32lx: use KINETIS_SIM_CLOCK_DECODE_NAME for clock sel
Replace direct comparison of the DT `name` cell against kCLOCK_* SDK
enum values with KINETIS_SIM_CLOCK_DECODE_NAME(), which extracts the
clock_name field from the encoded id cell produced by KINETIS_SIM_CLOCK().
A local DT_CLOCK_NAME() helper wraps the decode for readability.

Signed-off-by: Holt Sun <holt.sun@nxp.com>
2026-03-16 09:02:51 +01:00
Tien Nguyen
34d713a369 drivers: pinctrl: Add support for Renesas RZ/T2H
Add more ports and update function field to 8 bits to support Renesas
RZ/T2H

Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
2026-03-16 09:01:16 +01:00
Tien Nguyen
cce2310676 soc: renesas: Add support for Renesas RZ/T2H
Add support for Renesas RZ/T2H

Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
2026-03-16 09:01:16 +01:00
Tony Han
643ab1f78b soc: microchip: sam: update MMU for sama7d6 SHA
When SHA is activated in the DT, configure it's register region with
strong ordered, read and write access.

Signed-off-by: Tony Han <tony.han@microchip.com>
2026-03-16 07:26:44 +01:00
The Nguyen
74d4478e23 soc: renesas: ra: add DCACHE policy config
Add config to select writethrough or writeback mode for DCACHE on
Renesas RA family.

Signed-off-by: The Nguyen <the.nguyen.yf@renesas.com>
2026-03-16 07:24:12 +01:00
The Nguyen
cfbeecc3e4 soc: renesas: ra: enable DCACHE support
Initialize DCACHE if CONFIG_DCACHE is enabled

Signed-off-by: The Nguyen <the.nguyen.yf@renesas.com>
2026-03-16 07:24:12 +01:00
Mathieu Choplain
7dc5e73f39 drivers: gpio|pinctrl: stm32: perform pin configuration in common module
The `gpio_stm32_configure()` function is used by both the GPIO and PINCTRL
drivers to configure I/O pins. Move it to the GPIO port manager module's
code so it can be shared properly and update both drivers accordingly.

With this change, the GPIO and PINCTRL drivers are completely decoupled.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-03-13 14:27:30 -07:00
Mathieu Choplain
7e18141046 drivers: gpio|pinctrl: stm32: introduce common module for device mgmt
On STM32 hardware, the GPIO port's MMIO interface is used for two purposes
which have their own separate Zephyr API: controlling the state of digital
I/O pins directly (GPIO API) and configuring I/O pins for a specific usage
(PINCTRL API). Historically, this was handled by having the PINCTRL driver
call inside the GPIO driver which works but creates a dependency loop.

Introduce a new `GPIO port manager` module in SoC-specific common code that
takes over various from the existing GPIO/PINCTRL drivers: GPIO port device
instantiation and `GPIO port index -> device` mapping respectively.

Modify the GPIO and PINCTRL drivers to make use of this GPIO port manager
module - a first step in decoupling both drivers from each other.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-03-13 14:27:30 -07:00
Mathieu Choplain
13442977f4 drivers: gpio: stm32: move pinnum-to-LL-value helper to shared header
Move the helper function which computes the LL pin value from a pin number
to the <stm32_gpio_shared.h> header as this function can be useful for
modules other than the GPIO driver.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-03-13 14:27:30 -07:00
Mathieu Choplain
a6315d8332 drivers: gpio: stm32: move ports list to shared SoC-level header
Move the ports list from the GPIO driver to a shared SoC-specific header.
This will allow reuse from other drivers such as pinctrl.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-03-13 14:27:30 -07:00