Commit graph

25,525 commits

Author SHA1 Message Date
Luis Ubieda
b87f0ffbf3 icm45686: stream: Remove run-time variability of samples on FIFO WM
Since the driver knows how many samples it wants (because of the
watermark threshold), stick to that per event in order to facilitate
batches of N number of samples.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-09-30 11:02:12 +02:00
Luis Ubieda
836e6fb882 icm45686: stream: Remove memset when completing stream event
As it's not required, so we rather spare the cycles.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-09-30 11:02:12 +02:00
Luis Ubieda
ea708cf9e1 icm45686: Add warning log when event triggered while busy
In order to detect when events are being missed.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-09-30 11:02:12 +02:00
Luis Ubieda
7921ca4090 icm45686: stream: Add missing call to drop RTIO Bus queue when full
Not handled otherwise.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-09-30 11:02:12 +02:00
Luis Ubieda
fdc359547b icm45686: stream: Refactor completion actions through helper function
In order to simplify code-logic.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-09-30 11:02:12 +02:00
Luis Ubieda
532c80a764 icm45686: Replace assert for check-if when buffer alloc fails
In order to allow the error-handling scheme to take action, instead
of crashing when asserts are enabled. Now possible since we have RTIO
error handling for streaming mode.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-09-30 11:02:12 +02:00
Luis Ubieda
bab0723972 icm45686: Update RTIO bus API to simplify async transfers
Similar pattern applied to other in-tree sensor drivers, where
preparing a set of SQEs for writing/reading on registers is a recurrent
syntax.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-09-30 11:02:12 +02:00
Armando Visconti
b390cbd6b2 drivers/sensor: iis3dwb: add streaming capabality
Add read_and_decode streaming APIs support.

Triggers supported:
    - SENSOR_TRIG_FIFO_WATERMARK
    - SENSOR_TRIG_FIFO_FULL
    - SENSOR_TRIG_DATA_READY

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2025-09-30 11:01:12 +02:00
Armando Visconti
93a30e7806 drivers/sensor/st: add support to IIS3DWB accel
The IIS3DWB is a system-in-package featuring a 3-axis digital vibration
sensor with low noise over an ultrawide and flat frequency range.
The wide bandwidth, low noise, very stable and repeatable sensitivity,
together with the capability of operating over an extended temperature
range (up to +105 C), make the device particularly suitable for vibration
monitoring in industrial applications.

Datasheet: https://www.st.com/en/mems-and-sensors/iis3dwb.html

This driver is currently only supporting the polling-mode read_and_decode
APIs (both blocking and non-blocking).

This driver is based on stmemsc HAL i/f v2.9.1.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2025-09-30 11:01:12 +02:00
Tobias Kässer
9cbcdda587 drivers: sensor: adxl345: Add support for motion trigger
Adding minimal support for using motion trigger interrupts
with the adxl345

Signed-off-by: Tobias Kässer <t.kaesser@gmail.com>
2025-09-30 11:00:14 +02:00
Anthony Williams
e6ff45d38a sensor: rm3100: Add support for SPI
Add support for SPI

Signed-off-by: Anthony Williams <anthony289478@gmail.com>
2025-09-30 10:59:21 +02:00
Bill Waters
95dc13d1e1 drivers: i2c: add pdl driver for Infineon devices
- Add the pdl-based version of the i2c driver for infineon devices
  like the one found on the kit_psc3m5_evk board.
- In the pull request review it was decided that the
  I2C_INFINEON_CAT1_ASYNC option was not needed.  The driver would
  always be interrupt driven.  This meant that the existing driver
  had to be updated as well.

Signed-off-by: Bill Waters <bill.waters@infineon.com>
2025-09-30 10:58:31 +02:00
Seppo Takalo
b8541c53ee modem: modem_cellular: Allow PPP interface to wake up the device
Allow PPP device to wake up the underlying cellular modem.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-09-29 12:47:57 -04:00
Rafał Kuźnia
3d63165050 drivers: ieee802154: nrf5: Remove temporary API migration code
The new nrf-802154 now has the updated API signatures. The migration
code is no longer needed.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2025-09-29 12:47:02 -04:00
Hake Huang
fc23368673 driver: display: fix a return error on display_hx8394
hx8394_mipi_tx will return write size, so this can not used to
return init call.

fixes: #96547

Signed-off-by: Hake Huang <hake.huang@nxp.com>
2025-09-29 12:46:43 -04:00
Frederik Wenigwieser
697e7f6189 drivers: spi: spi_esp32_spim: fix rtio include
Add missing include.

Signed-off-by: Frederik Wenigwieser <zephyr@frederik.at>
2025-09-29 12:44:59 -04:00
Pablo Bacho
7c175a1664 drivers: i2c: stm32: make transfer timeout configurable
Make the STM32 I2C transfer timeout configurable via Kconfig.

- Add CONFIG_I2C_STM32_TRANSFER_TIMEOUT_MSEC Kconfig symbol.
- Use this Kconfig value in both STM32 I2C drivers.

Tested on STM32WBA55CG.

Fixes: #95819

Signed-off-by: Pablo Bacho <pablobacho@gmail.com>
2025-09-29 12:44:39 -04:00
Daniel Leung
0b3b6f30a3 ipm: remove the Intel Audio DSP CAVS host IPM driver
This IPM driver is not being used by SOF and is there simply for
a test which does not provide much additional value compared to
the existing host IPC tests. That IPM specific test has been
removed so there is no need to keep this driver in the tree.
This is in preparation to rewrite the host IPC driver to utilize
the IPC API. There is no need to maintain another driver that is
not being used in SOF.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2025-09-29 12:42:00 -04:00
Gerard Marull-Paretas
4b4dcbbf4a drivers: dma: sf32lb: add initial driver
Add an initial driver for SiFli SF32LB DMAC DMA controller.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-29 12:40:15 -04:00
Pieter De Gendt
5b2e2afbdc drivers: display: st7701: Add PM actions
Add resume/suspend power management actions.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2025-09-29 12:39:47 -04:00
Tim Pambor
6e048bc068 drivers: hwinfo: native: report reset cause
Support reporting the reset cause for native_sim. The default is to
report POR (Power-On Reset). If CONFIG_NATIVE_SIM_REBOOT was enabled and
the system is rebooted using sys_reboot(), the reset cause is set to
SOFTWARE.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2025-09-29 12:37:47 -04:00
Andrew Featherstone
67f2e49ce3 drivers: counter: rpi_pico: Remove redundant CMSIS include
This header file isn't required, and prevents the driver building for
the RISC-V based Hazard3 cores.

Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
2025-09-29 12:30:28 -04:00
Andrew Featherstone
80a54a89cd drivers: intc: RP2350: Add initial support for Hazard3
The RP2350 uses the Xh3irq interrupt controller, which supports nested
and prioritised interrupts. This adds initial support, configuring the
controller in 'direct' (non-vectored) mode.

Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
2025-09-29 12:30:28 -04:00
Andrew Featherstone
d88193cba9 drivers: clock_control: rpi_pico: Start all the tick generators
There's no benefit to starting a subset of them, and this ensure that
everything is ready, regarless of RP2040 vs RP235xx, and whether the
Cortex-M33 or Hazard3 cores are in use in the latter case.

Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
2025-09-29 12:30:28 -04:00
Stefan Kraus
d380d430ea drivers: led_strip: ws2812_gpio: prevent overflow
In case one defines an RGB led that is bigger than the led_rgb struct,
ws2812_gpio_update_rgb would overflow the buffer it writes to while
iterating. This could lead to crashes, as the code would also support
GRBW (as supposed in one comment).

As a 'proper' fix would require another buffer and therefore more
memory, I added a BUILD_ASSERT to ensure it does not compile.

Signed-off-by: Stefan Kraus <dev@stefankraus.org>
2025-09-29 09:58:19 +02:00
Stefan Kraus
73eb7bb18a drivers: led_strip: ws2812_gpio: fix overwriting in loop
Due to the alias of ptr on pixels, one iterates over the same area
one reads from to set values. Therefore, if the strip is not 'RGB' but
GBR, one would overwrite the pixels 'r' value with the 'g' value in the
first loop, leading to a wrong read afterwards.

By writing to a temporary variable, we have a clean, unmodified copy
of the original values.

Additionally, this removes the dependency on 'LED_STRIP_RGB_SCRATCH',
as the scratch part (that masked most error cases) is not necessary
anymore.

Signed-off-by: Stefan Kraus <dev@stefankraus.org>
2025-09-29 09:58:19 +02:00
Sylvio Alves
49355813d3 drivers: entropy: espressif: enable TRNG in driver, not clock init
Move the TRNG peripheral enable from the clock/SoC init path to the
Espressif entropy driver init.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-09-29 05:50:56 +02:00
Sherry Li
d90d71c42c drivers: smbus: stm32: implement smbus_block_read
Smbus implementation for stm32 lacks of smbus_block_read(), so add the
functionality.

Fix some indentations.

Signed-off-by: Andrew Lewycky <alewycky@tenstorrent.com>
Signed-off-by: Sherry Li <xiaoruli@tenstorrent.com>
2025-09-28 14:14:35 -04:00
Marcin Niestroj
7fc8051b0f drivers: wifi: esp_at: return WIFI_STATUS_* connect error codes
Return `enum wifi_conn_status` after failed connection attempt. Parse
`+CWJAP:` messages to get failure reason.

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2025-09-27 14:00:09 -04:00
Pisit Sawangvonganan
601f2fde6e drivers: serial: pl011: reduce device's base address accesses
In several functions, the UART registers are accessed multiple times
through the `get_uart(dev)` inline function. This results in repeated
dereferencing of the device's base address.

This commit caches the UART register struct pointer in a local variable
`uart` at the beginning of each relevant function.

For registers where repeated access is not needed, the value is read once
into a temporary variable. Modifications, if any, are applied to
the temporary copy, and the result is written back once.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2025-09-27 13:59:43 -04:00
Johann Fischer
4fe2c5bd5f drivers: udc: allow to use timeout Kconfig option on nRF54LM20A SoC
Kconfig option UDC_DWC2_USBHS_VBUS_READY_TIMEOUT depends on services
exclusively available for nRF54H20, but the option can also be used for
nRF54LM20A, where there are no service dependencies, and VREG can be
accessed by the driver directly. Let depend the option on the SOC
series, as the controller can be used by the different CPUs on the SOC.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-09-26 20:48:32 -04:00
Johann Fischer
0018e8d600 drivers: udc: cleanup depends in Kconfig.dwc2
Factor out UDC_DWC2 dependency.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-09-26 20:48:32 -04:00
TOKITA Hiroshi
c6608fcd80 drivers: virtio: Separate macros into a common header
Move macros derived from the VIRTIO specification to a shared include.
This change allows the VIRTIO standard definitions to be referenced
from outside the driver implementation.

The following definitions have also been added:

- VIRTIO_F_VERSION_1
- VIRTIO_F_ACCESS_PLATFORM
- VIRTIO_RING_F_INDIRECT_DESC
- VIRTIO_RING_F_EVENT_IDX
- VIRTQ_AVAIL_F_NO_INTERRUPT
- VIRTQ_USED_F_NO_NOTIFY

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2025-09-26 20:45:00 -04:00
Vincent Tardy
dc89803697 drivers: ieee802154: add support of 802.15.4 for STM32WBA
Add the driver itself and Kconfig/CMakeLists/dts/bindings related to it.
Other files and libraries needed are in ST's dedicated folder
hal_stm32 (modules/hal/stm32).

Signed-off-by: Vincent Tardy <vincent.tardy@st.com>
2025-09-26 20:44:45 -04:00
Titouan Christophe
3993a739e9 drivers: i2s: ll_stm32: fix missing implementation for i2s_config_get
This fixes system crashes in `i2s_buf_write`, because this function
internally calls `i2s_config_get`, which resulted in a NULL pointer on
stm32 i2s devices.

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
2025-09-26 16:02:02 -04:00
Chris Friedt
bc02f34f16 drivers: smbus: stm32: send block write byte count
Send "count" byte. The SMBus block write protocol requires this byte.

Use I2C_MSG_WRITE named flag instead of 0.

Signed-off-by: Andrew Lewycky <alewycky@tenstorrent.com>
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-09-26 16:01:44 -04:00
Shreehari HK
aa50860712 drivers: i3c: add open-drain speed support
Add SHELL support for configuring I3C open-drain speed modes.

Implementation:
- Include open-drain timing configuration inside cmd_i3c_speed function.

Signed-off-by: Shreehari HK <shreehari.hk@alifsemi.com>
2025-09-26 16:00:42 -04:00
Shreehari HK
c81b029fca drivers: i3c: configure open-drain speed
Add support for configuring I3C open-drain speed modes to handle
different timing requirements during bus initialization and operation.

Implementation:
- Fetch current controller configuration
- Invoke configure api inside bus_init to configure
  I3C open-drain high period for proper bus
  initialization and device compatibility.

The slow speed mode is essential for the first broadcast address
transmission to ensure visibility to all devices on the I3C bus,
particularly those in I2C mode that need to disable their spike
filters when switching to I3C mode. This requirement is specified
in "Table 49 I3C Basic Open Drain Timing Parameters" of the MIPI
ALLIANCE Specification for I3C Basic Version 1.2.

Signed-off-by: Shreehari HK <shreehari.hk@alifsemi.com>
2025-09-26 16:00:42 -04:00
Shreehari HK
4d6673bc69 drivers: i3c: dw: enhance open-drain timing configuration
This commit improves the I3C handling of open-drain
timing configurations with the following changes:
- Add OD minimum high_ns and low_ns DT properties
- Implement dw_i3c_init_scl_timing for runtime timing updates
- Initialize scl_od_min configuration from device tree
- Maintain backward compatibility with existing configurations

Requirement (MIPI Specification for I3C Basic v1.2 (16-Dec-2024),
             Section 4.3.11.2 & Table 49):
- The MIPI I3C specification mandates different open-drain speeds during
  bus initialization as defined in
  "I3C Basic Open Drain Timing Parameters".
- The first broadcast address (7'h7E+W) must be transmitted at a slower
  open-drain speed to ensure visibility to all devices on the I3C bus,
  including legacy I2C devices. This slow speed (minimum 200ns Thigh)
  allows I2C devices to properly detect the I3C mode transition and
  disable their spike filters before switching to I3C mode. After the
  initial broadcast, normal I3C open-drain speeds can be used for
  regular operation.

Signed-off-by: Shreehari HK <shreehari.hk@alifsemi.com>
2025-09-26 16:00:42 -04:00
Andrzej Głąbek
828bde8213 drivers: flash_mspi_nor: Add support for CONFIG_MULTITHREADING=n
Add possibility to use the driver in configurations with disabled
multithreading. It may be useful in bootloaders, for example.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2025-09-26 13:23:34 +02:00
Andrzej Głąbek
c8e3bfac1c drivers: mspi_dw: Add support for CONFIG_MULTITHREADING=n
Add possibility to use the driver in configurations with disabled
multithreading. It may be useful in bootloaders, for example.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2025-09-26 13:23:34 +02:00
Muhammed Asif
67a25f245d drivers: pwm: sam0: Add support for tc 32 bit mode
- Added logic for updating the registers for 32 bit when
   32-bit counter size is selected.

Signed-off-by: Muhammed Asif <asifp3104@gmail.com>
2025-09-26 13:23:07 +02:00
Yangbo Lu
bdb5c3072a drivers: eth_nxp_imx_netc: add promisc mode support
Added promisc mode support for eth_nxp_imx_netc.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-09-26 11:07:34 +02:00
Sean O'Connor
8115d9b453 drivers: i2s: nrfx: Allow MCK bypass for proper LRCK and MCK Ratios
nRF53 series SoCs have a dedicated configurable audio PLL and the ability
to enable MCK bypass via a register value CONFIG.CLKCONFIG. This can
enable higher MCK/LRCK ratios that some I2S peripherals require the host
to generate. Allow an application developer to choose if they want to
initially look for a bypass ratio and, if found, enable bypass in the
NRFX driver. If not, the standard MCK calculation is conducted as normal.

Signed-off-by: Sean O'Connor <sean@standalone.tech>
2025-09-26 11:07:12 +02:00
Hou Zhiqiang
7476c5278d drivers: scmi: nxp: fix build warning
When none of the configs is enabled, it will reports the following build
warning:

CMake Warning at zephyr/CMakeLists.txt:1096 (message):
  No SOURCES given to Zephyr library: drivers__firmware__scmi__nxp

  Excluding target from build.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2025-09-26 06:40:56 +02:00
Cla Mattia Galliard
31b067482a drivers: power_domain: gpio: Use k_timepoint_t for absolute time
Use k_timepoint_t instead of k_timeout_t for absolute time to avoid
ambiguity and ensure the code works even when CONFIG_TIMEOUT_64BIT=n.

Signed-off-by: Cla Mattia Galliard <clamattia@gmail.com>
2025-09-25 14:19:04 -04:00
Cla Mattia Galliard
52f1133806 drivers: gnss: quectel lcx6g: Fix overflow by using timepoint-API
Make use of the timepoint-API to fix a potential 32-bit unsigned int
overflow in this driver.

Signed-off-by: Cla Mattia Galliard <clamattia@gmail.com>
2025-09-25 14:18:54 -04:00
Declan Snyder
1481755acb drivers: uart_mcux_flexcomm: Refactor low power state handle
Refactor low power state handling to not tie to zephyr,disabling-states
and define it's own separate "low power states" property in DT instead.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-09-25 14:18:05 -04:00
Franck Duriez
cfbe64934e driver: pwm/pca9685: remove unimplemented misleading property
Invert property was not implemented and is now redundant with the flag
pwm-cell which is more flexible in case you want some IO to be inverted
and some not

Signed-off-by: Franck Duriez <franck.lucien.duriez@gmail.com>

# Conflicts:
#	doc/releases/migration-guide-4.3.rst
2025-09-25 14:17:15 -04:00
Franck Duriez
ae889020bc driver: pwm/pca9685: handle POLARITY flag
Handle polarity flag in pca9685 driver

Signed-off-by: Franck Duriez <franck.lucien.duriez@gmail.com>
2025-09-25 14:17:15 -04:00