Commit graph zephyr/drivers
Author SHA1 Message Date
Muhammad Waleed Badar
79a6368540 drivers: firmware: add raspberry pi videocore firmware
The firmware provides an interface between the ARM CPU and the
VideoCore GPU for system management and platform services on
Raspberry Pi devices. It allows the ARM to communicate with the
VideoCore firmware through mailbox property channels to perform
operations such as framebuffer allocation, display configuration,
clock and power management, thermal queries, memory configuration,
and other board-specific services.

Signed-off-by: Muhammad Waleed Badar <walid.badar@gmail.com>
2026-05-20 14:07:04 +02:00
Muhammad Waleed Badar
07597ffcf6 drivers: mbox: broadcom: add bcm2711 mbox driver support
Add support for Broadcom VideoCore mailbox controller driver
for BCM2711 (Raspberry Pi 4). This driver exposes two mailbox
instances, mbox0 and mbox1, where mbox0 is used by the VideoCore
GPU to signal the ARM CPU, and mbox1 is used by the ARM CPU to
signal the VideoCore GPU.

Parts of the driver is based on Yoan Dumas pull request that was
https://github.com/zephyrproject-rtos/zephyr/pull/88501

Signed-off-by: Muhammad Waleed Badar <walid.badar@gmail.com>
Signed-off-by: Yoan Dumas <yo_dumas@hotmail.fr>
2026-05-20 14:07:04 +02:00
Zayne Stites
1b78978026 drivers: serial: uart: make Infineon poll_in non-blocking
Per the uart_polling header documentation, this API should
not block.  Updating this API to simply check and return
instead of spinning until it gets a value.

Assisted-by: Claude:claude-opus-4.7

Signed-off-by: Zayne Stites <Zayne.Stites@infineon.com>
2026-05-20 10:58:09 +02:00
Laurentiu Mihalcea
e275b878f5 firmware: scmi: shell: clk: handle state control restrictions
On some systems, an agent may be restricted from enabling/disabling
certain clocks. Trying to do so would result in a DENIED error from
the platform.

Instead of throwing a generic error when the enable/disable operation
fails, first check if the targeted clock has any state control
restrictions. If so, let the user know with a more specific message and
then abort the operation.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2026-05-20 10:56:42 +02:00
Laurentiu Mihalcea
e4e8f5afb7 firmware: scmi: clk: handle state control restrictions
On some systems, an agent may be restricted from enabling/disabling
certain clocks. Trying to do so would result in a DENIED error from the
platform.

To handle such cases, first check if the targeted clocks has state control
restrictions. If so, skip the enable/disable operation and inform the
caller that the operation was successful.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2026-05-20 10:56:42 +02:00
Laurentiu Mihalcea
6cf3af34f4 firmware: scmi: clk: implement CLOCK_GET_PERMISSIONS command
Add function implementing the CLOCK_GET_PERMISSIONS command.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2026-05-20 10:56:42 +02:00
Haoran Jiang
5e84358759 drivers: regulator: sf32lb: add SF32LB52x peripheral LDO driver
Add a regulator driver for the SF32LB52x internal peripheral LDOs
controlled by PMUC

Assisted-by: Copilot:claude-sonnet-4.6

Signed-off-by: Haoran Jiang <halfsweet@halfsweet.cn>
Signed-off-by: Zhengyu Yan <859361238@qq.com>
2026-05-20 10:55:16 +02:00
Zhaoxiang Jin
f25b49d872 mipi_dbi: dcnano_lcdif: use clock control
Allow the DCNano LCDIF MIPI DBI driver to request the optional
devicetree clock before touching the LCDIF registers.

This aligns the DBI frontend with the shared RT7xx clock-control
model.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-20 10:54:37 +02:00
Zhaoxiang Jin
5ceea5ed86 display: mcux_dcnano_lcdif: use clock control
Allow the display driver to request the optional devicetree clock
before it initializes the LCDIF block.

This removes the remaining dependency on board-level LCDIF gate
enablement for the display path.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-20 10:54:37 +02:00
Zhaoxiang Jin
26e4a02a01 clock_control: mcux_syscon: add RT7xx LCDIF gate
Add the RT7xx LCDIF clock identifier and extend the shared MCUX
SYSCON clock control driver so devicetree clients can enable the
LCDIF gate through the standard clock-control API.

Keep this shared infrastructure change limited to LCDIF on this
branch.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-20 10:54:37 +02:00
Zhaoxiang Jin
2662fa9ccb mipi-dbi: nxp: dcnano-lcdif: add reset controller support
add reset controller support for mipi_dbi_nxp_dcnano_lcdif.c driver,
and use reset controller API to release reset in the driver if available.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-20 10:54:37 +02:00
Zhaoxiang Jin
32e32913a3 display: mcux: dcnano-lcdif: add reset controller support
add reset controller support

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-20 10:54:37 +02:00
Albort Xue
e076682661 drivers: clock_control: Add NXP MCXW clock control driver
This commit introduces a new clock control driver for NXP MCXW series
microcontrollers, replacing the previous hardcoded clock initialization
in soc.c with a devicetree-based approach.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-05-20 10:54:22 +02:00
Sven Hädrich
bad5a0b5d1 drivers: dali: Add driver for Zephyr PWMs
Implementation of a DALI driver for mcus
that provide a PWM interface for zephyr.
The Zephyr specific PWM, counter, and gpio
nodes handle the work. Hence, the `zephyr`
vendor prefix is used for the binding.
The code is tested for the STM32F091 mcu and
for the nRF52840 mcu.

Signed-off-by: Sven Hädrich <sven.haedrich@sevenlab.de>
2026-05-20 10:54:05 +02:00
Sven Hädrich
cb5fbe2036 drivers: dali: Add generic driver API
Defines the generic interface for the
DALI driver.

Signed-off-by: Sven Hädrich <sven.haedrich@sevenlab.de>
2026-05-20 10:54:05 +02:00
Ryan McClelland
78dfbf1833 drivers: sensor: bmp581: make INT pin polarity and drive type configurable
The streaming code previously hard-coded the INT pin as active-high
push-pull when writing INT_CONFIG. Add two boolean DT properties,
int-active-low and int-open-drain, and thread them through
bmp581_config so boards with active-low or open-drain INT wiring can
be supported without patching the driver.

Defaults preserve the previous hard-coded behavior (active-high,
push-pull) so existing in-tree boards do not need DT changes. Boards
with active-low INT wiring set int-active-low, which programs
BMP5_INT_POL_ACTIVE_LOW into INT_CONFIG. Note that the GPIO flags on
int-gpios must agree with the chip-side polarity setting.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-05-19 17:49:34 -04:00
Ryan McClelland
c68a25e4d5 drivers: sensor: bmp581: add PM device action support
Add a CONFIG_PM_DEVICE action handler that maps PM_DEVICE_ACTION_RESUME
to the devicetree-configured power-mode (NORMAL/FORCED/CONTINUOUS) and
PM_DEVICE_ACTION_SUSPEND to STANDBY, reusing set_power_mode() so the
mandatory STANDBY transition before entering an active mode (datasheet
section 4.3.7) is preserved. PM_DEVICE_DT_INST_DEFINE is wired into the
SENSOR_DEVICE_DT_INST_DEFINE call so the handler is registered for each
instance.

Add a bmp581_pm_busy_check() helper that returns -EBUSY when the device
is not PM_DEVICE_STATE_ACTIVE. The check is applied only to the
streaming branch of bmp581_submit(), because DRDY/FIFO interrupts only
fire while the device is in NORMAL or CONTINUOUS mode and a streaming
submission against a suspended device would otherwise wait forever for
an interrupt that cannot arrive.

Per datasheet section 4.3.1, STANDBY keeps all registers accessible for
read and write and preserves the last sample in the data registers, so
sample_fetch, channel_get, attr_set and the one-shot submit path are
deliberately left ungated. In particular IIR/FIFO/NVM writes (section
4.3.8) require STANDBY, and BMP5_ATTR_POWER_MODE is the mechanism used
to leave STANDBY, both of which would deadlock if attr_set were gated.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-05-19 17:49:34 -04:00
Ryan McClelland
3106896eab drivers: sensor: bmp581: add SPI and I3C bus support
The BMP581 driver previously only supported I2C. Add SPI and I3C
transports by extending the existing RTIO-based bus abstraction with
two new bus types (BMP581_BUS_TYPE_SPI, BMP581_BUS_TYPE_I3C),
following the pattern established by the icm45686 driver.

For SPI, the read register address is OR'd with bit 7 (BMP5_SPI_RD_MASK)
per the datasheet, and bmp581_init() performs the SPI activation dummy
read both before and after soft-reset (the device boots and reverts to
I2C/I3C mode on reset and requires a 16-SCK transaction with CSB
asserted to switch to SPI). For I3C, RTIO_IODEV_I3C_STOP/RESTART flags
are set on the read/write SQEs.

The BMP581_INIT macro now uses COND_CODE_1 to dispatch on the bus type
and instantiate the appropriate I2C/SPI/I3C iodev. Kconfig selects
I2C/SPI/I3C and the corresponding *_RTIO option conditionally based
on which buses the matching DT nodes use.

The original bosch,bmp581.yaml is split into a common binding plus
per-bus bindings (bosch,bmp581-i2c.yaml, bosch,bmp581-spi.yaml,
bosch,bmp581-i3c.yaml) that include the bus-specific yaml. Test nodes
for SPI and I3C are added to the build_all sensor test.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-05-19 17:49:34 -04:00
Nicolas Pitre
90d1963745 sys: util: move lowercase min/max/clamp to a new minmax.h
Since commit 37717b229f ("sys: util: rename Z_MIN Z_MAX Z_CLAMP to min
max and clamp"), <zephyr/sys/util.h> unconditionally defines function-
like macros named `min`, `max`, and `clamp` in the global namespace (in
C mode). util.h gets pulled in transitively by very broad headers,
including the POSIX layer's <pthread.h>, so any third-party C code that
uses these names as ordinary identifiers (e.g. XNNPACK's static `clamp`
helper and its public `clamp` struct field) fails to build as soon as
<pthread.h> is included.

Following the approach used by Linux, move the lowercase `min`, `max`,
`min3`, `max3`, and `clamp` macros (and their helpers) into a new
<zephyr/sys/minmax.h> header that has to be included explicitly by
source files that want them. util.h keeps the uppercase MIN/MAX/CLAMP,
so most code is unaffected; only the (much smaller) set of files that
actually use the lowercase variants needs to pick up the new include.

Fixes #107853.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2026-05-19 17:49:24 -04:00
Fin Maaß
0dcf6a345a serial: uart: change return type of irq_update to void
the return value of uart_irq_update() is not relevant,
therefore change it to void.

Also as most uart drivers don't need irq_update, make
it optional to implement this function in the driver.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-19 17:46:51 -04:00
Fin Maaß
4156093121 serial: uart: remove empty irq_update implementations
remove empty  irq_update implementations.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-19 17:46:51 -04:00
Fin Maaß
675231df7a drivers: serial: remove syscall from interrupt only functions
remove syscall from uart_irq_update() and
uart_irq_is_pending() as these are only allowed in
the interrupt.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-19 17:46:51 -04:00
Fin Maaß
4d859419d9 drivers: serial: don't check return value of uart_irq_update()
Remove return value checks of uart_irq_update().
Needed for changing it's return value to void.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-19 17:46:51 -04:00
Ali Hozhabri
5e802fe73d drivers: bluetooth: hci: Simplify STM32WB0 BLE driver
Simplify the STM32WB0 BLE driver by leveraging CONFIG_PM_CUSTOM_TICKS_HOOK.

Signed-off-by: Ali Hozhabri <ali.hozhabri@st.com>
2026-05-19 07:39:05 -07:00
Jordan Yates
fbfc5f1963 modem: cellular: move all config to vendor struct
Move all vendor specific configuration that doesn't come from devicetree
to a dedicated struct that is passed by reference to the common creation
macro. This enables new optional configuration to be added without the
headache of the common macro parameter changing. It also makes it much
clearer in the vendor files what the millisecond delays are without
having to refer back to the macro argument order.

Additionally fixes the the `autostart` parameter from the common macro.
`DT_INST_PROP_OR` only uses the `OR` value if the property doesn't
exist, but the `autostart` property is boolean, and boolean devicetree
properties always exist.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-05-19 14:59:59 +01:00
Ruoshan Shi
3b348c7956 drivers: display: add Socionext DPU driver support
Added Socionext Display Processing Unit driver to enable display
function on i.MX95 platform

Signed-off-by: Ruoshan Shi <ruoshan.shi@nxp.com>
2026-05-19 14:58:29 +01:00
Luca Impagliazzo
34fa0a8fcc drivers: modem: add Telit LEx10Q1 modem definition
Add a dedicated modem driver module for the Telit LEx10Q1 family
(LE910Q1 and LE310Q1) LTE Cat 1 modules. The driver defines the
device-specific AT command sequences for modem initialization, dial
connection, periodic network registration polling and shutdown.

The LEx10Q1 modules support CMUX multiplexing with N1=127 MTU and are
targeted for IoT and M2M applications with integrated IP connectivity.

This module is part of the vendor-specific modem cellular framework
that consolidates individual modem definitions into separate files
for better modularity and maintainability.

Signed-off-by: Luca Impagliazzo <Luca.Impagliazzo@telit.com>
2026-05-19 11:57:35 +01:00
Jeppe Odgaard
d7a4c10df3 drivers: sensor: ti: tmp11x: do not set sample to 0 in fetch
The value is a valid temperature value and cannot be used in get to check
if fetch failed.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2026-05-19 11:57:08 +01:00
Benjamin Cabé
98530cbf0e drivers: display: add IT8951 e-paper controller
Add support for IT8951 EPD controller, tested on reTerminal E1003

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Assisted-by: Cursor:composer-2
2026-05-19 11:56:21 +01:00
Michal Chromec
033ebe308b serial: uart_mcux_lpuart: downgrade rx_disable() no-buffer message
uart_rx_disable() may be called when RX was never enabled (e.g. test init).
Do not report this case as an error; log it at debug level instead.

Signed-off-by: Michal Chromec <michal.chromec@nxp.com>
2026-05-19 12:53:34 +02:00
Michal Chromec
f56935c46f serial: uart_mcux_lpuart: remove call of LPUART_Deinit()
Remove call of LPUART_Deinit() from mcux_lpuart_configure().
LPUART_Deinit() disables the LPUART clocks. If the configuration is not
supported, this may leave the LPUART in an uninitialized state with its
clocks disabled. Any subsequent access to LPUART registers can then
cause a hard fault.

Signed-off-by: Michal Chromec <michal.chromec@nxp.com>
2026-05-19 12:53:34 +02:00
Michal Chromec
537f42c0f8 serial: uart_mcux_lpuart: handle async DMA RX/TX on nxp,4ch-dma
NXP MCXC devices use the 4-channel DMA controller (nxp,4ch-dma) which
does not support eDMA-style "live reload" while the channel is busy.
This causes async RX double-buffering to fail when the next buffer is
preloaded from uart_rx_buf_rsp().

Introduce a per-instance rx_dma_live_reload flag derived from the DT DMA
controller compatible, and adjust async handling accordingly:
- Preload the next RX buffer only when live reload is supported.
- For nxp,4ch-dma, re-arm RX DMA from the DMA completion callback.
- Stop the TX DMA channel on completion to prevent repeated IRQs and treat
  DMA errors as TX aborts.
- Set DMA block address adjustment fields explicitly for RX and TX.

Signed-off-by: Michal Chromec <michal.chromec@nxp.com>
2026-05-19 12:53:34 +02:00
Michal Chromec
8dae7e7907 serial: uart_mcux_lpuart: handle SDKs without RX FIFO count API
Some devices do not provide LPUART FIFO support and therefore
lack LPUART_GetRxFifoCount(). Guard the FIFO-drain loop with
FSL_FEATURE_LPUART_HAS_FIFO and fall back to draining the RX data
register based on status flags.

Signed-off-by: Michal Chromec <michal.chromec@nxp.com>
2026-05-19 12:53:34 +02:00
Michal Chromec
dcf24f6af3 serial: uart_mcux_lpuart: support nxp,4ch-dma DT cell naming
MCUX LPUART async DMA configuration currently assumes eDMA-style DMA
specifiers (<mux source>). MCXC boards using nxp,4ch-dma describe DMA as
<channel source> instead.

Select the correct DT cell name based on the DMA controller compatible
and guard DMA config generation for instances without a 'dmas' property.

Signed-off-by: Michal Chromec <michal.chromec@nxp.com>
2026-05-19 12:53:34 +02:00
Abderrahmane JARMOUNI
baf3fe29f5 drivers: display: ili9xxx: fix orientation logic
All supported controllers (ILI9340/9341/9342C/9163C/9488) use
identical MADCTL register bit definitions. Hence the current separate
command sets CMD_SET_1/CMD_SET_2 is unnecessary. Remove it and
implement a single, datasheet-compliant orientation mapping for all
ILI9xxx controllers.

Replace rotation logic with the universal datasheet mappings:
  - 0°:   0x00
  - 90°:  MV + MX
  - 180°: MX + MY
  - 270°: MV + MY

Add devicetree properties for panel-specific corrections:
  - h-mirror/v-mirror: for mirroring variations
  - bottom-top-refresh/right-left-refresh: for non-standard scan
  directions

Fixes https://github.com/zephyrproject-rtos/zephyr/issues/105521 and
https://github.com/zephyrproject-rtos/zephyr/issues/106489

Signed-off-by: Abderrahmane JARMOUNI <git@jarmouni.me>
2026-05-19 12:53:30 +02:00
Abderrahmane JARMOUNI
fc09a575ba drivers: display: ili9xxx: rename inversion config
Rename inversion config to bit_inversion for clarity as it concerns
memory values inversion.

Signed-off-by: Abderrahmane JARMOUNI <git@jarmouni.me>
2026-05-19 12:53:30 +02:00
Maochen Wang
22490ce085 drivers: wifi: infineon: Use WIFI_STA_AUTO_DHCPV4 config option
Update Infineon AIROC Wi-Fi driver to use the new WIFI_STA_AUTO_DHCPV4
config option instead of directly checking CONFIG_NET_DHCPV4 when
deciding whether to automatically restart the DHCPv4 client after STA
connection is established.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2026-05-19 09:43:57 +02:00
Maochen Wang
62a8a9b35b drivers: wifi: nxp: Use WIFI_STA_AUTO_DHCPV4 config option
Update NXP Wi-Fi driver to use the new WIFI_STA_AUTO_DHCPV4 config
option instead of directly checking CONFIG_NET_DHCPV4.
This allows the driver to respect the application's preference for
automatic DHCPv4 startup behavior, while still supporting the DHCPv4
functionality when enabled in the network stack.
The driver now only manages the DHCP timer and automatic DHCP client
startup when CONFIG_WIFI_STA_AUTO_DHCPV4 is enabled. When disabled,
the DHCPv4 client can still be used if CONFIG_NET_DHCPV4 is enabled,
but must be manually controlled by the application layer.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2026-05-19 09:43:57 +02:00
Jordan Yates
246904b63f lora: optional configurable SYNC word
When using the LoRa Basics Modem or Native backends, the SYNC word is
user-configurable. Allow users to set it to a specific (non-zero) value.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-05-19 09:41:51 +02:00
Nick Ward
b366673163 drivers: sensor: shell: return error when trigger device not in array
In the 'off' path, sensor_trigger_set clears the hardware trigger
then find_sensor_trigger_device removes the bookkeeping entry. If the
device was not in sensor_trigger_devices[] (inconsistent state),
shell_error was printed but err remained 0 and the function returned
success. Return -ENOENT so the caller sees the failure.

Signed-off-by: Nick Ward <nix.ward@gmail.com>
Assisted-by: Claude:claude-sonnet-4-6
2026-05-19 09:39:50 +02:00
Nick Ward
b712f8ad38 drivers: sensor: shell: use goto for cmd_get_sensor mutex cleanup
Replace four scattered k_mutex_unlock/return pairs with a single
goto unlock label. Each error path sets err and jumps to the label;
the lock and unlock are paired at the top and bottom of the function.
Adding a new error path now only requires goto unlock rather than a
manually-added unlock call.

The goto on sensor_read_async_mempool failure also prevents a thread
deadlock. sensor_processing_with_callback calls rtio_cqe_consume_block
which blocks with K_FOREVER waiting for a CQE. If the mempool call
fails (e.g. -ENOMEM from SQE pool exhaustion) no SQE is submitted and
no CQE ever arrives. Without the goto, the shell thread spins inside
sensor_processing_with_callback while holding cmd_get_mutex, causing
all subsequent 'sensor get' calls to fail with -EBUSY permanently.

Signed-off-by: Nick Ward <nix.ward@gmail.com>
Assisted-by: Claude:claude-sonnet-4-6
2026-05-19 09:39:50 +02:00
Nick Ward
133f9968a0 drivers: sensor: shell: propagate sensor_read_async_mempool failure
cmd_get_sensor discarded the error from sensor_read_async_mempool and
always returned 0. Return err so callers can detect a failed read.

Signed-off-by: Nick Ward <nix.ward@gmail.com>
Assisted-by: Claude:claude-sonnet-4-6
2026-05-19 09:39:50 +02:00
Nick Ward
15d36d87b6 drivers: sensor: shell: remove spurious k_mutex_unlock in attr commands
cmd_sensor_attr_set and cmd_sensor_attr_get never acquire cmd_get_mutex.

Signed-off-by: Nick Ward <nix.ward@gmail.com>
Assisted-by: Claude:claude-sonnet-4-6
2026-05-19 09:39:50 +02:00
Fabio Baltieri
e4fb92ae6a input: kbd_matrix: keep scanning when keys are waiting to be released
Current code keeps polling the matrix and processing debouncing events
as long as keys are currently pressed, this works fine on an idle system
as long as the poll timeout is long enough to include few debouncing
cycles after the last key has been released, but if the system has been
busy enought that the keyboard task has not been scheduled for a while
and all keys have been released in the meantime, the system will do a
debouncing cycle and fall back into idle even if there are keys that are
waiting to be released.

Fix this by keep polling the matrix as long as any key is pressed
(current condition, bit set in matrix_new_state) OR any key was pressed
and is pending release (bit set in matrix_stable_state) or is currently
being debounced (just to play safe).

The check is implemented in a new function for clarity and efficiency
reasons, so it's not piggybacked into input_kbd_matrix_scan anymore.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2026-05-18 20:39:59 +01:00
Anuj Deshpande
a6c68a0507 drivers: haptics: Add Titan Micro TM6605 LRA driver
Add a driver for the TM6605 haptic motor driver IC from Titan Micro
Electronics, found on the DFRobot DRI0056 Gravity module. The device is
a write-only I2C peripheral exposing 44 pre-programmed effects selected
through an effect register and triggered via a control register.

The driver implements the haptics subsystem start_output/stop_output
callbacks and adds a tm6605_select_effect() extension API to choose the
active effect at runtime. A devicetree binding is included.

Tested on Seeed XIAO nRF54L15.

Signed-off-by: Anuj Deshpande <anuj@makerville.io>
2026-05-18 20:39:47 +01:00
Jordan Yates
6926c6d516 modem: cellular: add modem_cellular_emit_event to header
Add `modem_cellular_emit_event` declaration to the driver header so that
vendor instances can use the function.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-05-18 18:41:25 +02:00
Paolo Wattebled
42a6663502 drivers: gpio: mcux_igpio: fix flags typo
Fix a typo in mcux_igpio_configure() for CONFIG_SOC_MIMX8MQ6_M4
where `flag` was used instead of `flags` when checking
GPIO_PULL_DOWN.

Signed-off-by: Paolo Wattebled <paolo.wattebled@savoirfairelinux.com>
2026-05-18 18:40:45 +02:00
T Madhusudhan Rao
a870db2aa9 drivers: flash: nrf_qspi_nor: fix unaligned prefix and suffix reads
This commit fixes two boundary calculation bugs within read_non_aligned()
in the nrf_qspi_nor driver:

1. Prefix Alignment: Removed the `if (flash_prefix > size)` check. This
   check artificially capped the prefix, resulting in unaligned addresses
   being passed to the nrfx HAL.
2. Suffix Out-of-Bounds: Replaced the hardcoded WORD_SIZE * 2 suffix
   read with a dynamic size check. Previously, if a read ended near the
   physical boundary of the flash chip, the hardcoded 8-byte read would
   request memory outside the chip's physical address space.

Fixes #109139
Fixes #109140

Signed-off-by: T Madhusudhan Rao <tetakalam@aerlync.com>
2026-05-18 18:40:29 +02:00
Brenden Adamczak
32701782c8 drivers: video: dcmipp: added Grey/Raw8 format capture
Added the ability to capture a RAW8 capture by using the GREY FourCC format
through the dump pipe.

Without this patch you could get Grey RAW8 via the pipes 1 and 2 but
not through pipe 0 "dump" pipe. To use Pipe 0 you would have to pretend
the format is a bayer pattern with RAW_BAYER_UNPACKED(8).
Which would cause mismatches when you tried to actually use the buffer.

Signed-off-by: Brenden Adamczak <cerebralasylum1@gmail.com>
2026-05-18 18:39:22 +02:00
Bartosz Bilas
22ebd56407 drivers: ethernet: esp32: guard eth_esp32_iomux_rmii_clk_input
Add a guard for `eth_esp32_iomux_rmii_clk_input` function to fix the
following error:

error: 'eth_esp32_iomux_rmii_clk_input' defined but not used
[-Werror=unused-function] 245 | static void
eth_esp32_iomux_rmii_clk_input(void)

Signed-off-by: Bartosz Bilas <bartosz.bilas@hotmail.com>
2026-05-18 15:24:45 +01:00