Commit graph

28,390 commits

Author SHA1 Message Date
Yves Wang
255f069f00 drivers: clock_control: mc_cgm: accept SIRC clock requests
Add empty branch MCUX_SIRC_CLK in clock on to avoid incorrect return
value for drivers which use this clock.

Signed-off-by: Yves Wang <zhengjia.wang@nxp.com>
2026-03-18 08:39:33 -05:00
Axel Le Bourhis
d20e9a9484 drivers: flash: mcux: disable cache clear on mcxw70
On mcxw70, the flash cache is managed by the underlying driver from
hal_nxp. The method used in the soc_flash_mcux driver is not suitable
for this platform, and should be disabled.

Signed-off-by: Axel Le Bourhis <axel.lebourhis@nxp.com>
2026-03-18 08:37:20 -05:00
Tim Pambor
29a68cd884 modules: dhara: Implement Dhara disk driver as Zephyr module
Zephyr has currently no flash translation layer implemented. This commit
adds the basic possibility to use Dhara as FTL in Zephyr. It is
implemented as disk driver that can be placed between a filesystem and a
flash driver.

Signed-off-by: Pascal Linder <pascal.linder@zuehlke.com>
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-03-18 08:36:45 -05:00
Pascal Linder
63b26574ba drivers: flash: simulator: Add extended operations
NAND flash translation layers require the flash extended operations API
for bad block management. Add it here without implementation to test an
FTL on the flash simulator.

Signed-off-by: Pascal Linder <pascal.linder@zuehlke.com>
2026-03-18 08:36:45 -05:00
Tim Pambor
765895861e drivers: flash: Add bad block management API extensions
Add extended operations to the flash API to support marking blocks
as bad and checking if a block is bad. This is necessary for
NAND flash devices, which can have bad blocks that need to be managed.

Signed-off-by: Pascal Linder <pascal.linder@zuehlke.com>
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-03-18 08:36:45 -05:00
Yuzhuo Liu
66feaaf25f drivers: counter: add Realtek Bee series driver
Add counter timer driver support for Realtek Bee series SoCs,
including RTL87x2G and RTL8752H.

This driver is based on the hardware timer and supports:
- Relative alarm configuration
- Top value configuration

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-03-18 18:22:17 +09:00
Balaji Vasudevan
50c2d3bee3 net: phy: add KSZ9131 RGMII delay configuration support
Add the microchip,rgmii-delay binding for KSZ9131 PHYs and use it
on the SAMA7G54-EK board DTS.

GMAC0 on SAMA7G54-EK is connected to a KSZ9131 PHY over RGMII and
requires internal delay configuration equivalent to rgmii-id for
reliable gigabit operation.

Add KSZ9131 RGMII DLL delay configuration using Clause-22 indirect
MMD access.

The KSZ9131 PHY uses MMD device 2, registers 76 and 77, to control
RXC and TXC DLL delay bypass. Configure these registers according
to the requested RGMII delay mode:
- none
- id
- rxid
- txid

Delay setting would be skipped for variants that do not support RGMII
like KSZ9131MNX

Signed-off-by: Balaji Vasudevan <balaji.vasudevan@microchip.com>
2026-03-18 18:21:02 +09:00
Kevin Wang
c419bf0e1b drivers: watchdog: atcwdt200: add support for CONFIG_WDT_DISABLE_AT_BOOT
Add support for the CONFIG_WDT_DISABLE_AT_BOOT Kconfig option.
If the watchdog timer is enabled by default on the target board,
enabling this option will explicitly disable the watchdog during
the driver initialization phase.

Signed-off-by: Kevin Wang <kevinwang821020@google.com>
2026-03-18 18:20:10 +09:00
Vincent Tardy
3a9637ea27 drivers: ieee802154: stm32wba: handle rx failure notification
Rx packet notified from low layer with an
error status are skipped and the rx failure
is notified to upper layer through
the IEEE802154_EVENT_RX_FAILED event

Signed-off-by: Vincent Tardy <vincent.tardy@st.com>
2026-03-18 18:19:26 +09:00
Vincent Tardy
b95c4790de drivers: clock_control: stm32wba : HSE Trimming setting based on DT
Set HSE Trimming value in case of HSE Trimming is
present in the HSE node

Signed-off-by: Vincent Tardy <vincent.tardy@st.com>
2026-03-18 16:16:43 +09:00
Felix Wang
d1e8dca27c drivers: pwm: Fix capture support bug
Refactor the PWM capture interrupt handler to properly support all
three capture channels (A, B, and X).

Clear capture FIFOs by reading CVAL registers during enable_capture

Signed-off-by: Felix Wang <fei.wang_3@nxp.com>
2026-03-18 12:47:33 +09:00
Felix Wang
1b3c4aef72 drivers: pwm: mcux: Guard input filter functions with feature check
Add feature check to ensure these functions are only called when the
hardware supports input filter capture registers.

Update device tree binding documentation to clarify that the
input-filter-count and input-filter-period properties only take
effect when the capture input filter register is available.

Signed-off-by: Felix Wang <fei.wang_3@nxp.com>
2026-03-18 12:47:33 +09:00
Jiafei Pan
b99c17993e drivers: watchdog: imx_wdog: add MMIO mapping support
Enable MMIO mapping support for the driver in order to enable
Cortex-A Core support

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2026-03-18 12:47:05 +09:00
Andrej Butok
34cc09c699 dts: nxp: mcx: delete "nxp,cmc-reset-cause" compatible
- Deletes virtual "nxp,cmc-reset-cause" compatible,
  as it is covered by existing "nxp,cmc".
- Fixes the issue discovered during discussion in
  https://github.com/zephyrproject-rtos/zephyr/issues/104464
  #issuecomment-3957779329

Signed-off-by: Andrej Butok <andrey.butok@nxp.com>
2026-03-18 12:45:54 +09:00
Andrej Butok
52948667f9 drivers: hwinfo: nxp: fix CMC hwinfo_get_reset_cause
Fixes CMC module variant (mcxw7x) which does not have
CDOG and JTAG source of reset.

Signed-off-by: Andrej Butok <andrey.butok@nxp.com>
2026-03-18 12:45:54 +09:00
Seppo Takalo
b09c7c1aa9 drivers: modem: cellular: Allow registration even during dial-up
Some modem's reply "NO CARRIER" on the ATD command, until we are
connected to the network. This causes first dial-up attempt to fail.

When waiting for retry-timer, we might receive "+CEREG:" or "+CGEV:"
events, indicating that we are connected.
We should re-trigger the dial-up script immediately, instead of waiting
for timer.

When the dial up script succeed, we don't anymore receive "+CEREG" so
that should be handled in await_registered state.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2026-03-18 11:05:36 +09:00
Kate Wang
d45a7f774b drivers: mipi_dsi: dsi_mcux_2l: fix DBI color coding configuration
The DBI configuration was incorrectly using bitwise OR to set the
color_coding field instead of direct assignment. The 'mode' field
was being used when 'color_coding' should have been set.

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2026-03-18 11:05:01 +09:00
Fabio Baltieri
31b5866c88 input: use the LOG_ERR_DEVICE_NOT_READY macro
Unify all the "device not ready" messages with the
LOG_ERR_DEVICE_NOT_READY macro.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2026-03-18 11:04:42 +09:00
Martin Martincek
210ac6cf88 drivers: clock_control_nxp_mc_cgm.c: Unreachable adc,lpcmp,tempsens
In the function mc_cgm_clock_control_on, in first switch-case
was added a default-case which returns -ENOTSUP.
The fist switch-case is followed by two switch-cases (for adc, lpcmp),
and one if-condition (for tempsens).
If none of the cases in the first switch is fulfilled,
(e.g. trying to enable clock for adc) function early returns -ENOTSUP,
and the rest of the code becomes UNREACHABLE.

This bugfix groups all the switches and the if-condition (for tempsens),
in one main switch and keeps the return ENOTSUP as the default case,
considering that this return was added for a reason.

Signed-off-by: Martin Martincek <martin.martincek@nxp.com>
2026-03-18 11:03:48 +09:00
Jacob Wienecke
a3c2d4e7f8 i2c: mcux_flexcomm: apply pinctrl in PM
Apply PINCTRL_STATE_SLEEP on suspend and PINCTRL_STATE_DEFAULT
on resume. If a sleep pinctrl state is defined in the board DTS,
pins will be reconfigured on suspend. If not defined, the call
is a no-op.

Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
2026-03-18 11:03:32 +09:00
Jacob Wienecke
a983ea808e pwm: mcux_sctimer: apply pinctrl in PM
Apply PINCTRL_STATE_SLEEP on suspend and PINCTRL_STATE_DEFAULT
on resume. If a sleep pinctrl state is defined in the board DTS,
pins will be reconfigured on suspend. If not defined, the call
is a no-op.

Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
2026-03-18 11:03:32 +09:00
Jacob Wienecke
1e2cd361dc mipi_dbi: nxp_lcdic: apply pinctrl in PM
Apply PINCTRL_STATE_SLEEP on suspend and PINCTRL_STATE_DEFAULT on resume
so that pins are in low-power configuration if defined in the dts

Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
2026-03-18 11:03:32 +09:00
Jacob Wienecke
6c3b96e7df gpio: mcux_lpc: apply pinctrl in PM
Apply PINCTRL_STATE_SLEEP on suspend and PINCTRL_STATE_DEFAULT on resume
to ensure pins take on the DTS defined sleep state if one is defined.
TURN_ON already applies PINCTRL_STATE_DEFAULT (could be removed
potentially). RESUME handles the case where the device suspends without
full power-off.

Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
2026-03-18 11:03:32 +09:00
Jacob Wienecke
b5af9747c8 serial: mcux_flexcomm: apply pinctrl in PM
Apply PINCTRL_STATE_SLEEP on suspend and PINCTRL_STATE_DEFAULT on resume
so that pin configuration is updated for low power modes.

Previously the suspend and resume actions were empty, leaving pins in
their active configuration during sleep. On SoCs like RW6xx where pad
control registers survive low power modes, this allos boards to define
sleep pinctrl states with appropriate pull or drive setting s to minimize
leakage.

Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
2026-03-18 11:03:32 +09:00
Yves Wang
ae63923ba8 drivers: watchdog: nxp_fs26: fix watchdog field helpers
Fix broken FS26 watchdog field extraction and refresh checks.

Correct the device status macro, simple watchdog write error
handling, related register field helper macros, and use integer
duty-cycle values when selecting the watchdog window.

Signed-off-by: Yves Wang <zhengjia.wang@nxp.com>
2026-03-18 11:02:55 +09:00
Jilay Pandya
2486ea50f0 drivers: tmcm3216: implement configure ramp
implement configure_ramp api
drop set_max_velocity and set_max_acceleration from
stepper_tmcm3216.h

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2026-03-18 11:01:23 +09:00
Jilay Pandya
7fbdd32338 drivers: tmc51xx: implement configure ramp
implement configure_ramp api

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2026-03-18 11:01:23 +09:00
Jilay Pandya
d5a14fd53f drivers: tmc50xx: implement configure ramp
implement newly introduced configure_ramp api

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2026-03-18 11:01:23 +09:00
Jilay Pandya
4a3db8f4e2 drivers: tmc5xxx: add function to calculate afclk from aHz/s
Function for calculating acceleration in the timebase of
the motion controller using clock_frequency and input
acceleration in Hz/s

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2026-03-18 11:01:23 +09:00
Alain Volmat
c2a70c6cd6 drivers: video: dcmipp: use VIDEO_FMT_IS_ macro to known colorspace
Make usage of the macro VIDEO_FMT_IS_YUV/RGB/BAYER in order to
check the colorspace of a format.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2026-03-18 11:00:36 +09:00
Josuah Demangeon
d9dde2f551 drivers: video: categorize pixel formats categories
Add categories of pixel formats along with macros to detect
whether a pixel format is part of that category.
This can be used to detect multiple properties in a
maintainable way.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2026-03-18 11:00:36 +09:00
Ilia Kharin
4e44b539c9 drivers: display: ltdc: fix deadlock on full write
When writing a full-screen with a single buffer, stm32_ltdc_write() calls
stm32_ltdc_sync_frame() which resets the semaphore, sets the given buffer
to pend_buf, enables LTDC line interrupt and waits for the semaphore to be
given. However, the semaphore is never given by stm32_ltdc_global_isr()
because it skips given it when front_buf != pend_buf which is the case
because they are the same because there is just a single buffer and
front_buf == pend_buf.

The solution is not to call stm32_ltdc_sync_frame() when the same buffer is
used.

Signed-off-by: Ilia Kharin <akscram@gmail.com>
2026-03-18 10:59:15 +09:00
Ilia Kharin
1b5f013697 drivers: display: ltdc: add an assert to prevent sync frame deadlock
When stm32_ltdc_sync_frame() is called, it resets a semaphore, enables LTDC
line interrupt and waits until the semaphore is given. When the interrupt
occurs, stm32_ltdc_global_isr() is invoked and it gives the semaphore only
when front_buf != pend_buf. That is, if stm32_ltdc_sync_frame() is called
with pend_buf equal to front_buf, it would wait forever for the semaphore
to be given. Hence, a deadlock occurs. In order to catch such situation,
an assert is added in stm32_ltdc_sync_frame() when it's called with
pend_buf which is equal to front_buf.

Signed-off-by: Ilia Kharin <akscram@gmail.com>
2026-03-18 10:59:15 +09:00
Kate Wang
216129cc6f drivers: mipi_dbi: Fix bugs in NXP DCnano DBI driver
1.The color_coding in mipi_dbi_config shall not be extracting it from
the bus_type field and shall have dedicated color_coding field.
2.Update device tree binding to include pinctrl support and
declare mipi-dbi bus compatibility.

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2026-03-17 18:27:51 -04:00
CHEN Xing
a305e6de1d soc: microchip: sam: update for sama7g5 tc
Update MMU and GCLK configurations for tc

Signed-off-by: CHEN Xing <xing.chen@microchip.com>
2026-03-17 18:27:21 -04:00
Kurt Eckhardt
11bb2bb4bb drivers: led: is31fl319x - redo color to channel
Removed the driver knowing anything about what color each channel is.
When you output to an LED with a buffer it simply writes the
channels out with buffer.

Also removed the assumptions that the leds are either
a) RGB  or b) 3 channels and instead use them the way they are defined.

That is for example if we have 4 channels, we could define an LED
with just one color in it and we could define another with three.

The user can define 4 leds each with color yellow.

For each LED it counts how many buffers were used by previous LEDs and
starts there and outputs N channels.

Decided it looked cleaner to use helper function write channels, so
implemented it and added it to the call table.

Updated sample:
It manually computes which channel maps to red, green and blue and then
uses those indexes to map the table of colors to the right channels.
Signed-off-by: Kurt Eckhardt <kurte@rockisland.com>
2026-03-17 18:27:10 -04:00
Kurt Eckhardt
e758963208 drivers: led: is31fl319x - hard coded registers
more refactoring, don't use the 94 registers everywhere.
Introduce structure, with registers and fixed values, and use it.

Signed-off-by: Kurt Eckhardt <kurte@rockisland.com>
2026-03-17 18:27:10 -04:00
Kurt Eckhardt
cd80e09e59 drivers: led: rename IS31FL3194 to 9x
In preparation to allow this driver to support more than
one IS31FL319x object such as ...97, rename the
source file and the functions to make them more
generic.

I  also changed the enumeration/creation of object
to generate the right names for the current 94 objects

Renamed the Kconfig file. Updated CMakeLists.txt to
check for different condition to build source file

The samples driver is31fl3194 was also renamed to
is31fl319x. All of the references to use 9x instead
of 94. The updated sample required an update to the
doc script redirect.py to reflect the new name.

Signed-off-by: Kurt Eckhardt <kurte@rockisland.com>
2026-03-17 18:27:10 -04:00
Etienne Carriere
88f9ade8ed drivers: adc: stm32wb0: use LL_GetPackageType()
Use LL_GetPackageType() HAL function since it is fixed in WB0x HAL
v1.3.0.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-17 18:26:31 -04:00
Etienne Carriere
ae3514034b drivers: rtc: stm32: WB0x HAL 1.3.0 defines LL_RCC_EnableRTC()
Allow STM32 RTC driver to call LL_RCC_EnableRTC() for STM32WB0x series
now that the function is defined in WB0x HAL v1.3.0

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-17 18:26:31 -04:00
Ali Hozhabri
fec68bf0f3 drivers: bluetooth: hci: Provide support for CubeFW v1.4.0
Provide necessary changes to support CubeFW v1.4.0.

Signed-off-by: Ali Hozhabri <ali.hozhabri@st.com>
2026-03-17 18:26:31 -04:00
Qiang Zhang
adb4e00866 drivers: input: add NXP MCUX TSI input driver
Add input drive TSI (Touch Sensing Input) peripheral.

The driver uses a delayed work queue to periodically scan enabled
channels and reports touch/release events through the input API.

Signed-off-by: Qiang Zhang <qiang.zhang_6@nxp.com>
2026-03-17 18:26:23 -04:00
Qiang Zhang
47c8e6b53e clock: clock_control: mcux_syscon: add support for TSI clock
Add clock control support for the Touch Sensing Input (TSI) peripheral.

Signed-off-by: Qiang Zhang <qiang.zhang_6@nxp.com>
2026-03-17 18:26:23 -04:00
Albort Xue
53bf327743 drivers: regulator: nxp_vref: Format vref implementation.
Format current implementation.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-03-17 18:26:11 -04:00
Albort Xue
8cd47a9dba drivers: regulator: nxp_vref: 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-03-17 18:26:11 -04:00
Kate Wang
97773925f1 drivers: display: introduce NXP MCUX LCDIFV2 driver
Add display driver for NXP i.MX LCDIFV2 controller.

The driver supports:
- RGB565, RGB888, and ARGB8888 pixel formats
- Configurable framebuffer allocation (0-2 buffers)
- Partial display updates when driver framebuffers are enabled
- Display blanking control
- Backlight GPIO control
- Pinctrl integration
- Cache coherency support via MCUX cache API

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2026-03-17 18:26:04 -04:00
Fabio Baltieri
86cb8abea8 drivers: i2c: rts5912: set pin as open drain in i2c_rts5912_recover_bus
The i2c_rts5912_recover_bus kicks in after an i2c transfer error to
recover the bus and uses the i2c pins in gpio mode. This MCU allows
using pins in a 3.3V domain at 1.8V by setting compatible input
thresholds, the problem though is that then if the pin is set to
push-pull output it's going to drive back up to 3.3V.

Avoid that by setting the pin as open drain before setting it as output.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2026-03-17 18:25:29 -04:00
Jamie McCrae
f22592cbc5 tree: Replace FIXED_PARTITION_* macro usage with PARTITION_*
Replaces usage of these deprecated macros with ones that support
fixed and mapped partition compatibles. Also includes an update to
hal_espressif which also (rightly or wrongly) has zephyr specific
code in it

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2026-03-17 18:24:52 -04:00
Jamie McCrae
1b4d81cbbc drivers: disk: flashdisk: Support zephyr,mapped-partitions
Updates this to support using this new binding whilst retaining
support for fixed-partitions

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2026-03-17 18:24:52 -04:00
Felix van Beusekom
339b22dd4f drivers: sensor: lis2dw12: remove unused variable
The variable lis2dw12 is not used inside this function

Signed-off-by: Felix van Beusekom <felixvanbeusekom@live.nl>
2026-03-17 18:24:24 -04:00