Commit graph zephyr/drivers
Author SHA1 Message Date
Raffael Rostagno
b147f5e76c drivers: gpio: esp32: Update PM compile guards
Wake-up feature should be available even if user selects only
POWEROFF function. PM and PM_DEVICE are related to IDLE and
also possibly with calling PM_STATE_SOFT_OFF, so it is kept
as check/guard for the wake-up function as well.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2026-06-01 12:41:59 -04:00
Fin Maaß
542338a82a drivers: i2c: don't check num_msgs again
We already check num_msgs in i2c_transfer, we
don:t need to check it in the i2c drivers again.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-06-01 12:41:32 -04:00
Oliver Schmidhauser
ffbc63efcb drivers: i2c: stm32: fix issue with shared interrupts
The I2C driver clears the TC and TCR interrupt flags not in the ISR, but
in thread context later on. If there is an interrupt on another I2C
peripheral (but sharing the same interrupt vector) after the first I2C
peripheral processed a TC or TCR interrupt, but before it cleared the
corresponding status flag in thread context, this interrupt will be
processed twice, leading to corrupted transfers.

Added a check to only process the TC and TCR interrupts if they are
enabled for the corresponding peripheral (indicated by the TCIE bit in
the CR1 register).

Fixes zephyrproject-rtos/zephyr#109993

Signed-off-by: Oliver Schmidhauser <oliver.schmidhauser@leica-geosystems.com>
2026-06-01 12:40:48 -04:00
Sergei Ovchinnikov
0dadb2b228 Revert "drivers: regulator: npm13xx: add check for nPM1300 PMIC revision"
LDO soft start fix will not be available in the next revision of the device
but is instead pushed to a later one. The check is invalid, therefore needs
to be reverted.

This reverts commit da56fe6ee0.

Signed-off-by: Sergei Ovchinnikov <sergei.ovchinnikov@nordicsemi.no>
2026-06-01 12:40:38 -04:00
Dharun krithik k
f27102d5e9 drivers: bluetooth: h5: Use net_buf_take() to transfer rx_buf
Replace manual pointer transfer with net_buf_take() for better
readability and atomic operation.

Signed-off-by: Dharun krithik k <dharunkrithik@aerlync.com>
2026-06-01 12:40:25 -04:00
Fin Maaß
ca9315931b ethernet: adin2111: reduce global includes
reduce global includes for the adin2111 ethernet driver.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-06-01 12:40:13 -04:00
Fin Maaß
da4de65e7c ethernet: intel: remove global include
remove global include for the intel ethernet driver.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-06-01 12:40:13 -04:00
Fin Maaß
4b7123923e ethernet: lan865x: remove global include
remove global include for the lan865x.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-06-01 12:40:13 -04:00
Guilherme Costa
88e82f4ac2 serial: uart_mcux_lpuart: Handle zero timeout
When enabling RX with a timeout of 0 in the mcux lpuart driver, the
driver silently skipped starting the async work timer, making partial
DMA transmissions fail. This commit handles the scenario by
immediatelly flushing the RX data, if any.

Make it so the async timer for TX is skipped if timeout is 0, disabling
TX timeout.

Signed-off-by: Guilherme Costa <guilhermecosta@stratioautomotive.com>
2026-06-01 12:39:48 -04:00
Guilherme Costa
e3278fc1eb drivers: serial: uart: Cast log parameter to void *
Compiling the mcux lpuart driver with format string validation led to a
runtime warning about pointer types. This commit fixes the issue by
casting the offending parameter to void * as recommended.

Signed-off-by: Guilherme Costa <guilhermecosta@stratioautomotive.com>
2026-06-01 12:39:48 -04:00
Amneesh Singh
9969745801 drivers: update interrupt handling to use "flags" instead of "sense"
Update all drivers to use "flags" instead of "sense" when accessing
interrupt properties from device tree. This aligns with the updated
interrupt controller bindings that now consistently use "flags" as
the cell name for the IRQ type field.

Signed-off-by: Amneesh Singh <amneesh@ti.com>
2026-06-01 12:38:26 -04:00
Muhammad Waleed Badar
c0e74f0c14 drivers: i2c: add support for bcm2711 i2c controller
Add support for the bcm2711 i2c controller found on
Raspberry Pi SBC platforms.

Signed-off-by: Muhammad Waleed Badar <walid.badar@gmail.com>
2026-06-01 12:37:46 -04:00
Steven Chang
09f163b29c drivers: uart: kb106x: TX empty IRQ triggering
- Manually trigger TX IRQ when the buffer is empty to work around the
  hardware limitation where the IRQ is not automatically generated.

Signed-off-by: Steven Chang <steven@ene.com.tw>
2026-06-01 12:37:35 -04:00
Kate Wang
0ae9ecde51 drivers: clock_control: mcux_syscon: Add SLCD clock support
Add clock control support for the NXP MCUX Segment LCD (SLCD)
peripheral in the SYSCON clock driver.

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2026-06-01 12:37:23 -04:00
Kate Wang
c75550fa7e drivers: auxdisplay: Add NXP MCUX segmented LCD driver
Add driver for NXP MCUX Segment LCD (SLCD) controller to support
segment-style auxiliary displays.

The driver provides a unified implementation that handles both
the SLCD controller (nxp,slcd) and a generic SLCD panel.
It supports the generic SLCD panel with common header and binding
which includes the following panel features:
- Segment types(7, 14, 16 segments)
- Configurable front plane pins and back plane COMs
- pin/COM for each segment
- Optional pin/COM for each indicator
- Optional colon/dot indicators

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2026-06-01 12:37:23 -04:00
Kate Wang
3923875a32 drivers: auxdisplay: Add custom indicator API
Add new API to the auxiliary display subsystem to support display
custom indicator management, for segmet LCD panels

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2026-06-01 12:37:23 -04:00
Robert Hancock
e8b2a9b0ed drivers: spi: Added ZynqMP Generic Quad SPI driver
Add a driver for the Generic Quad SPI hardware that is part of the
Xilinx MPSoC. This is mostly commonly used with QSPI flash devices which
are also used for initial image loading, but can also be used with other
SPI devices.

Signed-off-by: Robert Hancock <robert.hancock@calian.com>
2026-06-01 12:37:10 -04:00
Surya Prakash T
587300e99a drivers: video: sw_generator: fix format specifiers for frame size
Fix a format string build error on platforms where uint32_t types
do not match standard unsigned format specifiers.

Fix this by using the PRIu32 format macro for both frame_size and
vbuf->size, ensuring type safety across all target architectures.

Signed-off-by: Surya Prakash T <suryat@aerlync.com>
2026-06-01 12:06:58 +02:00
Deepika R
3c181cd88d drivers: flash: fix hard fault for MX25U6432F
- Add JEDEC case for Macronix MX25U6432F to skip SFDP auto-parsing.
- Forces 24-bit addressing to prevent breaking active XIP loops.

Signed-off-by: Deepika R <deepika@aerlync.com>
2026-06-01 12:04:41 +02:00
Ching Ping Sun
7c67ad1466 eth_dm9051: enable multicast with RCR.ALL instead of MAR hash bits
Use RCR.ALL to enable reception of all multicast frames. MAR[7] is set

to 0x80 for broadcast only. This follows Zephyr driver convention

where a simple multicast-enable flag is preferred.

Signed-off-by: Ching Ping Sun <tom_sun@davicom.com.tw>
2026-06-01 12:04:15 +02:00
Siva Subramanian Ravi Saravanan
45bdb70e1c dma: amd: add TDM DMA driver for AMD ACP 7.0
Add TDM DMA driver for AMD Audio Co-Processor 7.0. This includes:

- DMA driver (dma_acp_tdm.c) with support for memory-to-device and
  device-to-memory transfers using ACP DMA engine
- Device tree bindings and node for ACP TDM DMA controller
- Kconfig and CMake build integration

Signed-off-by: Siva Subramanian Ravi Saravanan <sravisar@amd.com>
Co-authored-by: DineshKumar Kalva <DineshKumar.Kalva@amd.com>
2026-06-01 12:01:26 +02:00
Siva Subramanian Ravi Saravanan
a8fde10b0e dai: amd: add TDM DAI driver and register definitions for ACP 7.0
Add TDM DAI driver and ACP 7.0 register
definitions for AMD Audio Co-Processor. This includes:

- TDM DAI driver (tdm_dai.c) with support for I2S format
- ACP 7.0 chip register definitions and offset mappings
- Device tree bindings and nodes for TDM DAI instances
- Kconfig and CMake build integration

Signed-off-by: Siva Subramanian Ravi Saravanan <sravisar@amd.com>
Co-authored-by: DineshKumar Kalva <DineshKumar.Kalva@amd.com>
2026-06-01 12:01:26 +02:00
Tim Pambor
e17bf152b3 cache: stm32: fix potential races in dcache operations
Make sure that dcache operations complete before returning from cache
management functions to avoid potential race conditions. Also, ensure
that dcache operations are not interrupted by locking interrupts.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-06-01 11:59:50 +02:00
Łukasz Kędziora
ec1adcb333 drivers: i2c_dw: Add clock control
This adds optional clock control support to the i2c_dw driver. The
support currently assumes that the clock control binding uses clkid for
the clock cell name.

Signed-off-by: Łukasz Kędziora <lkedziora@antmicro.com>
Signed-off-by: Piotr Zierhoffer <pzierhoffer@antmicro.com>
Signed-off-by: Andreas Weissel <andreas.weissel@synaptics.com>
2026-06-01 11:58:35 +02:00
Jose Alberto Meza
c3b7ebe5ea drivers: espi: npcx: Implement eSPI interrupt configuration
Re-implement eSPI interrupt enable/disable using standard
eSPI API.

Signed-off-by: Jose Alberto Meza <jose.a.meza.arellano@intel.com>
2026-06-01 11:57:31 +02:00
Armando Visconti
ca2992379c drivers/sensor: lsm6dsv16x: add int-gpio-config attribute in DT
Add the possibility to configure the interrupt gpio in one of the
two possiblities:

      - GPIO_INT_EDGE_TO_ACTIVE
      - GPIO_INT_LEVEL_ACTIVE

Default is GPIO_INT_EDGE_TO_ACTIVE, which matches with old fixed
configuration.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2026-05-31 13:41:03 +02:00
Shreyas Shankar
d2a8500223 drivers: timer: ti_rtitimer: Add initial support for TI RTI Timer
Add support for using RTI hardware as system timer:

- Add headers, driver code, Kconfig, and bindings for TI RTI Timer
- Make changes in CMakeLists.txt and Kconfig to support ti_rti_timer
- Add documentation and usage instructions in bindings file.

NOTE: Each RTI has 2 Counter blocks, 4 Counter Compare blocks.
This driver assumes that Counter block 0, Compare block 0 of
chosen RTI instance are used as RTI Timer.

Signed-off-by: Shreyas Shankar <s-shankar@ti.com>
2026-05-31 13:39:47 +02:00
Josuah Demangeon
1d35748d5c style: remove whitespace in < ... >; syntax from doc/comments
Fix devicetree coding style regarding whitespaces through the tree.
This affects code snippets inside documentation, comments, error messages
as to encourage a style that passes CI. Follow-up of #101619

Signed-off-by: Josuah Demangeon <me@josuah.net>
2026-05-29 20:53:20 -07:00
Stephan Gatzka
1d65df9181 drivers: dac: dacx3608: Correct MSB alignment
The TI DAC43608 has 8 bit resolution, the DAC53608 has 10 bit
resolution. According to the datasheet from Texax Instruments,
the MSB of DACn_DATA must be left aligned.

This fix aligns the data correctly, allowing the DAC value to
be set to 100% and not only 25% max for the DAC43608.

Signed-off-by: Stephan Gatzka <stephan.gatzka@gmail.com>
2026-05-29 23:35:57 +02:00
Henrik Brix Andersen
8f5e2db6b8 drivers: eeprom: fake: make fake_eeprom_size_delegate() private
Make the internal fake_eeprom_size_delegate() function private.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2026-05-29 22:12:18 +02:00
Stanislav Poboril
0c7edb88e8 drivers: eth_nxp_enet_qos: default to 10 Mbps half-duplex at MAC init
The MAC_CONFIGURATION register was unconditionally OR'ed with the FES
(speed) and DM (duplex) bits, forcing 100 Mbps full-duplex during MAC
initialization. The PHY link callback later updates these bits to match
the actual link state, but on 10BASE-T1S (PLCA) links the temporary
100 Mbps/full-duplex setting causes the MAC to ignore the COL signal
from the internal TENBASET_PHY block. As a result the MAC transmits
during another node's transmit opportunity, producing collisions and
lost data.

Initialize MAC_CONFIGURATION with FES and DM cleared (10 Mbps,
half-duplex, which is also the register's reset value) and let the PHY
callback set the correct speed/duplex once the link is up. Read-modify-
write is done via a local variable so both the set and clear masks are
applied in a single register write.

Fixes #109682

Signed-off-by: Stanislav Poboril <stanislav.poboril@nxp.com>
2026-05-29 22:11:11 +02:00
Fin Maaß
5f454ed70d flash: esp32: remove MPU_ALLOW_FLASH_WRITE
the option MPU_ALLOW_FLASH_WRITE is only needed
when ARM_MPU. Only files in include/zephyr/arch/arm/mpu/
and include/zephyr/arch/arm64/cortex_r use it. it is not used in
xtensa or riscv.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-29 22:09:37 +02:00
Omar Naffaa
7ef5a30e66 drivers: interrupt_controller: riscv: Fix incorrect bitmask (intc_clic)
Update drivers/interrupt_controller/intc_clic.c to use BIT_MASK(2)
rather than BIT_MASK(3) in "riscv_clic_irq_priority_set". The .trg
attribute of the CLICINTATTR that is initialized in this function is
2 bits while the current mask is 3 bits. To ensure only 2 bits are
used, we need to correct the mask.

Signed-off-by: Omar Naffaa <onaffaa@qti.qualcomm.com>
2026-05-29 22:08:49 +02:00
Romain Jayles
22fafcfaee drivers: stm32_lptim_timer: check DIEROK on all the relevant socs
Others socs series also have a DIEROK flag to check.
The stm32_lptim_timer has been modificated accordingly

Signed-off-by: Romain Jayles <romain.jayles@st.com>
2026-05-29 22:08:20 +02:00
Ali Hozhabri
a8c09c2e34 drivers: bluetooth: hci: Modify BLE driver to support X-Nucleo-WBA25A1
Provide the necessary changes for the ST HCI SPI Bluetooth driver
to support X-NUCLEO-WBA25A1 shield.

Update ST BLE shields' overlays with the new properties.

Signed-off-by: Ali Hozhabri <ali.hozhabri@st.com>
2026-05-29 22:07:54 +02:00
Richard Mc Sweeney
6c400ffa70 drivers: Add pse84 autanalog PRB reference
Added support for autanalog PRB for PSE84.

This implementation uses the shared autonomous controller (AC) MFD
with the other autanalog drivers.

The PRB is a programmable reference block inside the autonomous
(aut) analog subsystem. It is controlled using the autonomous
controller (AC), which is a programmable state machine. The AC is
shared across all autonomous analog peripherals including the
SAR, PRB, PTComp, CTB, and CTDAC.

The PRB contains two variable voltage references derived from
either VDDA(1.8V) or VGBR(0.9V). These need to be configured
together and accessed using the AC. A PRB MFD is used to bring
together the two voltage reference configurations. AC MFD then
references the combined PRB MFD configuration, and brings together
all other autanalog peripherals into a single AC setup for the
application.

Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Richard Mc Sweeney <Richard.McSweeney@infineon.com>
2026-05-29 22:07:08 +02:00
Måns Ansgariusson
dd85c65b7e drivers: ethernet: sam_gmac: replace private ring_buffer with sys_ringq
Remove the driver-local struct ring_buffer in favour of sys_ringq.
Pointers are stored directly in the ring queues, which removes the need
for the POINTER_TO_UINT casts and fixes a potential platform-specific
pointer truncation issue on 64-bit architectures.

gmac_desc_list rings are unchanged as they require
in-place DMA descriptor access.

closes: #21155
Signed-off-by: Måns Ansgariusson <mansgariusson@gmail.com>
2026-05-29 22:06:36 +02:00
Richard Mc Sweeney
deb16ae425 drivers: mux input support for pse84 autanalog sar
Updated pse84 autanalog sar to support muxed inputs.

This implementation uses the autonomous controller (MFD).
The autonomous controller (AC) a programmable state machine. The AC
is shared across all autonomous analog peripherals including the
SAR, PRB, PTComp, CTB, and CTDAC.

The device supports 8 direct GPIO inputs and 16 muxed inputs.
The muxed inputs can be sourced from pins or from interal signals
from other autanalog blocks. Muxed inputs can be chosen by assigning
channels 8 and above. Only 2 muxed channels are allowed per sequencer
when operating in high-speed mode. 1 muxed channel is permitted per
sequencer when operating in low power mode.

Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Richard Mc Sweeney <Richard.McSweeney@infineon.com>
2026-05-29 22:05:52 +02:00
Raffael Rostagno
9b0c9a2a3a drivers: tsens: esp32: Sleep retention
Add sleep retention support for die temp driver. When peripheral
power down is enabled for light sleep, register data is lost,
so REGDMA backup is needed to mantein peripheral operational.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2026-05-29 22:05:37 +02:00
Raffael Rostagno
caa27e425a drivers: pwm_ledc: esp32: Sleep retention
Add sleep retention support for LEDC PWM driver. When peripheral
power down is enabled for light sleep, register data is lost,
so REGDMA backup is needed to mantein peripheral operational.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2026-05-29 22:05:37 +02:00
Raffael Rostagno
57587585f9 drivers: wdt: esp32: Sleep retention
Add sleep retention support for WDT driver. When peripheral
power down is enabled for light sleep, register data is lost,
so REGDMA backup is needed to mantein peripheral operational.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2026-05-29 22:05:37 +02:00
Raffael Rostagno
e9e7a4457a drivers: counter: esp32: Sleep retention
Add sleep retention support for counter driver. When peripheral
power down is enabled for light sleep, register data is lost,
so REGDMA backup is needed to mantein peripheral operational.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2026-05-29 22:05:37 +02:00
Raffael Rostagno
e57da3593d drivers: uart: esp32: Sleep retention
Add sleep retention support for UART driver. When peripheral
power down is enabled for light sleep, register data is lost,
so REGDMA backup is needed to mantein peripheral operational.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2026-05-29 22:05:37 +02:00
Raffael Rostagno
f127e9f846 drivers: spi: esp32: Sleep retention
Add sleep retention support for GSPI driver. When peripheral
power down is enabled for light sleep, register data is lost,
so REGDMA backup is needed to mantein peripheral operational.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2026-05-29 22:05:37 +02:00
Raffael Rostagno
d464bb4df6 drivers: dma: esp32: Sleep retention
Add sleep retention support for GDMA driver. When peripheral
power down is enabled for light sleep, register data is lost,
so REGDMA backup is needed to mantein peripheral operational.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2026-05-29 22:05:37 +02:00
Sudarshan Iyengar
111a1ba43f drivers: sensor: bmi323: Add I2C bus support
Add I2C bus support to the BMI323 sensor driver. The BMI323
supports I2C communication with a dummy byte offset protocol
where 2 dummy bytes precede actual data in read operations.

Changes:
- Add bmi323_i2c.c/.h with I2C read/write and chip ID validation
- Add BMI323_BUS_I2C Kconfig option
- Update BMI323_DEVICE_BUS macro to handle I2C bus type
- Add bosch,bmi323-i2c.yaml device tree binding

The I2C implementation handles the dummy byte offset required
by the BMI323 when reading registers over I2C.

Signed-off-by: Sudarshan Iyengar <sudarshan.iyengar@alifsemi.com>
2026-05-29 22:05:08 +02:00
Sudarshan Iyengar
792718a5a3 drivers: sensor: bmi323: add RTIO async API support
Add Real-Time I/O (RTIO) asynchronous sensor API support to the
BMI323 driver. This enables non-blocking sensor reads with
kernel-managed buffering.

Features added:
- RTIO submit and decode operations for accel, gyro, and temp channels
- Q31 fixed-point format encoding for consistent sensor data scaling
- Unified sample fetch implementation shared between sync and async paths
- Decoder API with timestamped frame headers

The driver now supports both blocking (sensor_sample_fetch) and
non-blocking (sensor_read) operation modes when CONFIG_SENSOR_ASYNC_API
is enabled.

Signed-off-by: Sudarshan Iyengar <sudarshan.iyengar@alifsemi.com>
Assisted-by: GPTCodex:GPT-5.4
2026-05-29 22:05:08 +02:00
Sudarshan Iyengar
87421d3d8a drivers: sensor: bme680: Add RTIO support
Add Real-Time I/O (RTIO) support to the BME680 sensor driver to enable
asynchronous sensor operations. This implementation follows the pattern
established by other Bosch sensor drivers in Zephyr.

Changes include:
- Add bme680_async.c implementing the sensor async API submit function
  using RTIO lock free queues asynchronous read operations
- Add bme680_decoder.c implementing the sensor decoder API for
  Q31-format data conversion of temperature, pressure, humidity, and
  gas resistance channels
- Add RTIO encoded data structures (bme680_encoded_data, bme680_reading)
  to bme680.h with proper bit-packed flags for channel presence
- Update CMakeLists.txt to conditionally build async sources when
  CONFIG_SENSOR_ASYNC_API is enabled

The driver supports fetching temperature, pressure, humidity, and gas
resistance channels via the RTIO interface.

Signed-off-by: Sudarshan Iyengar <sudarshan.iyengar@alifsemi.com>
Assisted-by: Claude:claude-opus-4.6
2026-05-29 10:31:46 -05:00
Pieter De Gendt
915774def3 drivers: i2c: target: Put device driver API into iterable section
Use DEVICE_API() so DEVICE_API_GET(i2c_target, dev) passes its
section-bounds assert.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2026-05-29 08:29:09 -05:00
Mathieu Choplain
f4ad8ed152 drivers: hwinfo: stm32: fix reset flags handling for STM32C5
The LL function is named differently on STM32C5 because the hardware is
different: the `RMVF` bit must be cleared by software, whereas hardware
clears it automatically on all other series.

Rework the implementation to be functional, and rename the function to
match intent while at it. Also, switch to a series-specific #if guard
since this is hardware-specific rather than related to HAL1/HAL2.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-05-29 10:49:49 +02:00