Commit graph

126,787 commits

Author SHA1 Message Date
Alain Volmat
c73140ebd9 drivers: mipi_dsi: stm32: ensure RESET is selected
stm32 mipi dsi driver requires a reset control hence ensure that
CONFIG_RESET is properly selected to allow proper build.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-08-18 17:49:28 +02:00
Alain Volmat
54c939a069 drivers: video: stm32: dcmi: ensure RESET is selected
stm32 dcmi driver requires a reset control hence ensure that
CONFIG_RESET is properly selected to allow proper build.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-08-18 17:49:28 +02:00
Alain Volmat
4542ab9677 drivers: video: stm32: dcmipp: ensure RESET/PINCTRL are selected
stm32 dcmipp driver requires a reset control and pinctrl
(depending on the configuration) hence ensure that
CONFIG_RESET and CONFIG_PINCTRL are properly selected to allow
proper build.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-08-18 17:49:28 +02:00
Georgij Černyšiov
f38a32617a drivers: memc: stm32: FMC NOR/PSRAM add bank validation
Ensure NSBank values are validated at build time.
That helps to identify and fix incorrect bank values.

Signed-off-by: Georgij Černyšiov <geo.cgv@gmail.com>
2025-08-18 17:49:20 +02:00
Georgij Černyšiov
6df089676d drivers: memc: stm32: FMC NOR/PSRAM refactor
Simplifies the driver code:
* Use existing FMC_NORSRAM_DEVICE and FMC_NORSRAM_EXTENDED_DEVICE
  defines. No need to keep references to them in the driver's config.
* Refine initialization loop.

Signed-off-by: Georgij Černyšiov <geo.cgv@gmail.com>
2025-08-18 17:49:20 +02:00
Jordan Yates
827da4a9e0 disk: sdmmc_stm32: support clock bypass
Add support for the SDMMC clock bypass feature for those SoCs that have
it. This provides a SDMMC bus speed double that of `clk-div = <0>`.

Updated the `clk-div` documentation at the same time to be clearer on
how the bus clock speed is determined.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-08-18 17:49:14 +02:00
Jordan Yates
deb24ef099 disk: sdmmc_stm32: explicit initialisation
Explicitly initialise the SDMMC initialisation struct to make it clear
the configuration being applied.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-08-18 17:49:14 +02:00
Pavel Vasilyev
818e18eacb bluetooth: host: Use critical section when making channel ready to send
A public API call that sends ACL data — for example, `bt_gatt_notify` —
can be invoked from a preemptive thread context. This API, in turn,
calls the `raise_data_ready` function, which adds an L2CAP channel to
the `l2cap_data_ready` list.

The atomic variable used to create a critical section around
`l2cap_data_ready` did not work, because a preemptive thread can be
pre-empted at any time. This means that regardless of the `atomic_set`
result, we cannot trust it — the thread could be preempted after the
call, and the atomic variable state could be changed (specifically by
the TX processor in this case). The same issue applies to
`bt_conn_data_ready`, which is called next.

When making an L2CAP channel ready for sending data, we need to use a
critical section when appending a channel to the `l2cap_data_ready`
list. The same applies to the `conn_ready` list.

Since cooperative threads can only be rescheduled explicitly, we must
ensure there are no rescheduling points when accessing either the
`l2cap_data_ready` or `conn_ready` lists.

For `l2cap_data_ready`, this occurs in `get_ready_chan`, which is called
from `l2cap_data_pull`, which in turn is called by the TX processor. For
`conn_ready`, it occurs in `get_conn_ready`, which is also called from
the TX processor. Both functions have no rescheduling points when
working with their respective lists, so they do not require a critical
section.

This change removes the atomic variables previously used to create a
critical section for both lists, as they were ineffective. Instead,
`k_sched_lock`/`k_sched_unlock` are used where code may be executed from
a preemptive thread context. The `sys_slist_find` function is used to
check whether a channel or connection is already in the corresponding
list.

Fixes #89705

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2025-08-18 16:05:48 +02:00
Henrik Brix Andersen
faecad66c7 retention: bootmode: remove unused log module
Remove unused log module from the bootmode retention module.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2025-08-18 16:00:37 +02:00
Damian Krolik
ea7c4ff536 modules: openthread: configure router selection jitter
Add CONFIG_OPENTHREAD_ROUTER_SELECTION_JITTER_OVERRIDE
Kconfig option that enables setting the router selection
jitter to CONFIG_OPENTHREAD_ROUTER_SELECTION_JITTER at
startup.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
2025-08-18 16:00:26 +02:00
Etienne Carriere
5c10c9403a soc: st: stm32wbx: always clear wakeup flags on power off entry
STM32WBx SoCs reference manuals say that for Shutdown mode (aka Power OFF)
entry, "WUFx bits are cleared in power status register 1 (PWR_SR1)".
Therefore call LL_PWR_ClearFlag_WU() unconditionally (regarding
CONFIG_STM32_WKUP_PINS) in z_sys_poweroff() sequence.

Reference manuals references:
- STM32WB55xx/STM32WB35xx: RM0434 Rev 14, Table 34.
- STM32WB50CG/STM32WB30CE: RM0471 Rev 9, Table 32.
- STM32WB15CC: RM0473 Rev 11, Table 33.
- STM32WB10CC: RM0478 Rev 9, Table 31.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-08-18 16:00:15 +02:00
Etienne Carriere
cd2b47b3f9 soc: st: stm32wlx: always clear wakeup flags on power off entry
STM32WLx SoCs reference manual says that for Shutdown mode (aka Power OFF)
entry, "WUFx bits are cleared in power status register 1 (PWR_SR1)".
Therefore call LL_PWR_ClearFlag_WU() unconditionally (regarding
CONFIG_STM32_WKUP_PINS) in z_sys_poweroff() sequence.

Reference manuals references:
- STM32WBLEx/STM32WL5x: RM0461 Rev 10, Table 47.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-08-18 16:00:15 +02:00
Etienne Carriere
40341f73b4 soc: st: stm32u5: always clear wakeup flags on power off entry
STM32U5x SoCs reference manual says that for Shutdown mode (aka Power OFF)
entry, "WUFx bits cleared in PWR_WUSR". Therefore call
LL_PWR_ClearFlag_WU() unconditionally (regarding CONFIG_STM32_WKUP_PINS)
in z_sys_poweroff() sequence.

Reference manuals references:
- STM32U5: RM0456 Rev 5, Table 107.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-08-18 16:00:15 +02:00
Etienne Carriere
574b77dee7 soc: st: stm32l4: always clear wakeup flags on power off entry
STM32L4x SoCs reference manuals say that for Shutdown mode (aka Power OFF)
entry, "WUFx bits are cleared in power status register 1 (PWR_SR1)".
Therefore call LL_PWR_ClearFlag_WU() unconditionally (regarding
CONFIG_STM32_WKUP_PINS) in z_sys_poweroff() sequence.

Reference manuals references:
- STM32L41xx/L42xx/L43xx/L44xx/L45xx/L46xx: RM0394 Rev 5, Table 29.
- STM32L47xx/L48xx/L49xx/L4Axx: RM0351 Rev 10, Table 31.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-08-18 16:00:15 +02:00
Etienne Carriere
9116458d3c soc: st: stm32g0: always clear wakeup flags on power off entry
STM32G0x SoCs reference manuals say that for Shutdown mode (STM32G0x1)
or Standby mode (STM32G0x0) entry (used for Power OFF entry), that
"WUFx bits are cleared in Power status register 1 (PWR_SR1)".
Therefore call LL_PWR_ClearFlag_WU() unconditionally (regarding
CONFIG_STM32_WKUP_PINS) in z_sys_poweroff() sequence.

Reference manuals references:
- STM32G0x0: RM0454 Rev 5, Table 25.
- STM32G0x1: RM0444 Rev 6, Table 34.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-08-18 16:00:15 +02:00
Etienne Carriere
4601d794b9 soc: st: stm32f4: always clear wakeup flags on power off entry
STM32F4x SoCs reference manuals say that for Standby mode (aka Power OFF)
entry, "WUF bit is cleared in Power Control register (PWR_CR)" [1]
and "WUF bit is cleared in Power Control/Status register (PWR_CR)" [2].
Therefore call LL_PWR_ClearFlag_WU() unconditionally (regarding
CONFIG_STM32_WKUP_PINS) in z_sys_poweroff() sequence.

Reference manuals references:
- [1] STM32F401xx: RM0368 Rev 6, Table 20.
- [2] STM32F469xx/STM32F479xx: RM0386 Rev 6, Table 23.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-08-18 16:00:15 +02:00
Etienne Carriere
64dfb55bfe soc: st: stm32c0: always clear wakeup flags on power off entry
STM32C0x SoCs reference manual says the wakeup source status flags (from
register PWR_SR1) are not cleared by hardware and therefore should be
cleared by software before entering Standby or Shutdown power mode.
Therefore call LL_PWR_ClearFlag_WU() unconditionally (regarding
CONFIG_STM32_WKUP_PINS) in z_sys_poweroff() sequence.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-08-18 16:00:15 +02:00
Etienne Carriere
7473b64f4b soc: st: stm32g0: G0x0 SoCs use Standby mode for Power OFF
Fix STM32G0x0 SoCs power off sequence that do not support Shutdown mode
and which deppest power mode state is Standby mode.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-08-18 16:00:15 +02:00
Henrik Lindblom
97356ad45c dts: stm32u5: add stm32u595xx
Add variants of the stm32u595 chip with 2M (u595XI) and 4M (u595XJ) of
flash.

Signed-off-by: Henrik Lindblom <henrik.lindblom@vaisala.com>
2025-08-18 16:00:05 +02:00
Khaoula Bidani
112fe454fb drivers: i2c: make DMA config field conditional on I2C
This commit updates I2C_DMA_DATA_INIT() macro to use
IF_ENABLED(DT_INST_DMAS_HAS_NAME(...), (...)),
so that the DMA configuration field is only generated if the
corresponding DMA property exists in the Device Tree.
This prevents macro expansion errors and allows a mix of I2C
peripherals with and without DMA support in the same build.

Signed-off-by: Khaoula Bidani <khaoula.bidani-ext@st.com>
2025-08-18 15:59:55 +02:00
Afonso Oliveira
3cf92af0a7 soc: snps: nsim: arc_v: rmx: remove redudant compiler filtering
Remove CONFIG_SOC_SERIES_NSIM_ARC_V_RMX conditional check from
zephyr_compile_options_ifdef and apply all extensions
unconditionally when using arcmwdt compiler.

Since this CMakeLists.txt is already SoC-specific, the
additional config check is redundant.

Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
2025-08-18 15:59:41 +02:00
Afonso Oliveira
8baddeb85a snps: nsim: arc_v: update RMX100 hardware configuration
Update the hardware configuration for the Synopsys nSIM ARC-V RMX100:

- Change CLINT base address from 0x2000000 to 0xa0010000. The CLINT
  is now created by default in the RMX100 configuration, with its
  MMIO base already configured to use this address.

- Update nSIM MMIO base address to 2560 to align with the new memory
  map requirements.

- Remove PLIC support as the ARC-V RMX architecture only supports
  APLIC (Advanced Platform-Level Interrupt Controller), not PLIC.
  Note that APLIC support is not yet available in Zephyr, so
  interrupt controller functionality will be limited until APLIC
  is implemented.

- Replace legacy MPU configuration with PMP (Physical Memory Protection):
  Remove mpu_version, mpu_regions, and mpu_granule properties and add
  ARCV_PMP interface with 16 regions and granule=1. The MPU options
  were legacy and PMP is the standard RISC-V memory protection mechanism.

These changes align with the latest ARC-V RMX100 hardware memory map
and architectural requirements.

Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
2025-08-18 15:59:41 +02:00
Afonso Oliveira
1bef065c8e soc: snps: nsim: arc_v: rename SOC configuration symbols
Rename SOC configuration symbols from generic names to more specific
ones that include the vendor and platform information. This improves
clarity and prevents potential naming conflicts.

Changes:
- SOC_SERIES_RMX -> SOC_SERIES_NSIM_ARC_V_RMX
- SOC_RMX100 -> SOC_NSIM_ARC_V_RMX100

Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
2025-08-18 15:59:41 +02:00
Francois Ramu
0af1649921 boards: st: stm32h7RS target boards has pyocd runner
Add the pyocd as runner for the stm32h7s3l8 nucleo or stm32h7s78 dk
so that debugging becomes possible if openocd is not available.
Check with 'pyocd list --target'

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-08-18 15:59:23 +02:00
Mario Paja
4c450a4cfb samples: i2s: output: add nucleo_h7s3l8
Add Nucleo H7S3L8 board in samples/drivers/i2s/output

Signed-off-by: Mario Paja <mariopaja@hotmail.com>
2025-08-18 15:59:08 +02:00
Mario Paja
cfe0b9a3d8 dts: st: h7rs: add sai node for stm32h7rs
Define SAI1 A & B nodes for STM32H7RS series

Signed-off-by: Mario Paja <mariopaja@hotmail.com>
2025-08-18 15:59:08 +02:00
Mario Paja
faf5eb18a6 dts: st: h7rs: add gpdma1 node
This PR adds gpdma node on stm32h7rs series

Signed-off-by: Mario Paja <mariopaja@hotmail.com>
2025-08-18 15:59:08 +02:00
Mario Paja
85b408edf1 drivers: i2s: add sai support for stm32h7xx
Define SAI1 node for STM32H7xx series.
Add STM32H7xx related DMA configs.
Enable samples/drivers/i2s/output for nucleo_h745zi_q/m7

Signed-off-by: Mario Paja <mariopaja@hotmail.com>
2025-08-18 15:58:58 +02:00
Quang Le
c03b9b1abc dts: renesas: Add external interrupt support for Renesas RZ/A3UL, V2L
Add external interrupt nodes to Renesas RZ/A3UL, V2L

Signed-off-by: Quang Le <quang.le.eb@bp.renesas.com>
Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
2025-08-18 15:58:44 +02:00
Quang Le
be9fabb967 dts: renesas: Update interrupt nodes for Renesas RZ/G3S, N2L, T2M, T2L
- Change node's name, node's register size, node's address cells
of intc node for Renesas RZ/G3S
- Add `renesas, rz-intc` compatible and #size-cells of 0 to intc node
of Renesas RZ/G3S
- Add `reg` property to irq nodes for Renesas RZ/G3S
- Add `renesas, rz-icu` compatible for Renesas RZ/N2L, T2M, T2L

Signed-off-by: Quang Le <quang.le.eb@bp.renesas.com>
Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
2025-08-18 15:58:44 +02:00
Quang Le
efe6812ec5 drivers: intc: Add external interrupt support for Renesas RZ/A3UL, V2L
Add external interrupt support for Renesas RZ/A3UL, V2L

Signed-off-by: Quang Le <quang.le.eb@bp.renesas.com>
Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
2025-08-18 15:58:44 +02:00
Quang Le
b1d1d3a539 manifest: Update commit id for hal_renesas
Update commit id for hal_renesas

Signed-off-by: Quang Le <quang.le.eb@bp.renesas.com>
Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
2025-08-18 15:58:44 +02:00
Ha Duong Quang
7e1146fe9d doc: flash_debug: add requirement for debug probe supported
Document the S32DS and S32Debug Probe OS supported version,
and guide to upgrade the OS of the S32DebugProbe.

Signed-off-by: Ha Duong Quang <ha.duongquang@nxp.com>
2025-08-18 13:07:32 +02:00
Ha Duong Quang
0f0dd2774b west: update to support for S32DS3.6
S32DS3.6 requires to use python 3.10, so update
PYTHONPATH for S32DS3.6 when debug on windows.

Update to verify new behavior of supported commands
with S32D3.6 on windows.

Update to find out the usb device connected by VID
and PID instead of class "NXP Probes" on windows
Because based on the S32 Debug probe OS version the
device class of USB is changed. Therefore a reliable
way to identify the probe is check the USB VID and PID.

Signed-off-by: Ha Duong Quang <ha.duongquang@nxp.com>
2025-08-18 13:07:32 +02:00
S Mohamed Fiaz
be0a0f1a1e drivers: gpio: silabs: gpio driver enhancements for EFR series 2 devices
Added changes to gpio driver and Kconfig
for EFR series 2 devices.

Signed-off-by: S Mohamed Fiaz <fiaz.mohamed@silabs.com>
2025-08-18 13:07:23 +02:00
Francois Ramu
fd3cb3b03f tests: drivers: watchdog wwdg of the stm32h573 is erasing sram
When a reset coccurs the sram1 where the m_state value is stored
is erased. Then the board indefinitely reboots.
Avoid this excluding the target board.
Or set the SRAM13_RST bit in the option byte in FLASH_OPTSR2_CUR.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-08-18 13:07:00 +02:00
Francois Ramu
c32b481413 drivers: watchdog: stm32 wwdg check callback before calling
Check that the callback function exists before calling it
inside the ISR.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-08-18 13:07:00 +02:00
Łukasz Stępnicki
10941ca73e arch: riscv: added helper config to include isr wrapper
Added helper Kcoinfig option USE_ISR_WRAPPER which can be used to
include isr_wrapper even if GEN_SW_ISR_TABLE is not enabled. This
is needed to enable configurations where only IRQ vector table is
used with multithreading (only direct isr used). This change is
backward compatibible with previous config.

Signed-off-by: Łukasz Stępnicki <lukasz.stepnicki@nordicsemi.no>
2025-08-18 13:06:50 +02:00
Dmitrii Sharshakov
f581964698 samples: canopennode: add native_sim(_64) boards
Add simulated platforms to experiment with CanOpen on.

Signed-off-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com>
2025-08-18 13:06:41 +02:00
Adam Kondraciuk
612fd940fa boards: nordic: nrf54h20dk: Disable EXMIF and GPIO6 by default
External flash memory is typically not used, so it should
be disabled by default. The GPIO6 port used by this device
should also be disabled.

Signed-off-by: Adam Kondraciuk <adam.kondraciuk@nordicsemi.no>
2025-08-18 11:59:15 +02:00
Francois Ramu
0a1d63f75a boards: st: stm32h7rs boards have no TrustZone
Remove the reference to TrustZone for the stm32h7s3 nucleo and
the stm32h7s7 disco. They do not have the feature embedded.
Other fixes about non-applicable features.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-08-18 11:59:06 +02:00
Anson Mansfield
7302f72797 boards: adafruit: Add support for Adafruit Feather RP2040.
Added support for the Adafruit Feather RP2040, based on existing board
definitions for the Qt Py RP2040 and others.

Board image (c) Kattni Rembor, CC-BY-SA-3.0 per licensing info at
https://learn.adafruit.com/assets/100345.

Signed-off-by: Anson Mansfield <amansfield@mantaro.com>
2025-08-18 11:58:56 +02:00
Fabrice DJIATSA
d48026b446 drivers: dma: stm32u5: update dma_suspend function
The previous 1ms sleep introduced unnecessary latency
while waiting for the SUSPF flag.
Switching to a 750µs busy-wait provides a more responsive
and precise delay,improving performance in time-sensitive contexts.

Signed-off-by: Fabrice DJIATSA <fabrice.djiatsa-ext@st.com>
2025-08-18 11:58:08 +02:00
Philippe Peurichard
1af06e4204 samples: drivers: memc: add support of stm32f469i-disco for PSRAM
If st_stm32_fmc_sdram compatible is present, get base address and
external memory size. Add stm32f469i-disco overlay file

Signed-off-by: Philippe Peurichard <p.peurichard@gmail.com>
2025-08-18 11:57:56 +02:00
Philippe Peurichard
c7fd589415 boards: add FMC/SDRAM support for stm32f469i-disco board
On stm32f469i-disco board, a 16MBytes SDRAM external memory
is connected via FMC to STM32F4 SoC.

Signed-off-by: Philippe Peurichard <p.peurichard@gmail.com>
2025-08-18 11:57:56 +02:00
Lyle Zhu
2df8578c7a Bluetooth: Classic: SDP: Improve SDP discovery response
In current implementation, the attribute of the registered SDP record
will not be included in responding packet if the attribute data length
is more than the MAX payload size(`MIN(SDP_MTU, sad->sdp->chan.tx.mtu)
- sizeof(struct bt_sdp_hdr)`). And it causes the failure of ssa or sa
discovery.

Improve the SDP server to support the case by extending the
continuation state length. A 4 bytes space is extended to store the
attribute offset.

In this way, the attribute can be transmitted in segments according
to the reaming space of the responding buffer.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-08-18 11:57:23 +02:00
Georgij Černyšiov
84349e8566 drivers: mipi_dbi: stm32: move barriers outside of the loop
Relocate __DSB barriers outside the data write
loops to improve efficiency.

Signed-off-by: Georgij Černyšiov <geo.cgv@gmail.com>
2025-08-18 11:57:17 +02:00
Arthur Gay
404e497897 drivers: disk: stm32 sdmmc: add stm32h7rs support
Add STM32H7RS to the list of series that support HWFC for SDMMC.

Signed-off-by: Arthur Gay <arthur.gay@marshmallow.kids>
2025-08-18 11:57:09 +02:00
Johann Fischer
58b37007d2 drivers: udc_stm32: fix remote wakeup handling
Clear the suspended status and submit the resume event once the remote
wakeup signaling is finished. Clear the suspended status on bus reset as
well.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-08-18 11:56:57 +02:00
Johann Fischer
bd5dcc603f drivers: udc: make suspend/resume logging message more precise
Make suspend/resume logging message more precise.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-08-18 11:56:57 +02:00