Commit graph zephyr/drivers
Author SHA1 Message Date
Fin Maaß
680606c525 drivers: ethernet: don't use NET_ETH_PTYPE_PTP for timestamping
As we now use net_pkt_set_tx_timestamping for
every tx packet that needs timestamping,
we no longer need to also check if the ptype is
NET_ETH_PTYPE_PTP.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-07-23 18:15:38 +02:00
Benjamin Cabé
e547b8d8dd drivers: adc: ads1112: Fix PGA gain mapping
The gain switch mapped ADC_GAIN_3 to hardware gain 4 and ADC_GAIN_4
to gain 8, so requesting gain 4 configured gain 8 and the supported
gain 8 was rejected. Map ADC_GAIN_4 and ADC_GAIN_8 to their matching
PGA settings and drop the unsupported ADC_GAIN_3.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-23 18:13:29 +02:00
Benjamin Cabé
20509f06c4 drivers: i2c: bcm_iproc: Fix target address validation
The guard required addr == 0 && addr > I2C_MAX_TARGET_ADDR, which is
never true, so invalid addresses were accepted. Use ||.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-23 18:13:20 +02:00
Benjamin Cabé
de58d88aed drivers: input: ch9350l: Fix property names in codemap asserts
The size BUILD_ASSERTs referenced kb_code_map/mouse_code_map, which
do not exist, so they always passed. Use the real property names.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-23 18:13:05 +02:00
Paulo Santos
8e9066062b modem: cellular: skip power-on pulse when modem already on
The bring-up path pulses the power key unconditionally. On modems that
toggle power with the key, that turns off a modem still running after an
MCU-only reset, and the driver then times out against a dead bus until the
modem completes a full power cycle.

Add an optional mdm-status-gpios input reporting modem power state. When it
is present and asserted at start-up, skip the power-on pulse and bring up
the bus directly; the init script confirms the modem responds, and if it
does not, the driver powers the modem on. Boards without the GPIO behave as
before.

Signed-off-by: Paulo Santos <pauloxrms@gmail.com>
2026-07-23 18:12:55 +02:00
Fabio Baltieri
d3a9de81f4 i2c: npcx: support per controller timeout
Use the per controller timeout macro instead of the config directly,
this allows using per controller timeout and is a no-op for existing
users.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2026-07-23 16:26:36 +02:00
Fabio Baltieri
1100769f35 i2c: ite: switch to the generic timeout macro
Remove the ite specific timeout property and use the generic one.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2026-07-23 16:25:25 +02:00
Arkadiusz Grzelka
b06f511136 input: touch: scale reported coordinates into the display's space
swapped-x-y exchanges only the reported event codes. That is correct
when the touchscreen's coordinate space and the display share an aspect
ratio, and wrong as soon as they do not: on a rotated non-square panel
the swapped axes still carry each other's range, so X arrives bounded by
the screen height while Y overruns the display's.

A concrete case: a 480x272 panel whose controller reports in its own
480x272 space, mounted rotated a quarter turn. swapped-x-y alone
confines the reported X to 0..272 and lets Y reach 480 on a panel 272
tall. There is no combination of the existing properties that expresses
the rotation, because none of them rescale.

Add optional output-width / output-height describing the space
coordinates should land in, and scale into it after inverting and
swapping. Each value keeps its own source range -- the value held as X
always spans screen-width -- while its target dimension follows the code
it is reported under, which swapped-x-y has already chosen. So with the
axes swapped, the X value is scaled by output-height/screen-width and
lands on INPUT_ABS_Y.

The dimensions can also come from a display controller directly: an
optional display phandle sources output-width / output-height from the
referenced node's width / height, so the panel resolution is not
duplicated on the touchscreen node.

Both output dimensions are optional and resolve to 0 when absent, which
disables scaling: every existing driver and board keeps reporting
exactly what the controller produced.

Signed-off-by: Arkadiusz Grzelka <devitwise@gmail.com>
2026-07-23 16:22:41 +02:00
Arkadiusz Grzelka
6fa0613e64 input: touch: require screen dimensions only when inverting
The two dimension checks in input_touchscreen_report_pos() are written as
equivalences:

	__ASSERT(cfg->inverted_x == (cfg->screen_width > 0),
		 "X coordinate inversion requires screen-width");

which asserts more than the message says. It does require a width when
inverting, but it equally forbids declaring screen-width without asking for
inversion -- so a node that states the touchscreen's resolution for any
other reason trips an assert whose text does not mention that case.

Several in-tree boards already do exactly that. These all set screen-width
and screen-height with no inverted-x or inverted-y, and would fire the
assert under CONFIG_ASSERT:

  boards/st/stm32f469i_disco
  boards/st/stm32h573i_dk
  boards/st/stm32l562e_dk
  boards/adafruit/adafruit_2_8_tft_touch_v2
  boards/m5stack/m5stack_core2
  boards/lilygo/twatch_s3
  tests/.../g1120b0mipi.overlay

Make the checks implications, so each property means what its message says
and declaring the dimensions alone is allowed.

Signed-off-by: Arkadiusz Grzelka <devitwise@gmail.com>
2026-07-23 16:22:41 +02:00
Benjamin Cabé
fe70fa2257 drivers: ipm: nrfx_ipc: Fix off-by-one in message id validation
NRFX_IPC_ID_MAX_VALUE is the channel count: the callback arrays,
the ISR asserts and the virtual device list all treat it as an
exclusive bound. The send checks nevertheless accepted an id equal
to it and max_id_val_get() advertised it as valid, letting callers
signal a nonexistent channel. Treat it as an exclusive bound.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-23 16:22:13 +02:00
David Girle
c251684f0d drivers: ieee802154: esp32: report transmission failures
esp_ieee802154_transmit_failed() received the transmission error and
discarded it, unlocking tx_wait exactly like the success path does. As a
result k_sem_take() in esp32_tx() returned 0 for a frame that lost channel
access or was never acknowledged, and the driver reported a successful
transmission to the upper layer. OpenThread was told the frame had been
sent and therefore never retransmitted it, so the frame was dropped
silently with no error reported anywhere.

Store the error reported by the callback and translate it into the return
values documented for the tx() operation in ieee802154_radio.h: -EBUSY for
a busy medium and -ENOMSG for a missing or invalid ACK. The OpenThread
platform layer maps these to OT_ERROR_CHANNEL_ACCESS_FAILURE and
OT_ERROR_NO_ACK respectively, both of which trigger a retransmission.

Clear ack_frame and ack_frame_info at the start of every transmission.
A transmission that fails produces no ACK, and one that times out never
reaches handle_ack(), so in both cases the pointers from the previous
transmission stayed live and handle_ack() released a frame that had
already been released. Clear ack_frame_info alongside ack_frame in
handle_ack() as well, so the pair is never left half valid.

Measured on an ESP32-C6 joined to a live Thread network sharing a channel
with three other nodes: a test sending five UDP datagrams and requiring all
five to be reflected failed on roughly half of all boots before this change
and passed 30 consecutive boots afterwards. The errors reported by the
callback were CCA_BUSY and NO_ACK.

Signed-off-by: David Girle <davidgirle@gmail.com>
2026-07-23 16:20:51 +02:00
Benjamin Cabé
64fd17543c drivers: sensor: nxp_pmc_tmpsns: Fix ADC sequence buffer size
buffer_size was set to the size of the whole data struct instead of
the uint16_t buffer member. Use sizeof of the member.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-23 16:19:46 +02:00
Benjamin Cabé
f57c2f82a3 drivers: sensor: fxas21002: Fix out-of-bounds SPI command buffer
The SPI read command buffer was 2 bytes but described with a length
of 3, reading past the stack array and clocking out an indeterminate
byte. Size the buffer to match.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-23 16:19:46 +02:00
Benjamin Cabé
1fce583536 drivers: sensor: fxos8700: Fix motion threshold value
The trigger setup wrote the FF_MT_THS register address (0x17) as the
threshold instead of the maximum. Write FXOS8700_FF_MT_THS_MASK as
the comment describes.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-23 16:19:46 +02:00
Benjamin Cabé
01dd853ec0 drivers: comparator: mcux_acmp: Fix feature guard macro names
Two build assertion guards tested MCUX_ACMP_HAS_OFFSET and
MCUX_ACMP_HAS_INPSEL/INNSEL, which are never defined; the macros
defined by this file carry a COMP_ prefix, as used by every other
guard here. The enum consistency assertions were therefore always
compiled out.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-23 16:19:05 +02:00
Benjamin Cabé
355e4100df drivers: comparator: nxp_acomp: Disable interrupts on trigger removal
set_trigger() only unmasked interrupts and relied on OR-ing a zero
mask for the COMPARATOR_TRIGGER_NONE case, which is a no-op, so a
previously enabled trigger kept firing after being set to none.
Mask the interrupt sources unconditionally before reconfiguring,
as the sibling NXP comparator drivers do.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-23 16:19:05 +02:00
Benjamin Cabé
f083bb615a drivers: comparator: nxp_acomp: Fix hysteresis property lookup
The divide by ten was placed inside the property name argument of
DT_INST_PROP_OR, mangling the generated existence macro so the
lookup never matched and both hysteresis fields were always
programmed to zero. Divide the property value instead.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-23 16:19:05 +02:00
Filip Stojanovic
beebdec474 drivers: mspi: stm32: fix QSPI controller lock lifecycle
Apply the same controller lock lifecycle fix as the XSPI driver.
mspi_dev_config() released the controller lock before returning, so
no exclusive session was held until mspi_get_channel_status().

A successful mspi_dev_config() now keeps the lock, and
mspi_get_channel_status() releases it and clears the device ownership
once the controller is idle.

Signed-off-by: Filip Stojanovic <filipembedded@gmail.com>
2026-07-23 16:13:08 +02:00
Filip Stojanovic
ccfb6aca84 drivers: mspi: stm32: fix OSPI controller lock lifecycle
Apply the same controller lock lifecycle fix as the XSPI driver.
mspi_dev_config() released the controller lock before returning, so
no exclusive session was held until mspi_get_channel_status().

A successful mspi_dev_config() now keeps the lock, and
mspi_get_channel_status() releases it and clears the device ownership
once the controller is idle. The re-init force-release also clears
the device ownership.

Signed-off-by: Filip Stojanovic <filipembedded@gmail.com>
2026-07-23 16:13:08 +02:00
Filip Stojanovic
e58a6b5a50 drivers: mspi: stm32: fix XSPI controller lock lifecycle
mspi_dev_config() released the controller lock before returning, so
the lock only guarded the config call itself and no exclusive session
was held until mspi_get_channel_status(), as the MSPI API expects.

A successful mspi_dev_config() now keeps the lock, and
mspi_get_channel_status() releases it and clears the device ownership
once the controller is idle. Error paths release the lock only when
the same call took it, and the re-init force-release also clears the
device ownership.

Signed-off-by: Filip Stojanovic <filipembedded@gmail.com>
2026-07-23 16:13:08 +02:00
Zhaoxiang Jin
829e930031 drivers: counter: support irtc as a deep-sleep wakeup source
Let the IRTC wake-timer wake the CPU from deep sleep on SoCs where its
wake path is gated by a WUC (e.g. the i.MX RT700 SLEEPCON). Arm the WUC
line when a one-shot alarm is pending on a wakeup source, and disarm it
when the alarm fires or is cancelled.

The wake-timer is a wakeup source when devicetree declares it one
(wakeup-source) and routes it to a controller (wakeup-ctrls). An armed
alarm then wakes the SoC in two cases: the wake-timer is the chosen
system-timer low-power companion (zephyr,system-timer-companion), whose
alarm arms via the tickless idle path with no run-time enable; or an
application enabled it as a wakeup source at run time
(pm_device_wakeup_enable(), PM_DEVICE_FLAG_WS_ENABLED).

Disarming keys off the static "is a wakeup source" condition, not on the
companion role or the run-time enable: the companion arms without ever
setting WS_ENABLED, and the run-time enable may be cleared while an alarm
is pending, so gating disarm on either would leave a stale entry armed.
Disarming an instance that never armed is an idempotent no-op.

All WUC access is gated by IS_ENABLED(CONFIG_WUC) and a NULL wuc.dev, so
builds and SoCs without WUC are unaffected.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-07-23 16:11:52 +02:00
Zhaoxiang Jin
66b1832343 drivers: counter: add pm device support to irtc wake-timer
Give the IRTC wake-timer a PM device with a stub action, initialised via
pm_device_driver_init(). It gates no clocks or state on suspend or resume,
but having a pm_base lets the device be selected as a wakeup source with
pm_device_wakeup_enable(), which sets the WS_ENABLED flag. No functional
change to counter behaviour.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-07-23 16:11:52 +02:00
Zhaoxiang Jin
e148ad7c30 drivers: wuc: add support for sleepcon-wuc
add support for sleepcon-wuc

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-07-23 16:11:52 +02:00
Dhanoo Surasarang
0db903f479 drivers: memc: is66wv: Assign endianness from DT
Replace the hardcoded MSPI_XFER_LITTLE_ENDIAN value in
MSPI_DEVICE_CONFIG_INIT() with DT_ENUM_IDX_OR(), so the
init_cfg endian field is driven by the mspi-endian property
of the device node when present, falling back to big-endian
when the property is absent.

Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
2026-07-23 16:08:59 +02:00
Maureen Helm
ac1db7eab2 drivers: sensor: adxl345: fix over-sized buffer request in submit_fetch
adxl345_submit_fetch() requests sizeof(struct adxl345_dev_data) bytes
from the RTIO buffer pool, but only writes sizeof(struct adxl345_sample)
into it. The decoder also casts the buffer to struct adxl345_sample *.

This over-allocation wastes memory and prevents callers from using
reasonably-sized read buffers (e.g. 128 bytes) since adxl345_dev_data
can exceed 200 bytes when triggers or streaming are enabled.

Assisted-by: Claude:claude-opus-4-6
Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2026-07-22 20:57:33 -04:00
Benjamin Cabé
e249f55286 drivers: watchdog: numaker: Fix inverted clock rate check
The period calculation bailed out when the clock rate was
non-zero, i.e. on every successful clock query, so the computed
period was always zero and install_timeout() always failed with
-EINVAL. Bail out on a zero rate instead.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-22 18:31:44 -04:00
Benjamin Cabé
0a4e5b6aaa drivers: ipm: esp32: Account for the shared memory split
The shared memory region is split in half between the two
directions, but the size check and max_data_size_get() used the
full region size, so a maximum-sized message overflowed the region
by half its size. Use the per-direction capacity.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-22 18:31:34 -04:00
Benjamin Cabé
ed4a7f0c62 drivers: mbox: nrf_vevif_event_tx: Accept the highest event channel
EVENTS_IDX_MAX is an inclusive maximum index, as used by the RX
sibling and both VEVIF task drivers, but the TX channel validation
used a strict comparison and rejected the last valid channel.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-22 18:31:18 -04:00
Benjamin Cabé
f82133b7d2 drivers: input: chsc5x: Make command buffers static const
The fixed I2C command buffers in the work handler, IC verify and PM
suspend paths are already const and never modified, so make them static
const to move them out of the stack into read-only memory.

Assisted-by: Claude:opus-4.8
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-22 18:31:11 -04:00
Flavio Ceolin
26264fffc1 drivers: tgpio: Check params in tgpio_pin_read_ts_ec
z_vrfy_tgpio_pin_read_ts_ec() was missing K_SYSCALL_MEMORY_WRITE checks
on the timestamp and event_count output pointers before passing them to
the kernel driver. A userspace thread with TGPIO device access could
supply supervisor-mode addresses and cause the driver to write into
arbitrary supervisor memory (write-what-where primitive).

Signed-off-by: Flavio Ceolin <flavio@hubble.com>
2026-07-22 17:09:54 -04:00
Flavio Ceolin
4512189716 drivers: tgpio: Fix invalid userspace macros
The driver is using removed Z_ namespace userspace macros. Replace
them with K_ namespace.

Signed-off-by: Flavio Ceolin <flavio@hubble.com>
2026-07-22 17:09:54 -04:00
Flavio Ceolin
48d694ad28 drivers: tgpio: Fix invalid header inclusion
Replace syscall_handler.h with internal/syscall_handler.h

Signed-off-by: Flavio Ceolin <flavio@hubble.com>
2026-07-22 17:09:54 -04:00
Flavio Ceolin
331df881a8 smbus: Fix privilege escalation via callback syscalls
smbus_smbalert_remove_cb() and smbus_host_notify_remove_cb() were
exposed as syscalls, allowing userspace to pass a struct smbus_callback
pointer directly to kernel mode. Since struct smbus_callback contains a
function pointer (smbus_callback_handler_t), an application
could craft a callback struct to redirect kernel execution to an
arbitrary address.

Signed-off-by: Flavio Ceolin <flavio@hubble.com>
2026-07-22 17:09:48 -04:00
Benjamin Cabé
fb46a16435 drivers: input: sbus: Give the UART config internal linkage
uart_cfg_sbus is only referenced within this file, so mark it static to
give it internal linkage.

Assisted-by: Claude:opus-4.8
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-22 17:09:00 -04:00
Dong Wang
74c7d27925 driver: ipm_sedi: validate inbound message length
Validate the payload length encoded in the incoming doorbell before
reading the IPC message buffer.

If the reported length exceeds IPC_DATA_LEN_MAX, log the malformed
message and acknowledge it immediately instead of reading past
incoming_data_buf or leaving the peer waiting for completion.

This keeps the valid receive path unchanged while safely discarding
oversized inbound messages.

Signed-off-by: Dong Wang <dong.d.wang@intel.com>
2026-07-22 19:07:37 +01:00
Benjamin Santon
0ee70dc677 drivers: flash: max32: spixf: fix 4-byte address mode
Use flag_access_32bit from device data to select
MXC_SPIXF_Set4ByteAddr() or MXC_SPIXF_Set3ByteAddr() accordingly.

Signed-off-by: Benjamin Santon <benjamin.santon@analog.com>
2026-07-22 19:07:28 +01:00
Sylvio Alves
60c2edca8e drivers: wifi: esp32: report accurate send error codes
Every send failure returned -EIO, hiding whether the packet
could be retried. Return -ENOBUFS when the TX buffers do not
free up in time and -EMSGSIZE when the frame does not fit.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-07-22 19:07:11 +01:00
Sylvio Alves
d61ea3a0a0 drivers: wifi: esp32: retry tx when out of tx buffers
Frames were dropped as soon as the low-level TX buffers ran
out, losing data from bursty senders. Wait for an in-flight
frame to complete and retry, bounded by a timeout.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-07-22 19:07:11 +01:00
Benjamin Cabé
9425818f6f drivers: serial: uart_max32: Fix hw-flow-control property lookup
The init macro read the property with DT_INST_PROP_OR(index, ...)
instead of the _num macro parameter, so devicetree flow control was
always ignored.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-22 19:06:38 +01:00
Benjamin Cabé
715db1617a drivers: serial: uart_max32: Fix RX DMA transfer direction
api_rx_enable() configured the RX channel as MEMORY_TO_PERIPHERAL,
copied from the TX path. Use PERIPHERAL_TO_MEMORY.

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-07-22 19:06:38 +01:00
Rafal Dyla
0ed97ee5e7 drivers: i2s: Changing init value for fsync_duration
Changed init valueof fsync_duration to align with other chips.

Signed-off-by: Rafal Dyla <rafal.dyla@nordicsemi.no>
2026-07-22 19:05:52 +01:00
Giovanni Piccari
6bfb38b8e7 drivers: modem: add Quectel BC66 and BC660K support
Add initial driver support for the Quectel BC66 and BC660K NB-IoT
cellular modems. The driver implements the standard Zephyr
cellular modem APIs and features network offloading via BSD sockets,
specifically supporting TCP and UDP clients. Device Power Management
(PM) support is also included.

Assisted-by: Claude:claude-sonnet-4.6
Assisted-by: Gemini:gemini-3.1-pro
Signed-off-by: Giovanni Piccari <giopiccari@outlook.com>
2026-07-22 19:04:34 +01:00
Anas Nashif
7a713dcdac Revert "drivers: timer: esp32_sys_timer: adopt the sys_clock_lock() scheme"
This reverts commit 7e681dbfbd.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-07-22 10:27:24 -04:00
Anas Nashif
12c33a1e5a Revert "kernel: timeout: add sys_clock_unused() and decide sloppy idle centrally"
This reverts commit 926f7c4c0f.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-07-22 10:27:24 -04:00
Anas Nashif
cd894d6c82 Revert "drivers: timer: stop the clock via sys_clock_unused()"
This reverts commit 269e2e618a.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-07-22 10:27:24 -04:00
Anas Nashif
998053d6cd Revert "drivers: timer: mcux_os: track the no-deadline state in sys_clock_unused()"
This reverts commit e5903e4796.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-07-22 10:27:24 -04:00
Anas Nashif
e0f04c2847 Revert "kernel: timeout: add sys_clock_idle_enter() for low-power idle handoff"
This reverts commit 7d0bb85adc.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-07-22 10:27:24 -04:00
Anas Nashif
3d7be78899 Revert "kernel: timeout: drop the idle argument of sys_clock_set_timeout()"
This reverts commit fa9b836416.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-07-22 10:27:24 -04:00
Anas Nashif
5e3755f258 Revert "drivers: timer: add generic tickless system-timer core"
This reverts commit ca254d5a1d.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-07-22 10:27:24 -04:00
Anas Nashif
1682c93b77 Revert "drivers: timer: riscv_machine: use the generic timer core"
This reverts commit 23ad0c4df5.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-07-22 10:27:24 -04:00