Commit graph

25,525 commits

Author SHA1 Message Date
Fan Wang
ca3b80cf5b drivers: sdhc: Support SD Card for Apollo510
This commit support SD Card for Apollo510 SDIO

Signed-off-by: Fan Wang <fan.wang@ambiq.com>
2025-10-25 10:47:28 +03:00
Fan Wang
adb6461d8a drivers: sdhc: optimize cache related coding
Add buf_in_nocache to check buffer cacheability.

Signed-off-by: Fan Wang <fan.wang@ambiq.com>
2025-10-25 10:47:28 +03:00
Fan Wang
d770690176 drivers: sdhc:Updated sdhc driver for apollo510&apollo510L
Deleted PM device macro definition

Updated SDIO base for apollo510 and apollo510L

Signed-off-by: Fan Wang <fan.wang@ambiq.com>
2025-10-25 10:47:28 +03:00
Mario Paja
fc1c386a3c drivers: i2s: stm32 sai add support for stm32f7xx series
STM32F7xx series shares several DMA configurations with
the other platforms. These changes aim to enable platform
specific DMA configuration and align them to other platforms.

Signed-off-by: Mario Paja <mariopaja@hotmail.com>
2025-10-25 10:47:19 +03:00
Felix Wang
659eccf5a3 drivers: clock_control: Configure STM clock
1.Add "mux-1-dc-0-div" and "mux-2-dc-0-div" property
 in mc_cgm device tree for STM clock divider setting
 and set these properties in frdm_mcxe31b.dts
2.Enable STM peripheral clock in mc_cgm_clock_control_on
 function
3.Support to get STM frequency from mc_cgm_get_subsys_rate
 function
4.Configure STM clock in mc_cgm_init function

Signed-off-by: Felix Wang <fei.wang_3@nxp.com>
2025-10-25 10:47:09 +03:00
Felix Wang
3621caaca6 drivers: Counter: STM Support on Zephyr
1.Add nxp,stm.yaml dts bindings
  2.Provide counter driver based on FTM driver from mcux-sdk-ng.

Signed-off-by: Felix Wang <fei.wang_3@nxp.com>
2025-10-25 10:47:09 +03:00
Winteri Wang
3bb88d3f3c driver: mucx_lcdifv3: support both full and partial refresh
If the framebuffer size is same as the full screen, full refresh
is applied. Otherwise, partial refresh is applied.

Signed-off-by: Winteri Wang <dongjie.wang@nxp.com>
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Signed-off-by: Ruoshan Shi <ruoshan.shi@nxp.com>
2025-10-24 20:19:17 -04:00
Winteri Wang
25b2de3b07 driver: display: add waveshare dsi panel driver support
Added waveshare dsi panel driver. It is on I2C bus.

Signed-off-by: Winteri Wang <dongjie.wang@nxp.com>
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Signed-off-by: Ruoshan Shi <ruoshan.shi@nxp.com>
2025-10-24 20:19:17 -04:00
Ruoshan Shi
b815f5f481 drivers: mipi dsi: Update dsi nxp dwc driver to support i.MX93 A55
Updated dsi nxp dwc driver and enabled runtime mmio configuration.

Signed-off-by: Ruoshan Shi <ruoshan.shi@nxp.com>
Signed-off-by: Winteri Wang <dongjie.wang@nxp.com>
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2025-10-24 20:19:17 -04:00
Ruoshan Shi
a541647a6e drivers: mipi dsi: Add dsi nxp dwc driver support
Added mipi dsi nxp dwc driver support

Signed-off-by: Ruoshan Shi <ruoshan.shi@nxp.com>
2025-10-24 20:19:17 -04:00
Winteri Wang
a13c3f001b driver: mcux_lcdifv3: add mcux_lcdifv3 driver support
Added mcux_lcdifv3 driver and enabled runtime mmio configuration.

Signed-off-by: Winteri Wang <dongjie.wang@nxp.com>
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Signed-off-by: Ruoshan Shi <ruoshan.shi@nxp.com>
2025-10-24 20:19:17 -04:00
Winteri Wang
8432f0123f driver: mcux_mediamix: add mcux_mediamix driver support
Added mcux_mediamix driver and enabled runtime mmio configuration.

Signed-off-by: Winteri Wang <dongjie.wang@nxp.com>
2025-10-24 20:19:17 -04:00
Winteri Wang
6cfc76ffbf drivers: clock: ccm_rev2: add imx93 common clocks set support
Setup most clocks with common_clock_set_freq().
PLL and mux are preset.

Signed-off-by: Winteri Wang <dongjie.wang@nxp.com>
Signed-off-by: Ruoshan Shi <ruoshan.shi@nxp.com>
2025-10-24 20:19:17 -04:00
Camille BAUD
b75a846ad0 divers: memc: Add BL61x PSRAM controller
Driver for BL61x's PSRAM controller

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-10-24 20:19:06 -04:00
Brett Peterson
8e4e766c09 drivers: spi: add psc3 and pse84 support
- Updating spi_ifx_cat1_pdl driver to support psc3 and pse84 devices

Signed-off-by: Brett Peterson <brett.peterson@infineon.com>
2025-10-24 20:17:57 -04:00
Bill Waters
b35a32b8ae drivers: watchdog: add support for Infineon PSE84 device
Update the driver to support the PSE84 device

Signed-off-by: Bill Waters <bill.waters@infineon.com>
2025-10-24 23:07:28 +03:00
Kamil Krzyżanowski
1b84618e33 drivers: timer: stm32_lptim: Support all LPTIM instances
The LPTIM timer driver previously had hardcoded assumptions about
using LPTIM1 or LPTIM3, which prevented it from working with other
LPTIM instances like LPTIM2, LPTIM4, LPTIM5, and LPTIM6.

This change makes the driver work with any LPTIM instance by:

1. Adding lptim_enable_autonomous_mode() function that dynamically
   detects which LPTIM instance is in use and enables autonomous
   mode for instances that support it (LPTIM1, LPTIM3, LPTIM4).
   LPTIM2, LPTIM5, LPTIM6 do not support autonomous mode.

2. Adding lptim_freeze_during_debug() function that handles debug
   freeze configuration for all LPTIM instances across different
   APB buses:
   - LPTIM1: APB1_GRP1, APB3_GRP1, or APB7_GRP1
   - LPTIM2: APB1_GRP1, APB1_GRP2, APB3_GRP1, or APB4_GRP1
   - LPTIM3: APB1_GRP2, APB3_GRP1, or APB4_GRP1
   - LPTIM4: APB3_GRP1 or APB4_GRP1
   - LPTIM5: APB3_GRP1
   - LPTIM6: APB3_GRP1

Both functions use DT_REG_ADDR() to compare the base address of the
configured LPTIM instance at compile time, ensuring zero runtime
overhead.

Tested on STM32U5A5 with all four LPTIM instances (LPTIM1-4).

Signed-off-by: Kamil Krzyżanowski <kamnxt@kamnxt.com>
2025-10-24 23:07:05 +03:00
Valerio Setti
26ca2cfd6c drivers: entropy: nrf5: add dependency on MULTITHREADING
The driver internally uses semaphores which are only available if
CONFIG_MULTITHREADING is enabled in the build.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2025-10-24 23:06:47 +03:00
Tony Han
9b66f72191 drivers: ethernet: sam_gmac: update for support RGMII mode
Update to use the RGMII mode which is supported by SAMA7G54.

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-10-24 13:28:18 -04:00
Tony Han
3036fa88dd drivers: ethernet: phy: ksz9131: save link state for get
Get the link state in the monitor and save it for get_link api
implementation to use.

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-10-24 13:28:18 -04:00
Tony Han
034ce6927c drivers: ethernet: phy: ksz9131: add getting status for gigabit mode
Read gigabit status from Master Slave Status Register.

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-10-24 13:28:18 -04:00
Tony Han
e7cfa722c4 drivers: ethernet: phy: ksz9131: add support for phy interrupt mode
Enable Link-Up and Link-Down interrupts. On the interrupt handling
the monitor work is scheduled to update the link status and calling
corresponding callback routine.

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-10-24 13:28:18 -04:00
Tony Han
b305faff1f drivers: ethernet: phy: add Microchip's KSZ9131 PHY support
Add support for KSZ9131 (Gigabit Ethernet Transceiver with RGMII Support).
As first starter, 100MBit/s mode is tested.
https://www.microchip.com/en-us/product/ksz9131

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-10-24 13:28:18 -04:00
Marco Widmer
e2fcd640b7 drivers: gpio: pca953x: add pull-up/pull-down support
Some variants of the PCA953x family support pull-up / pull-down
resistors through registers 0x43 and 0x44 (mostly the TCAL9538 variant).
We already support input latching and interrupt masking (which is also
only present on a few variants), so let's also add support for pull-up
and pull-down resistors.

The feature can be enabled with the has-pud property in the device tree.

Signed-off-by: Marco Widmer <marco.widmer@bytesatwork.ch>
2025-10-24 13:27:49 -04:00
Kim Seer Paller
fcd7842ca8 drivers: adc: Add AD4170-4, AD4190-4, and AD4195-4 ADC driver
Add initial support for the AD4170-4, AD4190-4, and AD4195-4 24-bit
ADCs, including reference selection, programmable gain amplifier, ADC
conversion modes, configurable analog inputs, filter settings, and both
bipolar and unipolar operation. Supports internal and external buffered
references, and operation from a 4.75-5.25V analog supply and a
1.7-5.25V digital supply.

Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com>
2025-10-24 13:26:26 -04:00
Simon Maurer
31d16f353e drivers: i2c: cdns: add broken hold bit workaround for Zynq-7000
The Xilinx Zynq 7000 I2C controller has the following bugs:
- completion indication is not given to the driver at the end of
a read/receive transfer with HOLD bit set.
- Invalid read transaction are generated on the bus when HW timeout
condition occurs with HOLD bit set.
- If the delay between address register write and
control register write in cdns_i2c_mrecv function is more, the xfer size
register rolls over and controller is stuck.

As a result of the above, this patch disallows message transfers with
a repeated start condition following a read operation. Also disables
interrupts between the address register write and control register write
during message reception, to prevent transfer size register rollover.

Signed-off-by: Simon Maurer <mail@maurer.systems>
2025-10-24 13:25:54 -04:00
Alain Volmat
065754373a video: add H264 estimate in video_estimate_fmt_size
Add rough estimate of a worth case H264 output size.

The video_estimate_fmt_size would need more information
such as quality, profile in order to give a better
estimate for each formats so for the time being just
stick to 16bpp based size, same as for JPEG.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-10-24 13:25:34 -04:00
Alain Volmat
a6ceee976e video: addition of video_transfer_buffer helper function
Addition of a helper function which takes care of dequeue
from a source video device and queue into a sink video device.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-10-24 13:25:34 -04:00
Ryan McClelland
c4a70b4d01 drivers: i3c: cdns: handle ibi len of 0
Section 4.3.7.3.6 of the I3C v1.2 specification states that a value of
0 for the max ibi size indicates an unlimited payload size. Set it to
the max it can be configured for.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-10-24 13:24:54 -04:00
Guillaume Gautier
0cf6b7775a drivers: clock: stm32: remove adc prescaler setting
Now that the ADC prescaler are set within the driver using the clock
system, remove the specific setting of the prescaler from the clock driver.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 13:24:44 -04:00
Guillaume Gautier
7c4d42b4fd drivers: adc: stm32: add support for rcc prescaler clock
Some series like F1, F3, N6 and U3 use an ADC prescaler defined in the RCC.
Instead of adding specific properties in the RCC driver, use the secondary
clock system to configure the prescaler.

The ADC driver now configures the clocks depending on their presence and
their name. Three clocks can be defined:
- the register clock (mandatory for all series)
- the kernel clock (depends on series)
- the prescaler value (depends on series)

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 13:24:44 -04:00
Liam Ogletree
91caa2f2f8 drivers: haptics: Add Shell support for haptics drivers
Expose the haptics API through a shell interface. Tested locally
with dummy haptics driver.

Signed-off-by: Liam Ogletree <liam.ogletree@cirrus.com>
2025-10-24 13:24:08 -04:00
Khaoula Bidani
66e8451780 drivers: i2c: stm32: add target error callback
Allow applications to be notified of target I2C transfer
error usingthe recently added target error callback mechanism.

Signed-off-by: Khaoula Bidani <khaoula.bidani-ext@st.com>
Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2025-10-24 13:23:57 -04:00
Sylvio Alves
9b3bb86855 drivers: crypto: add Espressif HW AES support
Add hardware-accelerated AES driver for Espressif SoCs supporting
ECB, CBC, and CTR cipher modes with AES-128, AES-192, and AES-256
key lengths.

Supported modes:
- ECB (Electronic Codebook)
- CBC (Cipher Block Chaining)
- CTR (Counter)

Supported SoCs:
- ESP32: All modes, all key sizes
- ESP32-S2/S3: All modes, AES-128/256 only
- ESP32-C2/C3/C6/H2: All modes, all key sizes

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-10-24 13:21:24 -04:00
Sylvio Alves
391ffabd66 drivers: crypto: add Espressif HW SHA support
Add hardware-accelerated SHA driver for Espressif SoCs supporting
SHA-224, SHA-256, SHA-384, and SHA-512 algorithms.

Supported SoCs:
- ESP32: SHA-224/256/384/512 (single-shot operations)
- ESP32-S2/S3: SHA-224/256/384/512 (with multi-part support)
- ESP32-C2/C3/C6/H2: SHA-224/256 (with multi-part support)

Tested with Zephyr crypto subsystem hash_compute() API.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-10-24 13:21:24 -04:00
Erdem Simsek
8338097b1d drivers: i2s: Support audio auxpll in TDM driver
Add support for audio_auxpll clock source as an alternative to audiopll
in the i2s_nrf_tdm driver. This enables TDM functionality on platforms
that use the auxiliary PLL for audio clocking.

- Add audio_auxpll node detection and configuration
- Update clock management to support both audiopll and audio_auxpll
- Add build assertions for supported frequency configurations

Signed-off-by: Erdem Simsek <erdem.simsek@nordicsemi.no>
2025-10-24 13:20:31 -04:00
Krzysztof Chruściński
9d017467cc drivers: serial: Remove deprecated uart_nrfx_uarte2 driver
Use of uart_nrfx_uarte2 driver was deprecated before 4.1 release
and now can be removed.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-10-24 13:20:07 -04:00
Jeppe Odgaard
e54093ba9a drivers: sensor: add tach_gpio
Add tachometer sensor driver using GPIO interrupts.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2025-10-24 13:19:04 -04:00
Jérôme Pouiller
46b498ad16 drivers: adc: siwx91x: Fix clock name
All the clocks names on SiWx91x follow the pattern "SIWX91X_CLK_xxx".
SIWX91X_ADC_CLK was an exception.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-10-24 13:18:42 -04:00
Benjamin Cabé
1cc1e83b3d drivers: usb-c: prevent Kconfigs for logging from bleeding
CONFIG_USBC_LOG_* options should be gated by the higher level USBC
Kconfig.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-10-24 13:18:28 -04:00
Benjamin Cabé
b48ef99495 drivers: virtio: prevent Kconfigs for logging from bleeding
CONFIG_VIRTIO_LOG_* options shoul be gated by the main VIRTIO Kconfig.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-10-24 13:18:28 -04:00
Julien Racki
4197931643 drivers: ethernet: stm32: add PTP HAL flag for N6
Add depends on SOC_SERIES_STM32N6X to
PTP_CLOCK_STM32_HAL in order to use PTP on the STM32N6 series.

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2025-10-24 13:18:02 -04:00
Khaoula Bidani
ba35b4d076 driver: uart: stm32: Disable UART DMA before shutdown
Use LL_USART_DisableDMAReq_RX to disable UART RX DMA requests.
This should be called before entering shutdown mode.

Force to use UART_STM32U5_ERRATA_DMAT_LOWPOWER
when POWEROFF is selected. This ensure the system to shut down
properly instead of hanging due to DMA staying active.

Signed-off-by: Khaoula Bidani <khaoula.bidani-ext@st.com>
Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2025-10-24 09:01:50 -07:00
Tomasz Moń
35620e20a9 drivers: udc_dwc2: Fix deactivate when hibernated
It is possible for usbd_disable() to be called when the core is
hibernated. When done so, the USB stack will attempt to deactivate all
the endpoints. Because the core is hibernated, register reads are
really undefined. This can lead to udc_dwc2_ep_deactivate() not calling
udc_dwc2_ep_disable() which will leave struct udc_ep_config busy flag
set.

When endpoint 0x00 busy flag is left to true, the driver won't allocate
buffer to receive SETUP data which is mandatory in Buffer DMA mode. This
leads to essentially dead device after reconnect, because the device
will not respond to any control transfers.

Solve the issue by modifying backup register value instead of real one
when endpoint is deactivated while core is hibernated.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2025-10-24 08:59:47 -07:00
Guillaume Gautier
684779ec23 drivers: usb_c: tcpc: stm32: use dedicated bitops functions
Use dedicated set/clear bits function instead of reading/masking/writing
manually.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
9074528435 drivers: i2c: stm32: v2: simplify reg operation
Call stm32_reg_set_bits instead of stm32_reg_read then stm32_reg_write.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
004c613e25 drivers: stm32: replace MODIFY_REG HAL macro by stm32_reg_modify_bits
For all STM32 drivers and SoC, replace the MODIFY_REG macro (defined in
the STM32 HAL) by stm32_reg_modify_bits defined in Zephyr.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
124448582f drivers: stm32: replace READ_REG HAL macro by stm32_reg_read
For all STM32 drivers and SoC, replace the READ_REG macro and the
LL_xxx_ReadReg functions (defined in the STM32 HAL) by
stm32_reg_read defined in Zephyr.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
2a52a2b7ff drivers: stm32: replace WRITE_REG HAL macro by stm32_reg_write
For all STM32 drivers and SoC, replace the WRITE_REG macro and the
LL_xxx_WriteReg functions (defined in the STM32 HAL) by
stm32_reg_write defined in Zephyr.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
44415b5af8 drivers: stm32: replace READ_BIT HAL macro by stm32_reg_read_bits
For all STM32 drivers and SoC, replace the READ_BIT macro (defined in
the STM32 HAL) by stm32_reg_read_bits.
Fixes some cases where the return value was tested like a boolean
despite not being one.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00