Commit graph zephyr/drivers
Author SHA1 Message Date
Albort Xue
f5bee07bf5 drivers: spi: nxp_lpspi: Add clock configuration support
Add clock_control_configure() call during initialization to properly
configure the LPSPI clock. The implementation gracefully handles
platforms that don't support clock configuration by checking for
-ENOTSUP and -ENOSYS return codes and continuing with default
settings. Real configuration errors are logged and propagated.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-01-21 17:06:57 +01:00
Gaetan Perrot
8340e8c264 drivers: sensor: ina2xx: get: remove redundant channel NULL checks
The ina2xx channel get helpers assume that channel descriptors are
valid when the driver exposes a given sensor channel.

Checking for NULL channel pointers after they are already
dereferenced does not provide any real safety and can hide
configuration errors.

Drop the late NULL checks and rely on the driver contract that
supported channels must be properly defined.

No functional change intended.

Signed-off-by: Gaetan Perrot <gaetan.perrot@spacecubics.com>
2026-01-21 17:06:19 +01:00
Gaetan Perrot
ae44e1e7b7 drivers: sensor: ina2xx: fetch: remove redundant channel NULL checks
The INA2xx fetch path assumes valid channel descriptors for all
supported sensor channels.

NULL checks performed after channel data is accessed are ineffective
and misleading, as invalid channel definitions indicate a
configuration error rather than a runtime condition.

Remove the redundant checks and keep the channel handling consistent
with the driver expectations.

No functional change intended.

Signed-off-by: Gaetan Perrot <gaetan.perrot@spacecubics.com>
2026-01-21 17:06:19 +01:00
Aditya Ganesh
f9de2777d9 drivers: sensor: i3g4250d: migrate SPI support to stmemsc
Convert the i3g4250d driver to use the ST MEMS SC API for SPI

Signed-off-by: Aditya Ganesh <adga5133@colorado.edu>
2026-01-21 17:05:13 +01:00
Lucien Zhao
0a6e0160b4 hwinfo: mcux_sim/mcux_rcm: Add new dependency
Change to use DT_HAS_NXP_SIM_UUID_ENABLED/DT_HAS_NXP_RCM_HWINFO_ENABLED
as the dependency condition for HWINFO_MCUX_SIM/HWINFO_MCUX_RCM to
enable the driver when the nxp,sim-uuid/nxp,rcm-hwinfo compatible
is present in the devicetree.

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2026-01-21 13:03:11 +00:00
Stephan Linz
8bf8eeb338 drivers: display: rm67162: avoid uninitialized variable
Warning as error was:

.../drivers/display/display_rm67162.c: In function ‘rm67162_write_fb’:
.../drivers/display/display_rm67162.c:383:9: error: ‘wlen’ may be used
          uninitialized in this function [-Werror=maybe-uninitialized]
  383 |  return wlen;
      |         ^~~~
cc1: all warnings being treated as errors

Signed-off-by: Stephan Linz <linz@li-pro.net>
2026-01-21 13:01:53 +00:00
Flavio Ceolin
3d5a3ae075 entropy: mcux_rng: Do not ignore possible error
Propagate the HAL error otherwise it may return success even
when it fails causing invalid entropy and compromising security.

Signed-off-by: Flavio Ceolin <flavio@hubblenetwork.com>
2026-01-21 11:24:07 +00:00
Ederson de Souza
86f7962d2c drivers/i3c/mcux: Handle short reads from target
Sometimes, the size of a message coming from a target is not known in
advance. In those cases, we must rely on the T-bit to get the end of
message, which is signaled as the `COMPLETE` bit of `MSTATUS`.

This patch verifies the COMPLETE bit before starting to wait for data,
and if set, simply returns what was read so far.

As a bonus, this simplifies the handling of IBI bytes: no need to rely
on timeouts, if it's reading from IBI, etc.

Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
2026-01-21 11:19:57 +00:00
Ederson de Souza
3311d9734c drivers/i3c/mcux: Don't lose return value for function
Return value for `mcux_i3c_do_one_xfer` was being lost due reuse
of `ret` variable. Use another variable for timeout check.

Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
2026-01-21 11:19:57 +00:00
Ederson de Souza
0bbe07bbc7 drivers/i3c/mcux: Use size_t for buffer size
Or a buffer whose size is 256 will become zero.

Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
2026-01-21 11:19:57 +00:00
Kate Wang
6f5e752187 drivers: display: co5300: Fix pitch calculation in write function
The previous implementation incorrectly calculated the source pointer
advancement when pitch differs from width. The calculation was using
`total_bytes_sent` which accumulated across iterations, leading to
incorrect pointer arithmetic.

Replace `total_bytes_sent` with `line_each_sent` to track lines written
per iteration. Simplify the pointer advancement by:
- Calculating complete lines written from bytes_written
- Advancing by full pitch-sized lines
- Adding any remaining partial line bytes

This fixes the source pointer calculation when the buffer pitch is
greater than the display width.

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2026-01-21 11:19:44 +00:00
Matthias Blankertz
f58602891a drivers: watchdog: wdog32: Add missing include for k_msleep
In commit 1f9e39752a ("drivers: watchdog: wdog32: add delay before
init") a reference to k_msleep was added to
drivers/watchdog/wdt_mcux_wdog32.c without including the necessary
header. At least for the board frdm_mcxw71/mcxw716c, this causes a
compile failure in this file as soon as CONFIG_WATCHDOG is enabled.

Add the missing include to zephyr/kernel.h to fix the issue.

Signed-off-by: Matthias Blankertz <matthias.blankertz@inovex.de>
2026-01-20 20:11:49 -05:00
Arunprasath P
74bafaf20e drivers: dac: microchip: Introduce DAC G1 Driver
Add G1 DAC driver for Microchip DAC Peripherals.

Signed-off-by: Arunprasath P <arunprasath.p@microchip.com>
2026-01-20 20:11:31 -05:00
Ali Hozhabri
2bc754e581 drivers: timer: Fix a typo in the STM32WB07 radio timer
Replace one extra CONFIG_SOC_STM32WB06XX with the CONFIG_SOC_STM32WB07XX.

Signed-off-by: Ali Hozhabri <ali.hozhabri@st.com>
2026-01-20 20:11:22 -05:00
Ali Hozhabri
a32b5cfe34 drivers: timer: Fix radio timer issue on STM32WB07/STM32WB05
Due to the hardware limitation, the time between the CPU wake-up IRQ fire
(IRQ 23) and the next call of LL_RADIO_TIMER_SetCPUWakeupTime should not
be less than 16 MTU (Machine Time Unit), i.e. approximately 30us.
otherwise, the next CPU wake-up doesn't happen unless the timer wraps.

Lock IRQs while sys_clock_set_timeout is being executed.

Remove HAL_RADIO_TIMER_WakeUpCallback and it will be implemented
differently in the future.

Remove HAL_RADIO_TIMER_TimeoutCallback as it is not needed anymore.

Signed-off-by: Ali Hozhabri <ali.hozhabri@st.com>
2026-01-20 20:11:22 -05:00
Ali Hozhabri
e1257bf845 drivers: entropy: Fix STM32WB07/STM32WB05 init issue
Change the initialization priority. According to the documentation, kernel
services should not be used during device configuration with PRE_KERNEL_1.
In "entropy_stm32_rng_init", there is "start_pool_filling" which calls
"k_work_schedule". Moreover, "k_work_schedule" requires system timer which
is initialized within PRE_KERNEL_2. Therefore, the SoC gets stuck.

Signed-off-by: Ali Hozhabri <ali.hozhabri@st.com>
2026-01-20 20:11:22 -05:00
Yongxu Wang
9a8acec820 drivers: i2c: mcux_lpi2c: add PM device support
Add PM device support for the LPI2C peripheral.

Implement PM device callback to gate and ungate the device clock
during suspend and resume. No attach register save and restore as
it's preserved by hardware

Signed-off-by: Yongxu Wang <yongxu.wang@nxp.com>
2026-01-20 20:11:10 -05:00
Pisit Sawangvonganan
ec2b92c1e6 drivers: spi_nxp_lpspi: prevent null pointer dereference
The condition `!spi_context_rx_buf_on(ctx) && spi_context_rx_on(ctx)`
only returns early when RX is active with a NOP buffer.
However, when `rx_len == 0`, `spi_context_rx_on(ctx)` returns false,
causing the early return to be skipped.
This leaves `ctx->rx_buf` (which can be NULL) to be dereferenced.

Since `lpspi_handle_rx_irq()` already guarantees `spi_context_rx_on(ctx)`
is true before calling this function, only check
`!spi_context_rx_buf_on(ctx)` to safely handle NOP buffers.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2026-01-20 20:11:01 -05:00
Pisit Sawangvonganan
e28b3b04ce drivers: spi_nxp_lpspi: simplify lpspi_rx_buf_write_words
Refactor `lpspi_rx_buf_write_words()` to compute `words_read` upfront
using `MIN(rx_len, max_read)`, simplifying control flow and making
the read limit explicit without changing behavior.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2026-01-20 20:11:01 -05:00
TOKITA Hiroshi
45cde341dc drivers: serial: pl011: Allows mixed IRQ settings.
Allows a mixture of IRQ-enabled and IRQ-disabled nodes.
Enabled nodes are identified by the presence or absence of
the interrupt-names property.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2026-01-20 20:10:42 -05:00
Albort Xue
d9e86ad878 drivers: can: mcux_flexcan: Add clock configuration and enable
Add explicit clock configuration and enable calls during driver
initialization.

Note: -ENOSYS is temporarily ignored as not all clock control
drivers currently implement the configure API. This handling
should be removed once all clock drivers support configure.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-01-20 20:10:31 -05:00
Albort Xue
dba5c5081f drivers: pwm: mcux_tpm: Add clock configuration support
Add clock_control_configure() call during initialization to properly
configure the TPM clock. The driver now attempts to configure the
clock and handles cases where configuration is not supported by the
platform (-ENOTSUP/-ENOSYS) by continuing with default settings.
Real configuration errors are logged and cause initialization to fail.

Note: -ENOSYS is temporarily ignored as not all clock control
drivers currently implement the configure API. This handling
should be removed once all clock drivers support configure.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-01-20 20:10:19 -05:00
Daniel Leung
61e9f9ea04 soc: intel_adsp: rename CONFIG_SOC_INTEL_ACE* to CONFIG_SOC_ACE*
Just following guidelines here.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2026-01-20 20:09:40 -05:00
Daniel Leung
1dae40fa2e soc: rename CONFIG_INTEL_CAVS_V25 to CONFIG_SOC_CAVSV25
Just following the guideline.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2026-01-20 20:09:40 -05:00
Benjamin Cabé
e6b8ffba92 drivers: modem: adopt SHELL_HELP in modem_at shell
Use SHELL_HELP macro for help strings to ensure consistency across
various shell modules.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-01-20 20:08:47 -05:00
Benjamin Cabé
114b3bd50c drivers: mdio: adopt SHELL_HELP in MDIO shell
Use SHELL_HELP macro for help strings to ensure consistency across
various shell modules.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-01-20 20:08:34 -05:00
Benjamin Cabé
39a8408b30 drivers: pm_cpu_ops: adopt SHELL_HELP in psci shell
Use SHELL_HELP macro for help strings to ensure consistency across
various shell modules.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-01-20 20:07:25 -05:00
Benjamin Cabé
8f8502c0c7 drivers: i3c: shell: adopt SHELL_HELP in I3C shell
Use SHELL_HELP macro for help strings to ensure consistency across
various shell modules and save quite a bit of flash.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-01-20 20:06:18 -05:00
Gaetan Perrot
5e16700cb2 drivers: ethernet: phy: phy_dm8806: fix error handling
The return value of gpio_pin_set_dt() and
gpio_pin_interrupt_configure_dt() was not stored before being
checked, causing the error condition to always evaluate to false.

Store the return value and properly handle potential GPIO errors
during PHY reset.

No functional change intended.

Signed-off-by: Gaetan Perrot <gaetan.perrot@spacecubics.com>
2026-01-20 20:06:06 -05:00
Eden Uhde
98573a57cd drivers: display: ls0xx: add Kconfig setting VCOM thread priority for ls0xx
The ls0xx driver VCOM inversion thread has a hardcoded priority of 3,
while in some applications this may be considered lower priority than
time sensitive tasks, maintaining close to an even polarity balance is
best, but this change allows developers to determine the approach.

Signed-off-by: Eden Uhde <eden@rainbowtree.house>
2026-01-20 20:05:15 -05:00
Felix Wang
b7106127af drivers: counter: Support multiple interrputs
For devices like MCXE247, the FTM peripheral instance
has multiple interrupts. In this patch, add FTM_CONFIG_FUNC
macro to support single or multiple interrupts based on irq
number.

Signed-off-by: Felix Wang <fei.wang_3@nxp.com>
2026-01-20 14:36:24 -05:00
Kate Wang
0e6c2aedaf drivers: input: Add TMA525B capacitive touch controller driver
This commit adds support for the Parade Tech TMA525B capacitive touch
controller. The driver supports both interrupt-driven and polling modes,
and can handle up to 4 simultaneous touch points.

Key features:
- I2C communication interface
- Multi-touch support (up to 4 touch points)
- Interrupt mode with GPIO callback support
- Polling mode with timer
- Power management support with PM notifier
- Reset and power control via GPIO
- Touch event tracking (down, contact, up)

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2026-01-20 14:36:06 -05:00
Camille BAUD
fd9b0b81b7 drivers: input: Add CH9350L USB keyboard driver
Adds a driver that allows using CH9350 as a USB keyboard interface chip

Signed-off-by: Camille BAUD <mail@massdriver.space>
2026-01-20 14:35:50 -05:00
Dat Nguyen Duy
abb4ca3845 drivers: can: add support canxl for s32k5
- The RX Message Descriptor in CANXL on newer SoC such as
the S32K5 supports receiving both classic and FD frames,
so enable the RX FIFO only for S32ZE SoC.

- The CANXL bare-metal driver has significant changes, the
current codebase for S32ZE need to be guarded and modified
to support newer SoC

- Expand the peripheral region to 1G to include the CANXL
area.

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2026-01-20 14:35:42 -05:00
Dat Nguyen Duy
7bb9b42c99 drivers: can_nxp_s32_canxl: switch to freeze mode before setting baudrate
Switch canxl hw to freeze mode before setting baudrate

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2026-01-20 14:35:42 -05:00
Albort Xue
c9dc320cf5 drivers: watchdog: wdt_mcux_wdog32: Support named clocks for clock sources
Add support for named clocks in the WDOG32 driver to properly handle
different clock sources. The driver now uses clock-names property to
identify which clock source is being used, based on the clk-source
property.

This change enables proper clock configuration and control for platforms
where the clock frequency is not statically defined in the device tree.
The driver will now configure and enable the appropriate clock during
initialization.

Updated all affected device tree files to include the clock-names
property aligned with their clk-source configuration.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-01-20 14:35:20 -05:00
Chaitanya Tata
6100817e34 drivers: nrf_wifi: Fix raw TX shell
When using shell the users input raw header as big-endian, so, add
support for both formats for the magic number.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2026-01-20 14:33:58 -05:00
Holt Sun
4138155273 drivers: uart_mcux_lpuart: refine DMA TX busy/error handling
Split DMA status error from busy state handling. Use LOG_DBG for
busy state and LOG_ERR for status query failures. Return -EBUSY
as required by async UART API when transfer is in progress.

Signed-off-by: Holt Sun <holt.sun@nxp.com>
2026-01-20 15:33:20 +00:00
Razvan Heghedus
8f2b245fe6 dma: mcux_edma: Fix channel gap for edma_reload_loop
`edma_reload_loop` doesn't take into account the DMA possible channel
gap. This is an issue for S32K3 series leading to system crashes when
higher DMA channels are used.

Signed-off-by: Razvan Heghedus <razvan.heghedus@protonmail.com>
2026-01-20 15:33:15 +00:00
Yongxu Wang
6df440012b drivers: power_domain: add SCMI power domain driver
Add ARM SCMI-based power domain driver for managing power domains
through the SCMI protocol.

Signed-off-by: Yongxu Wang <yongxu.wang@nxp.com>
2026-01-20 15:32:32 +00:00
Vinit Mehta
46d8f1baa9 drivers: bluetooth: hci: add host wakeup for IW612 BT controller
Add wakeup IO config for IW612 shield for BT host wakeup
functionality.
Add kconfig to enable/disable BT host wakeup functionality
Add kconfig to toggle onboard LED upon detecting BT activity

Signed-off-by: Vinit Mehta <vinit.mehta@nxp.com>
2026-01-20 15:30:54 +00:00
Aiden Hu
1cbc2de20f drivers: usb: uhc: fix unused variable warning for phy_config
Remove phy_config local variable then use controller-specific
config struct for usb PHY initialization

Signed-off-by: Aiden Hu <weiwei.hu@nxp.com>
2026-01-20 15:30:03 +00:00
Biwen Li
7a1cc72efa drivers: i2s: mcux_sai: init base,mask,offset as 0
Initialize mclk_control_base,
mclk_pin_mask, mclk_pin_offset as 0
and skip mclk settings when
there is no property pinmuxes.

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2026-01-20 15:29:36 +00:00
Alain Volmat
8f9e370bfb drivers: clock: h7rs: add PCLKx support
Addition of PCLKx clock source which can be used by some
peripherals.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2026-01-20 15:29:27 +00:00
Alain Volmat
39a60f8a0b video: st: remove soc specific dcmipp compatibles
Only st,stm32-dcmipp is described and only st,stm32n6-dcmipp
was used within the driver to decide if CSI / PIXEL_PIPES
are available. Instead of this, look at HAL provided macros
to know if the selected soc has the functionalities or not.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2026-01-20 15:29:27 +00:00
Mathieu Choplain
dac9d3e1c3 drivers: usb: common: stm32: pwr: add power disable support
Add code to disable the USB power supply.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-01-20 13:26:11 +00:00
Mathieu Choplain
2120eb3027 drivers: usb: udc: stm32: move power configuration to common code
Create infrastructure for shared USB common code on STM32 family, and move
the Power Controller configuration logic to common code. This removes some
midly unrelated code from the UDC driver while enabling reuse by a future
UHC driver implementation for STM32.

While at it, clean up the migrated code.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-01-20 13:26:11 +00:00
Deepika R
f1edde06f0 drivers: counter: Add Infineon counter driver
Add implementation of the Infineon PSoC4 TCPWM-based counter driver.
- Provides basic counter operations
including start, stop, read, and set alarm.
- Supports configuration and initialization through Device Tree.
- Enables alarm callback handling for
precise time-based event generation.

Signed-off-by: Deepika R <deepika@aerlync.com>
Signed-off-by: Sayooj K Karun <sayooj@aerlync.com>
2026-01-20 13:25:58 +00:00
Nhut Nguyen
e200e82909 drivers: gpio: renesas: Refactor gpio for RZ family
- Decouple interrupt settings from gpio drivers, making them configured
  and handled independently by tint and ext_irq drivers.
- Remove device-specific hardware definitions in gpio_renesas_rz.h and
  take advantage of pinctrl data type and dtsi for certain series.

Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2026-01-20 13:25:13 +00:00
Nhut Nguyen
2537ee030a drivers: intc: renesas: Update external interrupt of RZ family
Added a condition to check trigger type as high-level detection is not
supported by Renesas RZ external interrupt.

Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2026-01-20 13:25:13 +00:00