Commit graph

25,525 commits

Author SHA1 Message Date
Chaitanya Tata
0cf47478ee drivers: nrf_wifi: Add a new stats command that reads from memory
Instead of a command and event mechanism that relies on processors being
active (UMAC/LMAC) add a new command that reads from the RPU memory
directly for all stats, useful in debugging when processors are
crashed/non-functional.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-04-03 11:08:15 +02:00
Guillaume Gautier
f9a3c5424c drivers: disk: stm32 sdmmc: add stm32n6 support
Add STM32N6 to the list of series that support HWFC for SDMMC

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-04-03 11:07:33 +02:00
Sai Santhosh Malae
9594af85f0 drivers: dma: siwx91x: Enable scatter-gather transfer support
Implement support for scatter-gather DMA transfers in the siwx917 driver.
This enhancement allows the driver to handle multiple non-contiguous memory
buffers in a single DMA transaction

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-04-03 11:07:12 +02:00
Sai Santhosh Malae
6c9ec8d1c0 drivers: dma: siwx91x: Fix callback assignment for each DMA channel
Updated the driver to ensure that each DMA channel can properly
assign and handle individual callbacks.

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-04-03 11:07:12 +02:00
Sai Santhosh Malae
8d3bb53495 drivers: dma: siwx91x: Add chan_filter API for DMA channel assignment
This new API allows the assignment of desired DMA channels for
peripheral transfers, enhancing flexibility and control over DMA
operations.

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-04-03 11:07:12 +02:00
Sai Santhosh Malae
8930aed8d4 drivers: dma: siwx91x: Integrate dma_context features
Refactored the driver code to ensure compatibility with the
dma_context API, improving maintainability and consistency
with other DMA drivers in the Zephyr project.

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-04-03 11:07:12 +02:00
Sai Santhosh Malae
ab57d54bb0 drivers: dma: siwx91x: Fix burst length processing
1. Corrected the burst length processing to be handled in bytes
   for the siwx917 DMA drivers.
2. Removed overlay and configuration files associated with the
   chan_blen_transfer test application. The chan_blen_transfer
   test application attempted to use 8 and 16 byte bursts, which
   are not supported by the siwx91x UDMA.

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-04-03 11:07:12 +02:00
Kevin ORourke
dfe2848aeb style: Fix formatting
CI compliance checks demanded reformatting.

Signed-off-by: Kevin ORourke <kevin.orourke@ferroamp.se>
2025-04-03 11:06:53 +02:00
Kevin ORourke
9e2752d9d8 drivers: eth: phy_mii: Don't block system workqueue
Looping while waiting for auto-negotiation to complete can block the
system workqueue for several seconds.

Signed-off-by: Kevin ORourke <kevin.orourke@ferroamp.se>
2025-04-03 11:06:53 +02:00
Jordan Yates
8f53407fa6 serial: cmsdk_apb: fix irq_is_pending
Implement `irq_is_pending` in terms of the `irq_rx_ready` and
`irq_tx_ready` function calls.

Using `intstatus` directly results in an implementation that does not
conform to the interrupt driven UART API. Since `intstatus` bits are
only only set when a buffer transitions from full to empty, any calls to
`irq_is_pending` before any bytes have been sent will return 0. This is
problematic since the documented implementation for the API IRQ handler
is:
```
while (uart_irq_update(dev) && uart_irq_is_pending(dev)) {
    if (uart_irq_rx_ready(dev)) {
        ...
    }
    if (uart_irq_tx_ready(dev)) {
        uart_fifo_fill(dev, ...);
    }
}
```
If `uart_irq_is_pending` does not return 1 until the first byte is sent,
we never end up pushing data to be transmitted into the `uart_fifo_full`
function.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-04-03 08:43:37 +02:00
Khaoula Bidani
ba1ad38f99 drivers: usb: udc: simplify code of maximum-speed
Add defines to avoid magic values in the dtsi.
Replace usb_dc_stm32_get_maximum_speed() with device tree property.
- Use DT_INST_STRING_UPPER_TOKEN(0, maximum_speed) to set the USB speed.
- Remove PCD_SPEED_FULL initialization.

Signed-off-by: Khaoula Bidani <khaoula.bidani-ext@st.com>
2025-04-03 08:43:29 +02:00
Khaoula Bidani
01ddccdf62 drivers: usb: device: simplify code of maximum-speed
Add defines to avoid magic values in the dtsi.
Replace usb_dc_stm32_get_maximum_speed() with device tree property.
- Use DT_INST_STRING_UPPER_TOKEN(0, maximum_speed) to set the USB speed.
- Remove PCD_SPEED_FULL initialization.

Signed-off-by: Khaoula Bidani <khaoula.bidani-ext@st.com>
2025-04-03 08:43:29 +02:00
Peter Wang
5309c93944 drivers: flash: update flash_mcux to support all mcxa family device
update flash_mcux driver to support all mcxa family device

Signed-off-by: Peter Wang <chaoyi.wang@nxp.com>
2025-04-03 08:43:16 +02:00
Khanh Nguyen
7ae800a0c9 drivers: timer: Add ULPT timer for power management on Renesas RA MCUs
drivers:
- Added ULPT timer driver in `renesas_ra_ulpt_timer.c`.
- Updated `clock_control_renesas_ra_cgc.c` for ULPT clock settings.
- Updated `uart_renesas_ra8_sci_b.c` for power management support.
- Updated `CMakeLists.txt` and `Kconfig` to integrate ULPT timer.
- Added `Kconfig.renesas_ra_ulpt` for ULPT-specific configurations.

dts bindings:
- Added `renesas,ra-ulpt.yaml` for ULPT node bindings.
- Added `renesas,ra-ulpt-timer.yaml` for ULPT timer bindings.

modules:
- Updated `Kconfig.renesas_fsp` to support ULPT and LPM.

Signed-off-by: Khanh Nguyen <khanh.nguyen.wz@bp.renesas.com>
2025-04-03 08:41:08 +02:00
Nhut Nguyen
8f2879a156 drivers: gpio: rz: Fix a build error
Fix a build error of redefinition of a variable in gpio_renesas_rz.h

Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2025-04-03 06:25:06 +02:00
S Mohamed Fiaz
701be0c331 driver: sleeptimer: siwx917: Add siwx91x Sleeptimer driver
This commit enables the Sleeptimer driver support for the siwx917 device.

Signed-off-by: S Mohamed Fiaz <fiaz.mohamed@silabs.com>
2025-04-03 06:24:54 +02:00
Tom Hughes
d5d12f43f8 drivers: dma_wch: Add __used instead of disabling unused function warning
#84065 replaced diagnostic pragmas with TOOLCHAIN_* macros, but we don't
need to use that here since __used is a cleaner way to indicate that the
function is used and will also prevent it from being optimized away at
link time if LTO is enabled.

Signed-off-by: Tom Hughes <tomhughes@chromium.org>
2025-04-03 06:24:44 +02:00
Ibe Van de Veire
d890630e02 drivers: eth: native_tap: Add MAC parameter input from cmd line
Add the ability to set the MAC address from the command line when
running a native sim build.

Signed-off-by: Ibe Van de Veire <ibe.vandeveire@basalte.be>
2025-04-03 00:05:47 +02:00
Jilay Pandya
6bfea730b1 doc: migration-guide: 4.2: add migration guide entry for enable
- Add migration guide entry for enable->enable/disable function
- Add stepper_disable to stepper.rst

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-04-03 00:03:29 +02:00
Jilay Pandya
d18f49132c drivers: stepper: refactor enable(dev,flag) to enable & disable
refactoring enable function into enable and disable increasing readability
and increasing coherence with other stepper apis in terms of
nomenclature

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-04-03 00:03:29 +02:00
Bjarki Arge Andreasen
bfd200bdb4 drivers: clock_control: add nrfs_audiopll clock driver
Add NRFS AudioPLL clock control device driver.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2025-04-03 00:03:14 +02:00
Hao Luo
8b60fa834c drivers: mfd: Add ambiq iom binding file
This commit adds ambiq iom binding file to consolidate
spi and i2c that share the same IO Master module on
Apollo MCUs

Signed-off-by: Hao Luo <hluo@ambiq.com>
2025-04-02 19:02:56 +02:00
Raffael Rostagno
fa6a9aef7b drivers: dma: esp32: Update for interrupt allocator
Update driver for unified interrupt allocator (Xtensa/RISCV),
to allow using shared interrupts.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2025-04-02 19:02:27 +02:00
Raffael Rostagno
4b8dc5f3ff drivers: esp32: Update for shared intc
Drivers update to use shared interrupt allocator for Xtensa
and RISCV devices.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-04-02 19:02:27 +02:00
Raffael Rostagno
034c0cb977 drivers: intc: esp32: Shared allocator for Xtensa and RISCV
Update interrupt allocator to use the same driver for both
Xtensa and RISCV devices.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-04-02 19:02:27 +02:00
Fin Maaß
36e830f446 drivers: ethernet: stm32: remove hal api v1 ptp code
Only STM32F1X and STM32F2X are using the hal api v1,
both of these soc don't support ptp, so ptp support
for hal api v1 can be dropped.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-02 13:04:48 +02:00
John Barbero Unenge
64fe9344e1 driver: flash: mcux_flexspi_nor: Fix for is25lpxxxd chips
IS25LPXXXD uses the same jedec-id as IS25LPXXX, but the latter has
an extended read register, similar to IS25WPXXX. This change will
attempt to read the extended read register to determine what the
appropriate initialization value for read register should be.

Signed-off-by: John Barbero Unenge <git@lsrkttn.com>
2025-04-02 13:04:38 +02:00
Seppo Ingalsuo
d457a6a5ef Drivers: DAI: Intel: DMIC: Program start symmetrically for PDMx
This change is assumed to fix the random corruption of 4ch
capture for PDM1 channels 3-4 in PTL platform. There are no
solid facts behind this change but assumption that PDMx
controllers are not in sync if the start sequence for PDM1
is further away from PDM0. The PDM0 internal state may be
different from PDM1

The single for loop to handle the CIC and FIR start sequence
is split into two for loops to handle same registers update
tasks symmetrically for all stereo PDM controllers. E.g. two
PDMs for four microphones.

First loop programs the CIC_CONTROL and MIC_CONTROL registers
of the PDMx controllers. These features belong to the CIC block
in DMIC IP. Second loop programs the FIR_CONTROL registers of
the PDMx controllers.

In a stress test of 100 times repeated commands:

arecord -Dhw:0,6 -fS32_LE -r48000 -c4 -d 10 dmic_test_1.wav; \
sleep 0.5; \
arecord -Dhw:0,6 -fS32_LE -r48000 -c4 -d 10 dmic_test_2.wav; \
sleep 1

The corruption occurrence with xt-clang build was e.g. 87/200
fails in one of wav files giving 43.5% occurrence. The test was
done with Zephyr commit fe29c40a93
("llext: add inspection API test suite").

In a gcc build the occurrence of corruption is lower, around 6%
but it is seen that the channels 3-4 pdm1 are swapping randomly.

With this fix the corruption occurred zero times in xt-clang
and gcc builds with same 100 repeats.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2025-04-02 13:04:32 +02:00
Martin Hoff
cb07e991c2 drivers: serial: silabs: introduce pm for silabs eusart
Make use of pm_device_driver_init to perform driver initialization.
Implement PM suspend and resume, which performs the following actions:

* Enables/disables the USART
* Gates the USART clock
* Configures USART pins

Also take PM locks to prevent deep sleep during TX and RX operations.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-04-02 13:04:19 +02:00
Martin Hoff
87141ed455 drivers: serial: silabs: introduce asynchronous silabs eusart
Introduce silabs asynchronous eusart with dma support.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-04-02 13:04:19 +02:00
Martin Hoff
4ec3405d16 drivers: serial: silabs: replace prefix in silabs eusart driver
Replace prefix from "uart_silabs_eusart" to "eusart" in order to
simplify the code, and make it more readable.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-04-02 13:04:19 +02:00
Martin Hoff
a1389541ff drivers: serial: silabs: introduce silabs eusart runtime configure
Introduce runtime configuration API for the silabs eusart driver.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-04-02 13:04:19 +02:00
Martin Hoff
02c8d02565 drivers: serial: silabs: harmonize silabs eusart code with silabs usart
Apply code cleaning done in silabs usart driver to silabs eusart driver.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-04-02 13:04:19 +02:00
Martin Hoff
6fc53a6ed2 drivers: serial: silabs: split init in silabs eusart driver
Split of uart_silabs_eusart_init function to have better visibility of
initialization.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-04-02 13:04:19 +02:00
Martin Hoff
3382b6769d drivers: serial: silabs: correction of silabs eusart code indentation
Apply correct indentation to silabs eusart driver.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-04-02 13:04:19 +02:00
Etienne Carriere
0103de7b51 drivers: i2c: stm32: support DMA when CONFIG_MEM_ATTR=n
Allow STM32 I2C driver v2 to operate with DMA support even when
CONFIG_MEM_ATTR is disabled which happen when CONFIG_ARM_MPU is
intentionally disabled despite the CPU supports MPU.

By the way, remove a #ifdef directive on header files inclusion
that adds noise in the header file inclusion section without any
benefit.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-04-02 12:54:50 +02:00
Etienne Carriere
bec3a6fc98 drivers: adc: stm32: support DMA when CONFIG_MEM_ATTR=n
Allow STM32 ADC driver to operate with DMA support even when
CONFIG_MEM_ATTR is disabled which happen when CONFIG_ARM_MPU is
intentionally disabled despite the CPU supports MPU.

By the way, remove some #ifdef directive on header files inclusion
that add noise in the header file inclusion section without any
benefit. Also remove inclusion of zephyr/arch/cache.h that is not
needed at all.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-04-02 12:54:50 +02:00
Etienne Carriere
bd92d69b64 drivers: spi: stm32: support DMA when CONFIG_MEM_ATTR=n
Allow STM32 SPI driver to operate with DMA support even when
CONFIG_MEM_ATTR is disabled which happen when CONFIG_ARM_MPU is
intentionally disabled despite the CPU supports MPU.

By the way, remove some #ifdef directive on header files inclusion
that add noise in the header file inclusion section without any
benefit.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-04-02 12:54:50 +02:00
Etienne Carriere
4e37a1bb4b drivers: serial: uart_stm32: support DMA when CONFIG_MEM_ATTR=n
Allow STM32 UART driver to operate with DMA support even when
CONFIG_MEM_ATTR is disabled which happen when CONFIG_ARM_MPU is
intentionally disabled despite the CPU supports MPU.

By the way, remove some #ifdef directive on header files inclusion
that add noise in the header file inclusion section without any
benefit.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-04-02 12:54:50 +02:00
Jeppe Odgaard
0dffe7cc7e drivers: dac: Add TI DAC161S997 driver
Initial DAC driver for TI DAC161S997. This is a 1 channel 16 bit
DAC designed for 4-20 mA loops.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2025-04-02 12:53:03 +02:00
Quang Le
da076a9924 drivers: gpio: Add support for RZ/T2M
Add GPIO driver support for RZ/T2M

Signed-off-by: Quang Le <quang.le.eb@bp.renesas.com>
Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
Signed-off-by: Binh Nguyen <binh.nguyen.xw@renesas.com>
2025-04-02 12:52:54 +02:00
Quang Le
9736851528 drivers: interrupt controller: Add support for RZ/T
- Add interrupt controller driver support for RZ/T
- Remove a duplicate USE_RZ_FSP_EXT_IRQ in Kconfig

Signed-off-by: Quang Le <quang.le.eb@bp.renesas.com>
Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
Signed-off-by: Binh Nguyen <binh.nguyen.xw@renesas.com>
2025-04-02 12:52:54 +02:00
Fin Maaß
116069d8ec drivers: mdio: stm32: set mdio clock for v1 api
unfortunatly HAL_ETH_SetMDIOClockRange() isn't available
in the V1 API, so I had to copy the parts from the hal.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-02 10:31:34 +02:00
Fin Maaß
1097785c4c drivers: mdio: stm32: make driver more independent
make stm32 mdio driver more independent

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-02 10:31:34 +02:00
Fin Maaß
a806ddf488 drivers: ethernet: stm32: remove internal phy code
rewirte code and remove code that use internal phy functions.
A few Kconfig options got removed, that are now set by the
phy via the DT.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-02 10:31:34 +02:00
Fin Maaß
0f636ec2fa drivers: ethernet: mdio: stm32: move stmmaceth clock to parent
move stmmaceth clock to parent, so it can also be
used by mdio and rename it to ``stm-eth``.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-02 10:31:34 +02:00
Fin Maaß
d139d84338 drivers: ethernet: stm32: make mac a child like the mdio node
mac and mdio are now on the same level, this way
phy-handle can be used.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-02 10:31:34 +02:00
Fin Maaß
3a19dddfe7 drivers: mdio: stm32: remove unused functions
The api takes care, if the mdio bus_enable and bus_disable
are not needed, so there is no need to have tis in the driver.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-02 10:31:34 +02:00
Fin Maaß
dffb356278 drivers: mdio: stm32: add mdio for legacy api
add mdio for legacy stm32 api

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-02 10:31:34 +02:00
Mohith Potluri
c1edfbcf4b drivers: reset: Add generic reset MMIO driver
Introduce a generic reset MMIO driver to be used for devices with a
single memory mapped reset bit required to take them out of reset.

Signed-off-by: Mohith Potluri <saimohith@google.com>
2025-04-02 10:31:12 +02:00