Commit graph

28,390 commits

Author SHA1 Message Date
Arunprasath P
e767aa498a drivers: adc: microchip: Introduce G1 ADC Driver
Add a Zephyr ADC driver for the Microchip G1 ADC peripheral
with support for differential mode, multi-channel sequencing,
oversampling, and NVM-based factory calibration.

Signed-off-by: Arunprasath P <arunprasath.p@microchip.com>
2025-12-26 10:13:30 -06:00
Biwen Li
ce50e46a90 drivers: intc: irqsteer: Drop calling into NXP HAL
Supporting irqsteer using NXP HAL becomes increasingly harder with new
SoCs.

For example now there are two incompatible HAL drivers for IRQ steer
(mcux-sdk-ng/drivers/irqsteer and mcux-sdk-ng/drivers/irqsteer_1).

In order to avoid overcomplicating code and better scaling code for
newer SoCs just drop using the NXP HAL and implement an IRQ Steer native
Zephyr driver

Use irqsteer node of imx943 as example.

New features:
- Support multiple irqsteer instances.
- Indroduce new properties(nxp,irq-offset, nxp,num-irqs).

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2025-12-24 12:51:21 -05:00
Pieter De Gendt
7d6a9ab552 drivers: flash: mcux-flexspi-nor: Support octal mode
Add support for JEDEC octal mode.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2025-12-24 12:49:47 -05:00
Pieter De Gendt
206cad3b21 drivers: flash: jesd216: Add BFP DW19 decode helpers
Add struct and decode function for dw19 with octal enable requirement.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2025-12-24 12:49:47 -05:00
Qingsong Gou
ff20bccfd9 drivers: spi: sf32lb: fix transceive_async
Fix transceive_async coding style and compile warnings

Signed-off-by: Qingsong Gou <gouqs@hotmail.com>
2025-12-24 12:48:55 -05:00
Qingsong Gou
0bfba8b6f4 drivers: spi: sf32lb: refactor transceive
Refactor transceive to pass spi test

Signed-off-by: Qingsong Gou <gouqs@hotmail.com>
2025-12-24 12:48:55 -05:00
Qingsong Gou
65ca5b588b drivers: spi: sf32lb: some minor fixs
Fix some options not supported
code optimization

Signed-off-by: Qingsong Gou <gouqs@hotmail.com>
2025-12-24 12:48:55 -05:00
Zhaoxiang Jin
7558361c1a drivers: clock_control: enable ADC clock control
Enable MCXE31X platform ADC clock control through
the mc_cgm clock control driver.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-12-24 12:48:46 -05:00
Zhaoxiang Jin
ea8e8b7d53 drivers: adc: refactor mcux_sar_adc to nxp_sar_adc
Zephyr's current ADC API only supports 32 logical channels,
which is inadequate for SAR ADCs on certain SoCs. For instance,
the ADC on the MCXE31B has 64 hardware channels. The previous
implementation used a one-to-one mapping between logical and
hardware channels. In the new SAR ADC driver version, we bind
hardware channels to logical channels via the zephyr,input-positive
property, enabling us to access any channel.

Currently, only imx93 uses this ADC. To maintain the bisectability
of Zephyr commits, in this commit we will also modify the imx93-related
files, inlcuding:
1. Update the clock_control_mcux_ccm_rev2.c to use the new Kconfig
option 'CONFIG_ADC_NXP_SAR_ADC'.
2. Add properties to the imx93_evk_mimx9352_m33.overlay of the adc_api
testcase.

Now the sar adc is native driver, so, remove
CONFIG_MCUX_COMPONENT_driver.sar_adc from the glue cmake.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-12-24 12:48:46 -05:00
Benjamin Cabé
aa0e3f79d1 driver: auxdisplay: Update validation to use K_SYSCALL_DRIVER_AUXDISPLAY
Replace K_SYSCALL_OBJ() with K_SYSCALL_DRIVER_AUXDISPLAY() in syscall
handlers to validate that the requested driver operation is actually
implemented before invoking it.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-12-24 12:48:22 -05:00
Benjamin Cabé
3a9d5b4991 drivers: auxdisplay: add missing syscall memory checks
Add missing K_SYSCALL_MEMORY_WRITE and K_SYSCALL_MEMORY_READ
verifications in syscall handlers for pointer parameters.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-12-24 12:48:22 -05:00
Merin George
a8838f7cfd driver: rtc: compilation error fixed
Infineon RTC driver compilation error fixed

Signed-off-by: Merin George <merin.george@infineon.com>
2025-12-24 12:47:18 -05:00
Merin George
1ed26473bb driver: timer: cyw20829 clock announce outside of spinlock context
Fixed the sys_clock_announce to be outside of spinlock context to
resolve the issues related to invalid spinlock when CONFIG_PM is
enabled

Signed-off-by: Merin George <merin.george@infineon.com>
2025-12-24 12:47:18 -05:00
Chun-Chieh Li
55e38dd937 drivers: can: numaker: refine format
Refine the format using clang-format and make no logic changes

Signed-off-by: Chun-Chieh Li <ccli8@nuvoton.com>
2025-12-24 12:46:35 -05:00
Hong Nguyen
e93279e773 drivers: stepper: include enable and microstep pins in common config
- Include the enable, m0, and m1 microstep to the common init config.
- Refactor drivers that manually init these pins to use the pins
from the common config.

Signed-off-by: Hong Nguyen <hong.nguyen.k54@gmail.com>
2025-12-23 19:50:25 +00:00
Alain Volmat
c4b7b7978b video: removal of VIDEO_BUFFER_POOL_SZ_MAX from Kconfig
Now that VIDEO_BUFFER_POOL_HEAP_SIZE is available is used
in all projects, VIDEO_BUFFER_POOL_SZ_MAX can be removed.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-12-23 19:49:00 +00:00
Alain Volmat
3ff323b0ee video: replace CONFIG_VIDEO_BUFFER_POOL_SZ_MAX with POOL_HEAP_SIZE
Update video common code and applications to rely on the
CONFIG_VIDEO_BUFFER_POOL_HEAP_SIZE instead of
CONFIG_VIDEO_BUFFER_POOL_SZ_MAX.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-12-23 19:49:00 +00:00
Alain Volmat
7319cd00d5 video: add CONFIG_VIDEO_BUFFER_POOL_HEAP_SIZE description
Clarify the size of the video buffer pool by having a
dedicated CONFIG for it.  Until now the size of the
video buffer pool was equal to VIDEO_BUFFER_POOL_SZ_MAX
multiply by VIDEO_BUFFER_POOL_NUM_MAX.

This commit only add the description, the config doesn't
have yet any effect. Change will be added after all configs
are updated to define it in order to avoid breaking
platforms between 2 commits.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-12-23 19:49:00 +00:00
Alain Volmat
a299826287 video: stm32-venc: allow selection of venc internal memory pool
Allow usage of either Shared-Multi-Heap based internal memory pool
allocation or allocation from a HEAP located optional in a
Zephyr region.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-12-23 19:49:00 +00:00
Alain Volmat
47e031ec85 video: fix VIDEO_BUFFER_USE_SHARED_MULTI_HEAP definition
Avoid default n since this is the default for a bool config

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-12-23 19:49:00 +00:00
Alain Volmat
9788cedcfb video: allow placement of video buffer pool in a Zephyr region
Addition of two options in order to select the Zephyr region
into which the video buffer pool should be placed.
CONFIG_VIDEO_BUFFER_POOL_ZEPHYR_REGION allows to indicate that the
video video pool should be placed in a specific ZEPHYR region which
name is CONFIG_VIDEO_BUFFER_POOL_ZEPHYR_REGION_NAME

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-12-23 19:49:00 +00:00
Dat Nguyen Duy
377922dfcf drivers: add initial support for NXP S32K566
Initial support for NXP S32K566 M7 & R52: Clock,
Pin control, GPIO and Uart

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2025-12-23 15:18:17 +01:00
Chun-Chieh Li
50409c7385 drivers: clock_control: numaker: support get_rate/set_rate
This adds support for clock_control_get_rate/clock_control_set_rate
API, so that module clock rate can fetch or modify via them in Hz.
Note only CANFD support is added as an reference example and other
module support will be added as-needed.

Signed-off-by: Chun-Chieh Li <ccli8@nuvoton.com>
2025-12-23 15:15:13 +01:00
Zhaoxiang Jin
3cf811e302 drivers: clock_control: Enable clock control for lpcmp
1. Enable MCXA/MCXN platforms' LPCMP clock control through
the clock driver (syscon).
2. Enable MCXE platform's LPCMP clock control through the
clock driver (mc_cgm).

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-12-23 09:32:53 +01:00
Zhaoxiang Jin
f6f8c42b67 drivers: comparator: enable nxp lpcmp driver
enable nxp lpcmp driver based on the comparator driver API

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-12-23 09:32:53 +01:00
Zhaoxiang Jin
f85158fea5 drivers: sensor: mark mcux_lpcmp as deprecated
We are planning to implement a new lpcmp driver based on the
comparator API and deprecate the current sensor-based driver.
We now mark the mcux_lpcmp as deprecated.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-12-23 09:32:53 +01:00
Zhaoxiang Jin
7371e94ec7 dts: bindings: rename nxp,lpcmp.yaml to nxp,sensor-lpcmp.yaml
We are planning to implement a new LPCMP driver based on the
comparator API and deprecate the current sensor-based driver.
We would like to use the nxp,lpcmp binding for the new
comparator-based driver implementation. To avoid naming conflicts,
we are renaming the current sensor binding to nxp,sensor-lpcmp.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-12-23 09:32:53 +01:00
Carlo Caione
54d4cdc897 drivers: lora: lbm: Defer radio initialization until first config
Split device initialization into two phases across all LBM drivers:

1. Boot-time init: Minimal device initialization
2. First config: Radio hardware initialization

This deferred initialization approach provides full control over the
radio hardware, allowing applications to perform any necessary setup
before the radio is initialized. The radio init is automatically
triggered on the first call to lora_config().

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2025-12-23 09:32:34 +01:00
Carlo Caione
c6b369e1a3 drivers: lora: lbm: Add DIO1 GPIO callback API
Add functions to register and unregister user GPIO callbacks for DIO1
interrupts on LBM lora radio devices. This allows external code (e.g., the
LoRa Basics Modem HAL) to receive notifications when DIO1 fires.

The driver configures the pin mask automatically based on the DIO1 pin
from devicetree.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2025-12-23 09:32:34 +01:00
Farsin Nasar V A
c99b9ab3cb drivers: hwinfo: microchip: Update g1 hwinfo driver
replace reset cause masks with RSTC G1 bit names.

Signed-off-by: Farsin Nasar V A <farsin.nasarva@microchip.com>
2025-12-23 07:53:42 +01:00
Braeden Lane
1bc9b2d05a drivers: counter: infineon_tcpwm: refactor to use TCPWM block base
Refactor the Infineon TCPWM counter driver to use the TCPWM block base
address instead of the counter instance base address. This change aligns
with the standard Infineon PDL API which requires the TCPWM block base
and counter index as separate parameters.

This modification maintains functional compatibility while providing
better alignment with the underlying hardware abstraction layer.
This also aligns with PR feedback to move the ifx_tcpwm.h header file
from the include folder (public APIs) to the drivers folder. Instead,
this refactoring prepares to remove that header file entirely.

Signed-off-by: Braeden Lane <Braeden.Lane@infineon.com>
2025-12-23 07:53:09 +01:00
Andrzej Głąbek
c728da88d8 drivers: mspi_dw: Fix conditionally defined masks
This is a follow-up to commit 59d8fbc0a9.

Add missing brackets in mask definitions that use `COND_CODE_1()`.
Without those, the call to `__DEBRACKET()` that is done inside
`COND_CODE_1()` removes the outer brackets provided by `GENMASK()`,
what causes problems when the mask is directly used with another
operator like `~`.
Remove also no longer needed brackets added in `start_next_packet()`
by the commit mentioned above as a workaround for this problem,
the root cause of which was not identified at that time.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2025-12-23 07:52:32 +01:00
Fengming Ye
a957c6311d wifi: nxp: support nxp wifi with custom host platform
Add CONFIG_NXP_WIFI_CUSTOM_HOST to build with custom
host platform.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2025-12-23 05:08:39 +01:00
Yangbo Lu
c3a3c2bd99 drivers: sdhc: imx_usdhc: support scatter gather DMA transfer
Supported scatter gather DMA transfer.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-12-23 05:04:25 +01:00
Yangbo Lu
f45e1d528b drivers: sdhc: introduce scatter gather transfer support
Introduced scatter gather transfer support.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-12-23 05:04:25 +01:00
Greter Raffael
fdd6cb4469 drivers: display: ssd1306: Allow rotation at run-time
Implement set_orientation api

Inverting segment_remap and com_invdir at the same time, rotates the
screen by 180 degrees.

Signed-off-by: Greter Raffael <rgreter@baumer.com>
2025-12-23 05:03:01 +01:00
Jordan Yates
b11c0f1b60 disk: sdmmc_stm32: implement disk_access_erase
Add support for erasing blocks to the STM32 SDMMC driver.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
f52fa40b04 disk: loopback: implement disk_access_erase
Implement `disk_access_erase`, which requires a sector sized buffer
of 0's to provide to `fs_write`.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
16d0daec8a disk: flashdisk: implement disk_access_erase
Implement `disk_access_erase` for flash disks.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
e02b85a378 disk: ramdisk: implement disk_access_erase
Implement `disk_access_erase` by setting all bytes to 0x00, with the
same bounds checking as `disk_access_write`.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
36a926f932 disk: sdmmc: implement disk_access_erase
Implement the `disk_access_erase` function by calling out to the lower
layer SD card drivers.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Camille BAUD
ae9f04b556 drivers: i2c: bflb: Fix I2C again
Take nuclear option to handling compiler failing at compiling

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-12-22 22:33:56 +01:00
Mathieu Choplain
2c004260b8 drivers: entropy: stm32: fix build breakage on STM32WB06/07
These SoCs don't have LL_PKA_IsEnabled() due to the PKA IP being different.
Since PKA can operate without RNG clock on entire STM32WB0 series, skip
the check on the entire series which avoids the call to non-existent
function on STM32WB06/07 and fixes build.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-22 20:41:35 +01:00
Qingsong Gou
7774970ccc drivers: i2c: sf32lb: add i2c interrupt-driven support for sf32lb
Add i2c interrupt-driven support for sf32lb platform

Signed-off-by: Qingsong Gou <gouqs@hotmail.com>
2025-12-22 20:38:27 +01:00
Tahsin Mutlugun
58cf208b8f drivers: timer: cortex_m_systick: Restore SysTick config after reset
Restore the clock source and exception bits in the CTRL register after
waking from low-power modes that reset SysTick. Also reconfigure the
interrupt priority.

Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
2025-12-22 20:37:27 +01:00
Benjamin Cabé
af171d4d3b drivers: uart: fix incorrect handler check in uart_configure syscall
The z_vrfy_uart_configure function was incorrectly checking for the
existence of the 'config_get' handler instead of 'configure'.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-12-22 14:50:23 +01:00
zjian zhang
97d266e777 drivers: gpio: fixed compile warning
fixed gpio driver compile warning

Signed-off-by: zjian zhang <zjian_zhang@realsil.com.cn>
2025-12-22 14:45:39 +01:00
zjian zhang
14e396a3b1 drivers: serial: add amebad loguart support
loguart driver support for amebad

Signed-off-by: zjian zhang <zjian_zhang@realsil.com.cn>
2025-12-22 14:45:39 +01:00
Adrien Lessard
9929ac33f4 drivers: rtc: stm32: fix rtc subsecond register read
According to the reference manual, 'When the BYPSHAD control bit is set
in the RTC_CR register [...] the value of one of the registers may be
incorrect if an RTCCLK edge occurs during the read operation'. We need
to read te subseconds register until two successive reads are equal.

Signed-off-by: Adrien Lessard <adrien.lessard.42@gmail.com>
2025-12-20 09:20:11 +01:00
Adrien Lessard
2cc9d794dc drivers: counter: stm32: fix rtc subsecond register read
According to the reference manual, 'When the BYPSHAD control bit is set
in the RTC_CR register [...] the value of one of the registers may be
incorrect if an RTCCLK edge occurs during the read operation'. We need
to read te subseconds register until two successive reads are equal.

Signed-off-by: Adrien Lessard <adrien.lessard.42@gmail.com>
2025-12-20 09:20:11 +01:00