Commit graph zephyr/drivers
Author SHA1 Message Date
Aksel Skauge Mellbye
b0344892f7 manifest: Update hal_silabs
Update hal_silabs to new HAL versions:

* SiSDK 2025.12.3
* WiSeConnect 4.0.2

This HAL update requires a minor change to the `memc` driver
for SiWx91x because an API has been renamed.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2026-05-07 13:19:13 +01:00
Krzysztof Chruściński
9697c188fe drivers: serial: nrfx_uarte: Use TIMER address from DT
For bsim targets MDK define (NRF_TIMERx) which is an address
of TIMER peripheral is not the same as register address for
timer node. Driver expects that address is set to the HW
peripheral address and it is later on converted to RAM
structure used by the bsim. Use address from the device tree
as it actually is set to the HW address, contrary to the
NRF_TIMERx macro which already points to the RAM structure
used by the simulator.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-05-07 13:18:41 +01:00
Adrien Ricciardi
5f1f342ac5 drivers: serial: R-Car: Add generic clock support
Convert the driver clock accesses to use the new generic API, so the
driver can be used on R-Car boards generations 3, 4 and 5 without changes.

This code has been tested on a Spider S4 and on an Ironhide X5H.

Signed-off-by: Adrien Ricciardi <aricciardi@baylibre.com>
2026-05-07 14:16:55 +02:00
Fabio Baltieri
35454d4458 input: use more LOG_ERR_DEVICE_NOT_READY
Fix more LOG_ERR_DEVICE_NOT_READY usages that were missing from
31b5866c88 for some reasons, there should be no more custom "not ready"
messages in input drivers after this.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2026-05-07 10:46:39 +01:00
Alexpandi Muniyandi
3984c8987a drivers: i2c: support 0-byte write for i2c scan in shell
The I2C shell scan probes addresses with a 0-byte write.
The driver returned -EIO without touching the bus because both
tx_size and rx_size are 0. Handle tx non-NULL with tx_size 0 by
calling MasterWrite which sends START + address + STOP.

Signed-off-by: Alexpandi Muniyandi <alexpandi@linumiz.com>
2026-05-07 09:23:24 +02:00
Ren Chen
ddba70043d soc: ite: ec: extend irq number size to 16-bit
Next-generation it51xxx SoCs support more than 256 irqs.
This change extends irq range up to 16 bit depend on
CONFIG_NUM_IRQS.

And the it8xxx2 SoC series only supports 8-bit irq
number size. Add irq type check assertion for this
series.

Tested with:
- it82xx2_evb/it8xxx2_evb/it51xxx_evb_it51526aw:
  tests/drivers/gpio/gpio_basic_api
- native_sim/native:
  tests/drivers/gpio/gpio_ite_it8xxx2_v2

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2026-05-07 09:23:06 +02:00
Fin Maaß
73a0004d6e ethernet: litex: move iface into config struct
move the pointer to the iface to the config
struct

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-07 09:21:51 +02:00
Fin Maaß
9e2a2e5752 ethernet: litex: flush pending irq before enable
flush pending irq before enable

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-07 09:21:51 +02:00
William Markezana
66b4ecb85d drivers: bluetooth: add BL61x on-chip BLE HCI driver
Extend the shared BFLB HCI driver with BL61x (BL616/BL618) support:
BL61x include paths and RF init routing through bflb_rf_init().

Kconfig adds BT_BFLB_BL61X with four controller variant choices, a
configurable PHY/RF retention memory size, and a 64 KB exchange memory
option for the BR/EDR variant.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-05-07 09:16:15 +02:00
William Markezana
d3274916ab drivers: sensor: add TE Connectivity HTU31D sensor driver
Add a driver for the HTU31D digital humidity and temperature sensor
from TE Connectivity (Measurement Specialties).

The driver implements the Zephyr sensor API with support for
SENSOR_CHAN_HUMIDITY (%) and SENSOR_CHAN_AMBIENT_TEMP (degrees C).
Measurement data is validated with CRC-8 per the datasheet.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-05-07 09:13:40 +02:00
Andrei-Edward Popa
e1cebbe7ad drivers: serial: uart_cmsdk_apb: fix init flow after pinctrl apply
uart_cmsdk_apb_init() returns early when pinctrl_apply_state()
succeeds, because the return value check is wrong.

As a result, the rest of the UART initialization is skipped and
the device remains only partially initialized.

Ignore -ENOENT as intended, but continue init on success and
abort only on real pinctrl errors.

Signed-off-by: Andrei-Edward Popa <andreip@axonne.com>
2026-05-07 09:13:09 +02:00
Tomi Fontanilles
7d65b380e2 modules: mbedtls: link to mbedTLS only when CONFIG_MBEDTLS_BUILTIN
393350fd65 made it so that the `mbedTLS`
library is only created when `CONFIG_MBEDTLS_BUILTIN`.

Before this commit, users of Mbed TLS did the following:
`zephyr_library_link_libraries_ifdef(CONFIG_MBEDTLS mbedTLS)`

If the `mbedTLS` CMake library doesn't exist but is still linked to
(as is the case when `CONFIG_MBEDTLS && !CONFIG_MBEDTLS_BUILTIN`),
the linker command is populated with `-lmbedTLS` which makes the build
fail because there is no `libmbedTLS.a` in the build.

Make it so that users of Mbed TLS only link to the `mbedTLS` CMake
library when the builtin version is used.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2026-05-07 09:11:36 +02:00
Sanjay Vallimanalan
143953b66a drivers: watchdog: Add MSPM0 watchdog driver
TI MSPM0 has a WWDT module to initiate a reset when correct operation of
the device has failed due to an unexpected software or system delay.

Signed-off-by: Sanjay Vallimanalan <sanjay@linumiz.com>
Signed-off-by: Jackson Farley <j-farley@ti.com>
2026-05-07 09:10:50 +02:00
Pete Johanson
a0d8f78655 drivers: usb: udc: Buffer null checks, EP0 OUT handling, etc
Add missing null buffer checks in event callbacks for IN/OUT done handling,
various small fixes for halted state handling, remove some unnecessary
logging for expected failure modes, etc

Signed-off-by: Pete Johanson <pete.johanson@analog.com>
2026-05-06 19:59:08 +02:00
Henrik Brix Andersen
2cb670aec6 drivers: can: stm32: bxcan: guard against NULL pointer dereference
Guard against a theoretical NULL pointer dereference in CAN send path.

Fixes: #108378

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2026-05-06 19:58:51 +02:00
Guillaume Gautier
8c39353686 drivers: adc: stm32: fix get channel differential
The LL_ADC_GetChannelSingleDiff function to know whether an ADC channel
is configured as differential or single-ended was not used correctly.
This lead to systematically disabling the ADC to reconfigure it, even if
the configuration was already the correct one.

Instead of returning the mode, LL_ADC_GetChannelSingleDiff returns the
channel if it is configured as differential, or 0 if it is single-ended.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2026-05-06 19:57:55 +02:00
Ayush Singh
c483b2aaae gpio: mspm0: Add MSPM0L110x support
- As described in datasheet, MSPM0L110x has 28 pins in GPIOA.
- Also, it does not contain GPIOB and GPIOC.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2026-05-06 19:57:20 +02:00
Daniel Schultz
61726d8b81 drivers: serial: uart_shell: read: Add err_check
The poll_in function doesn't return any error codes related to
the transmission itself. Call 'err_check' afterwarwds to make
sure no error flags are present.

Example: in case an FIFO overrun happens, poll_in would return
no data but this command should report the error.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2026-05-06 19:56:49 +02:00
Håvard Reierstad
41e3b91fcb Bluetooth: HCI: Allow discarding of ext adv reports
Implements a method for discarding fragmented extended advertising. In
order to acheive this, we need to consider past and future fragments
of the advertising report we discard.

The future fragments are on its way from the controller, and will result
in either a complete- or incomplete event. These are handled by tracking
the adv SID and address until the controller sends either a complete or
incomplete event. Once an advertising report is marked as discarded,
consecutive fragments will be silently discarded.

The past fragments are either already in the reassembler (in scan.c),
or on their way through the rx_queue. To handle these, and allow the
reassembler to recover from a in-progress reassembly which is discarded,
we add a work item which is rescheduled when each consecutive fragment
is received. The timeout is configurable through the new Kconfig option
`CONFIG_BT_EXT_ADV_REASSEMBLY_TIMEOUT`. On timeout, the reassembler will
change its state to discard incoming fragments from the same advertiser.
The reassembler will start assembling new fragments if it recognises a
new advertiser, or if a final fragment (either marked as complete
or incomplete) from the advertiser it is currently tracking is received.

This functionality needs to be added at a HCI driver level by using the
new `hci_ext_adv_report_process` function. It is added the the
IPC HCI driver to fix zephyrproject-rtos/zephyr#50786

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2026-05-06 16:29:15 +01:00
Amneesh Singh
24560e0a69 drivers: syscon: use uint32_t for register offsets
Use uint32_t to allow larger offsets in place of the existing uint16_t
configuration.

Signed-off-by: Amneesh Singh <amneesh@ti.com>
2026-05-06 16:29:04 +01:00
Camille BAUD
e233f26384 drivers: pinctrl: bflb: Add clock out support
Add ability to output clocks generated by the microcontroller onto pins

Signed-off-by: Camille BAUD <mail@massdriver.space>
2026-05-06 16:28:45 +01:00
Ren Chen
75448eb1f6 drivers: counter: it51xxx: disable alarm before callback
This commit dsiables alarm counter before executing callback
function. Additionally, the alarm counter (external timer 7)
ticks are limited to 3 bytes. Return errno if the configured
value exceeds this range.

Tested with: samples/drivers/counter/alarm

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2026-05-06 12:02:47 +01:00
Silesh C V
cafc09316e drivers: clock_control: alif: make m55hp_cfg optional
Make the m55hp_cfg register block optional to support single-core
Alif SoCs (such as from the Balletto family) that only have the
Cortex-M55 HE subsystem. Multi-core SoCs that have both RTSS-HE
and RTSS-HP subsystems require all 7 register blocks.

Update the binding documentation accordingly.

Signed-off-by: Silesh C V <silesh@alifsemi.com>
2026-05-06 12:02:41 +01:00
Fabio Baltieri
80a6968ada drivers: eth_nxp_imx_netc: add missing netc_eth_get_ptp_clock argument
Fix build error:

eth_nxp_imx_netc.c:304: error: too few arguments to function
'netc_eth_get_ptp_clock'

Add the missing argument tested with:

west build -p -b imx943_evk/mimx94398/m33/ddr
samples/net/ethernet/tsn-switch

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2026-05-06 12:01:12 +01:00
Tim Pambor
9a51ed649e drivers: i2c: stm32_v2: fix unused function warning
wait_bus_idle is only used if CONFIG_I2C_TARGET is set.
Guard function in ifdef block to avoid unused function
warning.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-05-06 09:57:54 +01:00
Yangbo Lu
0e8bd58ef6 drivers: ethernet: dsa_nxp_imx_netc: configure QoS to handle VLAN PCP/DE
Configured QoS for switch to handle VLAN PCP/DE.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2026-05-06 09:56:48 +01:00
Yangbo Lu
2bbe7e8380 drivers: ethernet: dsa_nxp_imx_netc: use ptp_clock when needs timestamping
Used ptp_clock only when NETC_PTP_TIMESTAMPING_SUPPORT is true.
This is to keep same with driver timestamping operations code in
other places, and also to keep same with dsa core driver which uses
ptp_clock when NET_L2_PTP is true.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2026-05-06 09:56:48 +01:00
Terry Geng
27023e0b5d drivers: sensor: hx711_spi: Fix bit sampling bug
As pointed out in #106786, when disentangling the bitstream from the chip,
for every 8 bits, instead of sampling bit 1, 3, 5, and 7, bit 0, 3, 5, and
7 are erroneously sampled. The behavior of sampling bit 0 is undefined in
the datasheet, and causes data corruption in some cases.

This fix has been tested on actual hardware and no regression is observed.

Fixes #106786

Signed-off-by: Terry Geng <terry@terriex.com>
2026-05-06 07:08:14 +02:00
Tim Pambor
edd50151b7 drivers: ethernet: dwmac: Implement zero-copy transmit
Avoid copying (cloning) the data to be transmitted and
just increase the reference count of the original buffer.
This is more efficient and reduces memory and CPU usage.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-05-06 07:07:55 +02:00
Lay Desai
24cb0d8055 drivers: gpio: pca_series: Allow disabling automatic reset
The PCA series GPIO driver was updated to allow disabling automatic
reset. This feature would enable GPIO expander ports to retain states
which could be helpful for situations where certain pins are configured
in the bootloader and their states need to be retained when switching to
application code.

Signed-off-by: Lay Desai <lay.desai@he360.com>
2026-05-06 07:06:39 +02:00
Fin Maaß
4d594e59fc drivers: ethernet: nxp: enet: move pinctrl to parent
move pinctrl to parent, for some phys it is needed,
that the pinctrl happens before their init.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-06 07:06:26 +02:00
David Jewsbury
b2d8f222fe drivers: mspi_dw: Fix SPI_CTRLR0 cmd/addr handling for DMA mode
Consolidate the SPI_CTRLR0 INST_L/ADDR_L masking with the cmd/addr
length application into a single conditional. In standard SPI mode with
DMA, the controller still needs INST_L and ADDR_L to drive the cmd/addr
phase via scatter-gather, so only mask these fields in PIO mode.

Signed-off-by: David Jewsbury <david.jewsbury@nordicsemi.no>
2026-05-06 07:06:15 +02:00
Christoph Busold
88278fb59f drivers: entropy + random: Add implementations for ARM64 RNG
Add new implementations for entropy driver and random subsystem
based on ARM64 RNDRRS and RNDR instructions.

Signed-off-by: Christoph Busold <cbusold@qti.qualcomm.com>
2026-05-06 07:05:12 +02:00
Christoph Busold
dad5096f85 drivers: entropy: Add support for architectural entropy drivers
Add new inline function entropy_get_default_device which returns
the "zephyr,entropy" device or the architectural entropy device,
if the former is not set, and use that in all places to query the
entropy device.

This allows using architectural drivers which do not have a DT
node.

Signed-off-by: Christoph Busold <cbusold@qti.qualcomm.com>
2026-05-06 07:05:12 +02:00
Way Young
31222decf0 drivers: usb_c: tcpc: fix PD control msg TX
Issue found in tcpci_tcpm_transmit_data():

1. Control messages (0 data objects) caused cnt=0, skipping the
   TX buffer write entirely. Fix by gating on msg->type instead.

Fixes #105736

Signed-off-by: Way Young <wayyoung@gmail.com>
2026-05-05 14:07:31 -05:00
Jamie McCrae
3b9cd7b9cb drivers: console: uart_mcumgr: Add async timeout
Adds a timeout which is non-0 for this driver, Kconfig based on
commit by Jordan Yates:
  95d8deb572

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2026-05-05 14:07:17 -05:00
Vincent Tardy
416b4ea4a5 drivers: ieee802154: stm32wba: error code update
update the ieee802154 driver to be compliant
with LL update integrating 802.15.4 error code
unification change

Signed-off-by: Vincent Tardy <vincent.tardy@st.com>
2026-05-05 14:07:04 -05:00
Karthikeyan Krishnasamy
a416d1f89b drivers: dma: add ti mspm0 dma driver support
Add DMA driver support for Texas Instruments MSPM0 Family Series.

Signed-off-by: Karthikeyan Krishnasamy <karthikeyan@linumiz.com>
2026-05-05 15:59:28 +01:00
Holt Sun
0c4382ae5e drivers: timer: keep mcux_lptmr policy explicit
Selecting MCUX_LPTMR_TIMER directly from
/chosen/zephyr,system-timer broadens the default behavior for
any SoC DTSI that now sets the chosen node. KE1xF only
intends to use LPTMR under PM, while MCX-W7xx and i.MX95 M7
still require their SoC-specific selection rules.

Keep the generic Kconfig selection policy implicit and retain
the SoC-specific enablement rules in the MCX-W7xx and i.MX95
M7 defconfigs.

This keeps the chosen-based instance selection while avoiding
unintended system timer changes outside the narrow fix scope.

Signed-off-by: Holt Sun <holt.sun@nxp.com>
2026-05-05 15:59:14 +01:00
Harini T
fce421385b drivers: mbox: xlnx_ipi: Fix code formatting in macro section
Run clang-format to align backslash continuations and line
wrapping in device instantiation macros.

Signed-off-by: Harini T <harini.t@amd.com>
2026-05-05 15:58:50 +01:00
Harini T
148afb6e4b drivers: mbox: xlnx_ipi: Fix storage-class specifier ordering
Change 'const static' to 'static const' to follow C convention
and avoid -Wold-style-declaration warning.

Signed-off-by: Harini T <harini.t@amd.com>
2026-05-05 15:58:50 +01:00
Harini T
9ef132320a drivers: mbox: xlnx_ipi: Fix RX message buffer offset in ISR
The ISR was computing the receive buffer offset using the host's
msg_base and remote_ipi_id, which points to the outbound (TX) buffer.
Fix to use the remote's msg_base and host's ipi_id to correctly read
from the inbound (RX) buffer.

TX (send): off = parent_msg_base + (remote_id × BUF_STRIDE)
RX (recv): off = remote_msg_base + (host_id   × BUF_STRIDE)

Signed-off-by: Harini T <harini.t@amd.com>
2026-05-05 15:58:50 +01:00
Ben Levinsky
742adc00ad drivers: mbox: mbox_xlnx_ipi: Update init structures to be static
Make init structures static so that they are not exposed externally.

This also ensures the structures are stored in data section

Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
Signed-off-by: Harini T <harini.t@amd.com>
2026-05-05 15:58:50 +01:00
Mario Paja
89ce9e6b54 drivers: i2s: stm32 i2s add more log information
These changes add some more verbose information to
log possible errors on the driver.

Signed-off-by: Mario Paja <mariopaja@hotmail.com>
2026-05-05 15:58:02 +01:00
Fin Maaß
577d144e29 drivers: virtio: select PCIE if needed
VIRTIO_PCI should select PCIE,
as it is on the pcie bus,

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-05 15:57:48 +01:00
Fin Maaß
9aaecb709c net: nsos: move NET_DEVICE_OFFLOAD_INIT to the top
By moving NET_DEVICE_OFFLOAD_INIT, we no longer need
to use the internal NET_IF_DECLARE macro.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-05 15:57:37 +01:00
Fin Maaß
254dc32eae net: nsos: remove empty enable function
the enable function is a optional function,
therefore we can remove it.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-05 15:57:37 +01:00
Jacob Schloss
d3f409d888 drivers: rtc: rv3032: Restore configuration of backup reg
RV3032 PMU register should be set from DTS info, but is always being
set to 0 which prevents backup power source configuration.

Restore building PMU reg from DTS.

Signed-off-by: Jacob Schloss <jacob.schloss@suburbanmarine.io>
2026-05-05 09:50:44 +02:00
Kirill Shypachov
31bd0c2f4d drivers: flash: stm32_ospi: fix memory mapped mode
Set the OSPI memory mapped timeout period to avoid keeping the chip
select line asserted indefinitely after memory mapped accesses.

This is needed when OSPI1 and OSPI2 operate simultaneously with shared
IO0-IO3 and CLK lines, and both instances use memory mapped mode.

The timeout period follows the recommendation from the STM32U575xx and
STM32U585xx device errata, ES0499 section 2.6.4.

Allow dqs-port to be set to 0. The STM32 HAL uses value 0 to indicate
that the DQS port is not used.

Update the debug log printed when CONFIG_STM32_MEMMAP is not enabled,
because stm32_ospi_set_memorymap() is not called in that case.

Signed-off-by: Kirill Shypachov <kshypachov@outlook.com>
2026-05-05 09:50:22 +02:00
Patryk Koscik
783a780db6 drivers: watchdog: gecko: add Series 0 support
The EFM32HG (Series 0) WDOG has no IRQ support, no window mode
and no reset-disable bit.

Guard the logic with HAL feature macros and use `IF_ENABLED` with
`DT_INST_IRQ_HAS_IDX` for conditional IRQ setup.

Add the `wdog0` node to the EFM32HG device tree.

Signed-off-by: Patryk Koscik <pkoscik@antmicro.com>
2026-05-05 09:48:35 +02:00