Commit graph zephyr/drivers
Author SHA1 Message Date
Adam Kondraciuk
6d14ea188c drivers: i2c: i2c_nrfx_twi: use standard instantiation
Switched nrfx_twi API to standard instantiation.

Signed-off-by: Adam Kondraciuk <adam.kondraciuk@nordicsemi.no>
2026-02-18 10:31:16 +00:00
Krzysztof Chruściński
f3cbc13912 drivers: timer: nrf_rtc: Align to nrfx 4.1
Align to change in nrf_rtc HAL.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-02-18 10:31:16 +00:00
Aleksandr Senin
4c7d61ba26 drivers: hwinfo: add GD32 support
Add a hwinfo backend for GD32 providing:
- device unique ID readout from the 96-bit UID registers
- reset cause reporting via the RCU_RSTSCK reset status register

Reset cause mapping uses the hal_gigadevice RCU_RSTSCK flag definitions
and reports supported causes based on the macros available in the HAL.

Signed-off-by: Aleksandr Senin <al@meshium.net>
2026-02-17 17:38:27 -06:00
Jeremy Thompson
bf8749007b drivers: sensor: ti_hdc302x: Fix mask on temp alert threshold
Correct a bitmask issue on the temperature alert threshold
as per the datasheet (Section 7.5.7.4.2).

Signed-off-by: Jeremy Thompson <jthompson@blackberry.com>
2026-02-17 13:20:03 -06:00
Zafer SEN
628f28ed13 drivers: modem: hl78xx: add NB-NTN support and positioning
Add initial NB-NTN RAT support to the HL78xx driver:

* Enable RAT selection for NB-NTN (SET_RAT_NBNTN_CMD_LEGACY).
* Configure NTN positioning via +KNTNCFG("POS", provider, dynamic).
* Query +KNTNCFG at init and cache into modem_status.ntn_rat.
* Handle +KNTNEV:"POSREQ" and raise MODEM_HL78XX_EVENT_NTN_POSREQ.
* If MANUAL position source is enabled, push +KNTNCMD("POS") with
  Kconfig-provided latitude/longitude/altitude.
* Kconfig updates:
  - Add MODEM_HL78XX_ADDRESS_FAMILY_IP and default it for NB-NTN.
  - Add NTN_MANUAL_{LATITUDE,LONGITUDE,ALTITUDE} under MANUAL source.
* For NB-NTN, program PDP context without explicit AF in +KCNXCFG and
  use address family "IP".
* Extend socket connect and TLS handshake timeout ranges to 120 s to
  tolerate higher RTT on NTN links.

Non-NTN builds keep previous behavior.

Signed-off-by: Zafer SEN <zafersn93@gmail.com>
2026-02-17 13:19:52 -06:00
Marek Maškarinec
fe789226d6 drivers: tmag5273: Add device PM support
Adds device power manager support to TMAG5273 driver.
Suspending the device will put it into its SLEEP mode, resuming will
restore it to the mode configured in devicetree.

Before communicating with a device in sleep mode, an extra I2C transfer
is needed. Something like this is briefly mentioned in the datasheet,
but without any more specific details. The wake up has also been added
to the init function, even in case PM is disabled.

The device is marked as busy for the whole sample_fetch function.

Signed-off-by: Marek Maškarinec <marek.maskarinec@hardwario.com>
2026-02-17 13:19:19 -06:00
Seppo Takalo
5c31ef18df drivers: modem: Allows modems to use default PDP context or APN
LTE modems typically support default PDP context (cid 0) which
is activated when network is attached.

Allow driver to choose whether this CID 0 is used by default, and
skip the whole APN state.

Some modems require PDP context to be defined by AT+CGDCONT=1 command
but do not necessary need the APN name.

Add both options as a Devicetree settings as an enum value so that
specific DTS bindings may change the default while allowing user
to override. Booleans with "default: true" would not work.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2026-02-17 13:19:03 -06:00
Manojkumar Konisetty
e2bb8efb9a drivers: flash: Add Infineon PSOC4 flash driver and CMakeLists
- Implement flash read, write and erase APIs.
- flash rows are automatically erased during Cy_Flash_WriteRow()
  operation.
- Implement erase by writing the erased value (0xFF) to maintain
  compatibility with the Zephyr flash API.i

Signed-off-by: Manojkumar Konisetty <manoj@aerlync.com>
Signed-off-by: Sayooj K Karun <sayooj@aerlync.com>
2026-02-17 13:18:35 -06:00
Manojkumar Konisetty
d48b688dcb drivers: flash: Add Flash Kconfig for PSOC4 series
- Introduce FLASH_INFINEON_PSOC4 to enable the flash driver for the
  Infineon PSoC4 family.
- This option selects required flash capabilities.

Signed-off-by: Manojkumar Konisetty <manoj@aerlync.com>
Signed-off-by: Sayooj K Karun <sayooj@aerlync.com>
2026-02-17 13:18:35 -06:00
Yuzhuo Liu
08bad54b32 drivers: gpio: add realtek bee gpio driver
Add realtek bee gpio driver.

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-02-17 15:22:38 +00:00
Yuzhuo Liu
3cf997ed6c drivers: serial: add realtek bee serial driver
Add realtek bee serial driver.

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-02-17 15:22:38 +00:00
Yuzhuo Liu
b1e409e01f drivers: pinctrl: add realtek bee pinctrl driver
Add realtek bee pinctrl driver.

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-02-17 15:22:38 +00:00
Yuzhuo Liu
e3864c87c2 drivers: clock: add realtek bee clock driver
Add realtek bee clock driver.

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-02-17 15:22:38 +00:00
Guillaume Gautier
b65e287a36 drivers: spi: stm32: use the new fifo related property
Use the new SPI FIFO related property to retrieve FIFO size (instead of
guessing it from the supported data width), and to check that the
TSIZE register is not written with a value that exceeds the maximal
supported transfer size.

Also reorder the spi_stm32_config structure to have better packing.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2026-02-17 15:22:28 +00:00
Guillaume Gautier
3261e9c946 drivers: spi: stm32: fix full duplex asynchronous transfer
For an asynchronous transfer, the driver was waiting until transfer was
ended to leave the transceive function, which defeated the purpose of
async. Restore previous behavior. The transfer is still blocking for
half duplex though.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2026-02-17 15:22:28 +00:00
Guillaume Gautier
feb2315565 drivers: spi: stm32: add fifo threshold support for h7-compatible
This commit adds the support of the FIFO threshold for H7-compatible SPI.
This makes full use of the two FIFOs (Tx and Rx) available for these
devices, by packing the frames together in a single read or write when
possible, reducing the number of operations.

The FIFO threshold is supported only when fifo-enabled property is enabled
in device tree.

This new implementation is useful in interrupt mode at fast speed:
on Nucleo H753ZI, test_spi_complete_multiple_timed at fast speed indicates
a theoretical minimum duration of 27 µs, with a latency measurement of
18 µs for the new code against 34 µs previously, and a huge 76 µs when
fifo-enable is not present.

There are no noticeable changes at slow speed, or in polling or DMA mode.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2026-02-17 15:22:28 +00:00
Guillaume Gautier
2056ec87b9 drivers: spi: stm32: make fifo-enable compatible with dma transfer
Until now, SPI DMA transfers were not possible for H7-compatible STM32
devices if the fifo-enable property was enabled.
This commit adds the support of this property with DMA usage.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2026-02-17 15:22:28 +00:00
Fin Maaß
c57cf5d05b gpio: litex: remove unused parts
remove unused parts in the litex gpio driver.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-02-17 15:21:58 +00:00
Fin Maaß
8e87593059 drivers: mdio: litex: replace 0xFFFFFFFF with UINT32_MAX
replace 0xFFFFFFFF with UINT32_MAX

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-02-17 15:20:37 +00:00
Fin Maaß
9c782c7762 drivers: mdio: gpio: replace 0xFFFFFFFF with UINT32_MAX
replace 0xFFFFFFFF with UINT32_MAX

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-02-17 15:20:37 +00:00
Fin Maaß
d0269c970c drivers: mdio: sy1xx: fix droped const qualifier
fix droped const qualifier.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-02-17 15:20:37 +00:00
Fin Maaß
00166dbf75 drivers: mdio: swcxgmac: fix droped const qualifier
fix droped const qualifier.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-02-17 15:20:37 +00:00
Mathieu Choplain
b43ae3926a drivers: usb: udc: stm32: move udc_stm32_clock_en/disable above callers
Move udc_stm32_clock_enable() and udc_stm32_clock_disable() above their
callers, grouped with other helper functions. This allows removing an ugly
forward declaration at the top of the driver.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-17 15:20:17 +00:00
Mathieu Choplain
c5b9774e7c drivers: usb: udc: stm32: inline udc_stm32_ep_flush()
The (driver-internal!) function udc_stm32_ep_flush() was very short and
only called from one function. Inline its contents inside the caller.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-17 15:20:17 +00:00
Mathieu Choplain
92ab6d19ad drivers: usb: udc: stm32: regroup functions implementing UDC API
Move udc_stm32_lock(), udc_stm32_unlock() and udc_stm32_init() above all
other functions which implement callbacks of the UDC API (and are already
in the same order as the initializer for udc_stm32_api).

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-17 15:20:17 +00:00
Mathieu Choplain
44facbad25 drivers: usb: udc: stm32: regroup non-data HAL callbacks
Move HAL_PCDEx_SetConnectionState with the other HAL callbacks
(except SETUP/DATA IN/DATA OUT) to make driver easier to browse.
Also move a relevant comment to a more appropriate place and update it.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-17 15:20:17 +00:00
Mathieu Choplain
3a0a56d468 drivers: usb: udc: stm32: move HAL callback next to lower half handler
Move HAL callbacks for SETUP/DATA IN/DATA OUT events next to (above) the
lower half/worker thread handler for these events. This makes it easier to
follow the event handling logic.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-17 15:20:17 +00:00
Mathieu Choplain
748fb3246a drivers: usb: udc: stm32: remove trailing semicolon in hpcd2data
The macro `hpcd2data` is defined as a wrapper around CONTAINER_OF(), but
was also adding a `;` at the end which is not right.

Remove the trailing `;` in the macro's definition.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-17 15:20:17 +00:00
Mathieu Choplain
e0da62a55d drivers: usb: udc: stm32: explain ordinal use in per-instance names
Add a comment documenting why ordinals are used to create the per-instance
symbol names, as this is a very uncommon practice among STM32 drivers.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-17 15:20:17 +00:00
Gaetan Perrot
9dec7cf786 drivers: wifi: eswifi: eswifi_core: replace atoi with strtol
Replace usage of atoi() with strtol() when parsing numeric values
from ES-WIFI AT command responses.

strtol() provides well-defined behavior and allows proper error
handling.

Signed-off-by: Gaetan Perrot <gaetan.perrot@spacecubics.com>
2026-02-17 08:01:01 -05:00
PyoJin Yoon
9e41fe144d drivers: spi: stm32: keep SPE enabled for Slave Half-Duplex TX
In Slave Half-Duplex TX mode, the driver disables SPE immediately
after loading data into DR, before the Master provides clock.
Since the Slave depends on the Master for clock, data is never
actually shifted out.

Fix by treating Slave Half-Duplex TX like SPI_HOLD_ON_CS: keep SPE
enabled after spi_write() returns, and let the application call
spi_release() once the Master has clocked out the data.

Tested on NUCLEO-F439ZI with SPI1 (master) and SPI3 (slave) in
half-duplex configuration.

Signed-off-by: PyoJin Yoon <volphin310@gmail.com>
2026-02-17 12:18:23 +01:00
Stan Verschuuren
da0c815974 drivers: gpio: max149x6: Handle GPIO_OUTPUT_INIT_HIGH/LOW flags
When calling `gpio_pin_configure` with GPIO_OUTPUT_INIT_LOW or
GPIO_OUTPUT_INIT_HIGH, it is expected from the driver to set initial
output state. The current driver implementation does not set this
user provided initial state.

This commit sets requested output state before changing channel mode
to output.

Signed-off-by: Stan Verschuuren <stverschuuren@gmail.com>
2026-02-17 10:32:50 +01:00
Stan Verschuuren
efc66a9cd9 drivers: gpio: max14906: Apply new value in toggle_bits
MAX14906 implementation of GPIO function `port_toggle_bits` writes
back old register value instead of inverted new value.

This commit XOR's current output state with requested pins (as expected)
and writes new value to register.

Signed-off-by: Stan Verschuuren <stverschuuren@gmail.com>
2026-02-17 10:32:50 +01:00
Stan Verschuuren
0cbfd7b445 drivers: gpio: max149x6: Add missing port_set_masked_raw GPIO API
The MAX149x6 drivers do not implement the generic GPIO function
port_set_masked_raw. The current implementation therefore hard faults due
to dereferencing NULL ptr on calls to gpio_port_set_masked_raw.

This commit adds port_set_masked_raw for both MAX14906 and MAX14916.

Signed-off-by: Stan Verschuuren <stverschuuren@gmail.com>
2026-02-17 10:32:50 +01:00
Stan Verschuuren
e78120f768 drivers: gpio: max14906: Fix clear_bits_raw to erase correct output bits
The MAX14906 SetOUT register packs direction bits in [7:4] and output
state in [3:0]. The existing implementation clears all output bits
regardless of pin mask, as the mask is ANDed with 0xf0 before inversion.

This commit fixes that by masking before inverting.

Signed-off-by: Stan Verschuuren <stverschuuren@gmail.com>
2026-02-17 10:32:50 +01:00
Stan Verschuuren
be3ce18908 drivers: gpio: max14906: Make non-essential ports optional
The MAX14906 can be operated compliantly without directly controlling
EN/FAULT/SYNCH/READY ports. The MAX14906 DTS files already reflect this
optional nature.

This commit makes the driver treat these ports as optional without changing
the business logic of the driver. If these ports are not defined,
certain diagnostic logging calls are simply skipped over.

Signed-off-by: Stan Verschuuren <stverschuuren@gmail.com>
2026-02-17 10:32:50 +01:00
Stan Verschuuren
2d4c96901e drivers: gpio: max149x6: Handle check_byte in CRC function
The MAX14906 (p36), MAX14915 (p26), and MAX14916 (p28) datasheets state
that the device includes A0,A1,ThrErr bits in CRC calculation. The existing
solution doesnt handle these bits.

This commit passes the 3 top bits of the SDO check byte to the CRC
function, making the CRC calculation datasheet compliant

Signed-off-by: Stan Verschuuren <stverschuuren@gmail.com>
2026-02-17 10:32:50 +01:00
Keith Short
4f90cdd04f i2c: dw: Allow implementations to block suspend to idle
Some implementations of the DesginWare I2C controller do not support the
system suspending to idle during an I2C transaction. Add a Kconfig
option to allow locking of the power management policy state during
I2C transactions.

Signed-off-by: Keith Short <keithshort@google.com>
2026-02-17 10:32:38 +01:00
Silesh C V
f6314e9a43 drivers: pinctrl: add alif pinctrl driver
Add pin control driver for Alif SoCs. The driver manages
pin muxing (alternate function selection) and pad configuration
for Alif SoCs.

Signed-off-by: Silesh C V <silesh@alifsemi.com>
2026-02-17 10:31:21 +01:00
Silesh C V
d5488b5395 drivers: clock_control: add alif clock driver
Add clock control driver for Alif Semiconductor SoCs. The driver
manages peripheral clocks in the device by operating on multiple
discontiguous register regions (called modules in this driver).
In this initial version, the driver supports on, off, get_rate and
get_status API.

Co-authored-by: Manoj A Murudi <manoj.murudi@alifsemi.com>
Signed-off-by: Silesh C V <silesh@alifsemi.com>
2026-02-17 10:31:21 +01:00
Dawid Niedzwiecki
2458dc63d9 retained_mem: ram: change initialization level to PRE_KERNEL_1
Change the initialization level of retained_mem RAM driver to
PRE_KERNEL_1.

It allows using the drivers in the pre-kernel stage, which can be a case
for some applications.

Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
2026-02-16 16:27:38 +00:00
Robert Robinson
54d9069522 soc/Kconfig: Create a config for nRF71 series soc compatible
SOC_COMPATIBLE_NRF7120_ENGA was erroneously being used in
KConfig filter and therefore not being applied, since soc configs are
generated at compile time. Created SOC_COMPATIBLE_NRF71 to be used at
KConfig build stage.

Signed-off-by: Robert Robinson <robert.robinson@nordicsemi.no>
2026-02-16 09:02:34 -06:00
Harpreet Saini
1f42f81fb3 drivers: rtc: add driver for DS1302 rtc
Add driver support for maxim DS1302 rtc working in half duplex spi
mode.

Signed-off-by: Harpreet Saini <sainiharpreet29@yahoo.com>
2026-02-16 09:01:49 -06:00
Sunil Abraham
8c2c58de6a drivers: clock_control: PIC32CZ_CA: Add clock control driver
Add clock control driver
Implement bootup clock initialization, on, off, configure and get_rate API

Signed-off-by: Sunil Abraham <sunil.abraham@microchip.com>
2026-02-16 08:59:23 -06:00
Roman Leonov
c32c2d9935 drivers: usb: common: Added host register set for DWC2 controller
Added register bitmask description with low-level abstraction

Signed-off-by: Roman Leonov <jam_roma@yahoo.com>
Co-authored-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2026-02-16 08:57:09 -06:00
Ryan Erickson
889b9cd3dc drivers: can: tcan4x5x: init should call pm_device_driver_init
The final call in the driver init should be pm_device_driver_init.
This ensures the device transitions to active when the driver starts.

Signed-off-by: Ryan Erickson <ryan.erickson@ezurio.com>
2026-02-16 12:53:27 +01:00
Jukka Rissanen
e791578eef drivers: wifi: simplelink: Deprecating the driver
This offloaded wifi driver is deprecated and will be removed
in a future release. It is currently scheduled to be removed in
Zephyr 4.6. The reason for deprecation is that there is no
maintainer for this driver.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2026-02-16 12:52:48 +01:00
Jukka Rissanen
66b68c39dc drivers: wifi: winc1500: Deprecating the driver
This offloaded wifi driver is deprecated and will be removed
in a future release. It is currently scheduled to be removed in
Zephyr 4.6. The reason for deprecation is that there is no
maintainer for this driver.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2026-02-16 12:52:16 +01:00
Parthiban Veerasooran
697705ef71 drivers: ethernet: phy: microchip_t1s: fix link state & callback handling
Previously, the PHY driver always invoked the link state callback on
every check, even when the link state had not changed, and did not
properly synchronize access to the link state (issue #103826). This could
lead to spurious notifications and potential race conditions.

This patch:
- Calls the registered callback only when the link state actually changes.
- Logs link-up and link-down events correctly.
- Introduces a semaphore to protect the PHY link state.
- Updates link state in phy_mc_t1s_update_link_state() with proper
  synchronization.

This ensures that both link state updates and callbacks reflect actual
changes, preventing unnecessary notifications and improving driver
correctness.

Fixes: #103826

Signed-off-by: Parthiban Veerasooran <parthiban.veerasooran@microchip.com>
2026-02-16 11:12:14 +01:00
Gaetan Perrot
649831c8eb drivers: crypto: ataes132a: fix semaphore leak on early return
In ataes132a_aes_ecb_block(), error paths could return after
k_sem_take() without releasing device_sem, leading to a potential
deadlock on subsequent calls.

Ensure k_sem_give() is called on all early-return paths after the
semaphore is taken.

This fixes a potential deadlock when invalid buffer sizes are
detected after acquiring the device semaphore.

Signed-off-by: Gaetan Perrot <gaetan.perrot@spacecubics.com>
2026-02-16 11:09:32 +01:00