Commit graph

28,390 commits

Author SHA1 Message Date
Albort Xue
95399aed4f drivers: wuc: add NXP LLWU (Low-Leakage Wakeup Unit) driver
Add a Wakeup Controller driver for NXP's LLWU
peripheral found on MCX-C series MCUs.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-03-11 20:55:25 -04:00
Albort Xue
0cab5de544 drivers: wuc: introduce Wakeup Controller (WUC) driver API
Introduce a new Wakeup Controller (WUC) driver API to manage wakeup
sources in low-power scenarios. The WUC API provides a standardized
interface for enabling, disabling, checking, recording and clearing
wakeup sources that can bring a device out of low-power states.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-03-11 20:55:25 -04:00
Gerson Fernando Budke
fd8ae1e1b6 drivers: usb: udc: Add SAM USBC driver
Add Atmel SAM USBC driver for SAM4L family. The driver was tested using
CDC-ACM and testusb samples.

Fixes: #74665

Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2026-03-11 20:53:53 -04:00
William Markezana
0ced331a53 drivers: crypto: bflb: add SEC_ENG per-block drivers
Add hardware crypto drivers for the Bouffalo Lab SEC Engine:

- AES: ECB, CBC, CTR modes with 128/192/256-bit keys
- SHA: SHA-224 and SHA-256 (SHA-384/512 not supported in HW)
- GMAC: Galois MAC (GF(2^128) multiply)

Each sub-block is a separate driver with its own Kconfig and
DT compatible. All drivers recover SEC_ENG_BASE from the DT
sub-block address to work with HAL register offsets.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-03-11 20:53:43 -04:00
Isabelle OGER
fe0f2cb897 drivers: modem: st87mxx: add services APIs (GNSS, WIFI scan, RSSI)
Added some application services APIs to handle the GNSS, WIFI scan
and to retrieve the RSSI on the st87mxx modem driver.

Signed-off-by: Isabelle OGER <isabelle.oger@st.com>
2026-03-11 20:53:28 -04:00
Zafer SEN
d868900dc5 drivers: modem: hl78xx: wake from PSM before socket I/O
Ensure the modem is awake before sending socket data when low-power
mode is enabled. Add a PSM-aware wake path and a handshake to gate
offload I/O until the modem is ready.

Changes:
- hl78xx_sockets.c:
  - Add HL78XX_PSM_WAKEUP_TIMEOUT_SECONDS (default 60 s).
  - Add psm_cntrl_sem to socket data and initialize it at startup.
  - Implement hl78xx_release_socket_comms() to release the semaphore
    when the modem is ready for data after wake/registration.
  - Implement hl78xx_send_wakeup_signal() to dispatch RESUME to the
    modem state machine.
  - Add hl78xx_ensure_modem_awake():
    * If registered, return immediately.
    * If in PSM/power-down, send wake, wait on psm_cntrl_sem up to the
      timeout; on timeout set errno=EAGAIN and fail.
  - Call hl78xx_ensure_modem_awake() from offload_sendto() and fail
    early if the modem cannot be woken.
  - Wrap a verbose post-process LOG_DBG() behind
    CONFIG_MODEM_HL78XX_LOG_CONTEXT_VERBOSE_DEBUG.

Why:
- In low-power (PSM/eDRX) the modem may be asleep when the app tries to
  send data. This change wakes the modem and blocks until it is ready,
  preventing spurious send failures and lost payloads.

Impact:
- Behavior change for offload_sendto() under PSM:
  * Returns -1 with errno=EAGAIN if wake times out.
- hl78xx_release_socket_comms() must be called by the core after wake
  (done in driver on +CEREG/+KCELLMEAS paths).

Signed-off-by: Zafer SEN <zafersn93@gmail.com>
2026-03-11 20:53:19 -04:00
Zafer SEN
07ab65c612 drivers: modem: hl78xx: optimize GNSS for low-power (PSM/eDRX)
Add a configurable GNSS processing mode for low-power operation and
teach the GNSS/LTE state machine to run GNSS without unnecessary CFUN
toggling when the RF path is already free in PSM. Improves energy
usage and reduces wake latency.

Kconfig:
- New choice HL78XX_GNSS_REQUEST_PROCESSING_MODE (depends on PSM):
  * HL78XX_GNSS_PROCESS_POST_PSM (default).
  * HL78XX_GNSS_PROCESS_PRE_PSM.
- Document PRE vs POST behavior and constraints.

Core (hl78xx.c):
- When GNSS is requested in low-power mode, defer to PSM-aware flow:
  * PRE‑PSM: start GNSS on PSM entry.
  * POST‑PSM: start GNSS after user wake.
- Avoid CFUN=4 when the RF path is already free due to PSM.
- Log intent and return early to skip legacy airplane path.

GNSS TU (hl78xx_gnss.c/.h):
- If PSM is active or just exited, skip CFUN=4 and start GNSS
  immediately (RF path free).
- Start GNSS on timeout when RF is free (airplane or PSM), otherwise
  queue until free.
- Cancel scheduled power‑down when GNSS actually starts.
- Handle LTE REGISTERED and DEVICE_AWAKE while GNSS is active:
  * If LTE reclaims RF, modem auto‑stops GNSS; return to LTE flow.
  * If GNSS exit occurs while CFUN=1 (PSM path), auto‑resume LTE
    registration; in airplane mode, user restores CFUN=1.
- Clarify state doc: waiting for “RF free (airplane or PSM)” instead of
  only airplane.
- Emit HL78XX_GNSS_EVENT_MODE_EXITED with status=false when auto‑stopped
  by LTE.

Public API docs (hl78xx_apis.h):
- Document low‑power GNSS paths:
  * ENTER: queued, start pre‑ or post‑PSM depending on Kconfig.
  * EXIT: auto‑resume LTE in PSM path; airplane path still user‑driven.

Why:
- GNSS can operate while LTE hibernates in PSM; avoiding CFUN toggles
  saves energy and time.
- PRE‑PSM maximizes GNSS acquisition window; POST‑PSM delivers fixes at
  wake before LTE work.
- Clearer eventing for auto‑stop cases simplifies app logic.

Impact / migration:
- Behavior change for queued GNSS in PSM: CFUN=4 is no longer forced if
  PSM already frees the RF path.
- Apps that assumed CFUN=4 during GNSS should rely on events instead.
- Consumers of MODE_EXITED should handle status=false (auto‑stop).
- New Kconfig choice requires MODEM_HL78XX_PSM=y to be effective.

Testing notes:
- Verified PRE‑PSM starts GNSS on PSM entry and cancels power‑down.
- Verified POST‑PSM defers GNSS until wake, then runs before LTE regs.
- Confirmed LTE REGISTERED during GNSS causes clean abort and return to
  LTE path.
- Confirmed no CFUN changes when PSM already frees the RF path.

Signed-off-by: Zafer SEN <zafersn93@gmail.com>
2026-03-11 20:53:19 -04:00
Zafer SEN
d78304f027 drivers: modem: hl78xx: add low-power states, events, and APIs
Introduce a low-power framework for HL78xx: new states, events, Kconfig
options, URC handlers, GPIO control, and an optional power-down timer.
Includes DTS pins for WAKE/GPIO6/VGPIO and a public wake API.

Board/DTS:
- swir_hl78xx_ev_kit.overlay:
  - Add mdm-vgpio, mdm-gpio6, and mdm-wake GPIOs.

Kconfig:
- Add MODEM_HL78XX_POWER_DOWN when eDRX/PSM are both disabled.
- Add choice for power-down policy:
  - MODEM_HL78XX_USE_DELAY_BASED_POWER_DOWN (+ delay seconds).
  - MODEM_HL78XX_USE_ACTIVE_TIME_BASED_POWER_DOWN (+ active time).
- Tune eDRX defaults and add PTW value knob.
- Adjust PSM defaults (e.g., TAU default 15 minutes).
- Gate legacy sleep-delay settings when power-down is disabled.

Driver core (hl78xx.c/.h):
- New states:
  - RUN_PMC_CONFIG_SCRIPT (apply PSM/eDRX/power-down).
  - SLEEP (bus closed, UART suspended, wake via RESUME).
- New events (when low-power enabled):
  - DEVICE_ASLEEP, DEVICE_AWAKE, LTE_PSMEV_UPDATE.
- +CEREG handler:
  - Feed power timers, handle GNSS interplay, release socket comms
    after register when low-power is active.
- +PSMEV handler:
  - Track ENTER/EXIT, toggle WAKE pin, dispatch sleep/awake events.
- +KCELLMEAS handler:
  - Update RSRP, mark registered on valid signal, release comms.
- Carrier-on / await-registered:
  - Distinguish PSM entry vs coverage loss, route to SLEEP or retry.
  - Avoid iface status run during initial PSM edge cases.
- Sleep state handlers:
  - On enter: WAKE=0, release chat, close pipe, suspend UART, give sem.
  - On bus closed: decide GNSS pre/post-PSM behavior.
  - On resume: WAKE=1, resume UART, reopen pipe, proceed to GNSS or LTE.
- State-table safety:
  - Use MODEM_HL78XX_STATE_COUNT for bounds checks.
- Log improvements and explicit state transition trace.

APIs (hl78xx_apis.c / include):
- Add hl78xx_wakeup_modem() to resume from SLEEP (PSM).

Chat/URC (hl78xx_chat.c/.h):
- Enable +KPSMEV URC and +KCELLMEAS URC when low-power is on.
- Provide disable-PMC script when low-power is off.

Config helpers (hl78xx_cfg.c/.h):
- Add PMC enabling and settings application:
  - hl78xx_enable_pmc(), hl78xx_psm_settings(), hl78xx_edrx_settings().
- Power-down timer (when enabled):
  - Init/cancel/query and feed functions via k_work_delayable.
  - Feed timer on dynamic TX path to extend on activity.
- Add hl78xx_is_rsrp_valid() helper.
- Respect CONFIG_MODEM_LOG_LEVEL in cfg TU logging.

Misc:
- Expose hl78xx_release_socket_comms() for post-register gating.
- Guard init-fail path to require WAKE pin when low-power is on.
- Add RUN_PMC_CONFIG_SCRIPT transitions after RAT config.

Why:
- Reduce energy by using PSM/eDRX and a clean SLEEP state with bus and
  UART suspended. Optionally power down the modem when DRX features are
  disabled. Provide explicit wake and robust PSM detection.

Impact / migration:
- DTS must define WAKE/GPIO6/VGPIO if low-power is enabled.
- New state/event enums added; state table now uses *_STATE_COUNT.
- +KCELLMEAS URC is enabled unless GNSS blocks it (see comments).
- External users can call hl78xx_wakeup_modem() to resume from PSM.
- Power-down policy and delays are configurable via Kconfig.

Testing notes:
- Verified PSMENTER drives WAKE low and transitions to SLEEP.
- Verified RESUME re-opens UART, waits settle time, then proceeds.
- Confirmed GNSS pre/post-PSM flows per config.
- Checked power-down timer feeds on data activity and triggers OFF.

Signed-off-by: Zafer SEN <zafersn93@gmail.com>
2026-03-11 20:53:19 -04:00
John Lin
b4332e55fd drivers: gpio: add Infineon CYW43 GPIO driver
Add a GPIO driver for the Infineon CYW43439 WiFi chip that exposes
WL_GPIO0-2 as standard Zephyr GPIO pins. Pin 0 is the onboard LED
on Raspberry Pi Pico W and Pico 2 W boards.

The GPIO node is a child of the AIROC WiFi device node in the
devicetree. GPIO control is performed via the WHD gpioout iovar,
serialized with a mutex. A shadow register tracks pin state since
the CYW43439 does not support GPIO readback.

Signed-off-by: John Lin <mcjelcom@gmail.com>
2026-03-11 20:53:08 -04:00
Shiril Tichkule
ebefb4421e drivers: sensor: adxl367: fix DATA_READY handling in trigger mode
Clearing the status register in adxl367_thread_cb() introduces
a one-sample latency since any trigger handler invoking
adxl367_get_accel_data() has to wait until the next sample sets the
DATA_READY bit again. To fix this, identify trigger source by
reading status_copy register in adxl367_thread_cb(). This preserves
the status register contents for verification prior to fetching data.

Signed-off-by: Shiril Tichkule <Shiril.Tichkule@analog.com>
2026-03-11 20:51:34 -04:00
James Bennion-Pedley
8f311018b1 bugfix: wch: conditional unused variable fix
Regression when original D8C PLL changes were added results
in an unused variable. This fixes that warning.

Signed-off-by: James Bennion-Pedley <james@bojit.org>
2026-03-11 20:51:23 -04:00
Minh Tang
9375da6e9c drivers: spi: Support DTC transfer for RX130 SPI
This commit is to add DTC transfer feature for both SPI controller mode
and peripheral mode on board RSK-RX130-512KB

Signed-off-by: Minh Tang <minh.tang.ue@bp.renesas.com>
2026-03-11 17:59:10 +00:00
Minh Tang
87621d54a1 drivers: i2c: support DTC transfer for RX130 I2C
Support DTC transfer for I2C module on rsk_rx130_512kb board

Signed-off-by: Minh Tang <minh.tang.ue@bp.renesas.com>
2026-03-11 17:59:10 +00:00
Jordan Yates
bc55241d26 sensor: ti: ina2xx: compress struct ina2xx_channels
Compress the `struct ina2xx_channels` to only the channels that are
supported. This has the added benefit that trying to access an
unsupported channel (in the driver) is now a compile-time error.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-03-11 17:58:19 +00:00
Jordan Yates
d223c92ccc sensor: ti: ina2xx: un-indent channel fetches
Use `#ifdef`, `#else`, `#endif` to block out implementations, instead
of putting the checks inside an `if`, which results in all the
implementations being indented.

It also makes it much clearer to any user with syntax highlighting
configured, since the unsupported channels are greyed out.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-03-11 17:58:19 +00:00
Jordan Yates
eac2de02f8 sensor: ti: ina2xx: fix fault on unsupported channels
Fix calling `sensor_channel_get` on a channel that is not supported by
the hardware from faulting with a NULL de-reference.

This fixes the following pattern (used by `fuel_guage/composite`):
```
sensor_sample_fetch(dev);
if (sensor_channel_get(dev, chan, val) == -EINVAL) {
    printk("Not supported\n");
}
````

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-03-11 17:58:19 +00:00
Jordan Yates
87b530a272 Revert "drivers: sensor: ina2xx: fetch: remove redundant channel NULL checks"
This reverts commit ae44e1e7b7.

The only consequence of removing NULL checks is enabling NULL
dereference exceptions. The sensor API is a generic API, a generic
library built on top of that API does not always know which channels a
device supports.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-03-11 17:58:19 +00:00
Jordan Yates
1f61281b87 Revert "drivers: sensor: ina2xx: get: remove redundant channel NULL checks"
This reverts commit 8340e8c264.

The only consequence of removing NULL checks is enabling NULL
dereference exceptions. The sensor API is a generic API, a generic
library built on top of that API does not always know which channels a
device supports.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-03-11 17:58:19 +00:00
Krzysztof Chruściński
16efc6c909 modules: hal_nordic: nrfx: Cleanup GPIOTE Kconfigs
Remove instance specific Kconfigs (CONFIG_NRFX_GPIOTEx) as they are no
longer used. Cleanup in all places.

Add prompt to CONFIG_NRFX_GPIOTE to allow enabling the driver.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-03-11 17:53:23 +00:00
Krzysztof Chruściński
fea078ff42 drivers: gpio: nrf: Do not use nrfx_gpiote when no interrupts
If CONFIG_GPIO_NRFX_INTERRUPT is disabled then nrfx_gpiote driver API
shall no be accessed at all (driver can be disabled).

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-03-11 17:53:23 +00:00
Fin Maaß
52c254af76 net: add Kconfig option for checksum offloading
Adds a Kconfig option to detect if checksum offloading
is supported by any driver and one to activate it.

Main benefit is that `net_if_need_calc_rx_checksum()` and
`net_if_need_calc_tx_checksum()` are now inline and therefore the
compiler can optimize more, when checksum offloading is not supported.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-03-11 17:52:13 +00:00
Jordan Yates
0bf99fa4e4 net: ip: net_core: remove conn_mgr_if_used on RX
Remove the unconditional `conn_mgr_if_used` call on data reception.
Receiving data ends up being a poor metric for "interface in use" in
many situations. This is especially the case when connected to networks
with broadcast packets that are not necessarily relevant for us, such as
ARP discovery requests.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-03-11 17:50:02 +00:00
Bernhard Reiter
d082f98e6a drivers: sensor: tmag5170: fix sensor_value scaling in conversions
Use micro-units when converting readings to struct sensor_value.

The previous implementation used 100000-based scaling for fractional
values, while sensor_value expects 10^-6 units. As a result, converted
magnetic field values were reported as 10x the expected gauss value
instead of gauss, and the incorrect scaling caused apparent jumps in
the reported sensor readings.

Fix the conversions by using 1000000-based scaling and
sensor_value_from_micro().

Signed-off-by: Bernhard Reiter <bernhard.reiter@swarovskioptik.com>
2026-03-11 17:49:19 +00:00
Vincent Surkijn
311a841620 drivers: pwm: add support for enabling DMA requests
Extend the PWM API with optional API functions for enabling DMA requests

Possible solution for #88670

Signed-off-by: Vincent Surkijn <vincent.surkijn@siemens.com>
2026-03-11 11:38:01 +01:00
Tim Pambor
a067aaa446 drivers: ethernet: dwmac_stm32h7x: align MAC address config with HAL driver
Update the dwmac_stm32h7x ethernet driver to use the same default
MAC address as the STM32 HAL driver.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-03-10 17:59:18 -07:00
Tim Pambor
741ce732c0 drivers: ethernet: dwmac_stm32h7x: support MAC address config
Update the dwmac_stm32h7x ethernet driver to use a MAC address
configuration struct.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-03-10 17:59:18 -07:00
Tim Pambor
e3808554d7 drivers: ethernet: dwmac_mmu: support MAC address config
Update the dwmac_mmu ethernet driver to use a MAC address
configuration struct.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-03-10 17:59:18 -07:00
Tim Pambor
fe3dad209b drivers: ethernet: dwmac: Allow to report errors from platform init
Change return value of dwmac_platform_init to int and return error code
in case of failure. This allows to report errors from platform init and
fail the driver probe if platform init fails.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-03-10 17:59:18 -07:00
Tom Burdick
bdcade6646 gpio: infineon: Add shared gpio ports
Infineon PSOC4 parts share many ports with a single IRQ line. Using the
SHARED_INTERRUPT handler feature of Zephyr results in a very large IRQ
vector table. Instead structure in DT the idea that the ports are
sharing an interrupt with a sort of pseudo interrupt controller.

This also rectifies the need to ifdef on CAT1C/M0+. I added a note
making it clear that in those cases we likely need to rework the way
interrupts are done anyways as there's secondary interrupt
muxes/controllers involved.

Signed-off-by: Tom Burdick <thomas.burdick@infineon.com>
2026-03-10 17:58:42 -07:00
Tom Burdick
75132cf2df gpio: infineon: Clean up GPIO driver
Use IF_ENABLED when possible to keep code indents looking nicer rather
than ifdef's. Rename everything to be ifx (drop the cat1 naming). Drops
the unused intc_prio config member.

Signed-off-by: Tom Burdick <thomas.burdick@infineon.com>
2026-03-10 17:58:42 -07:00
Ryan McClelland
33c6ddcc4a drivers: i3c: shell: reject RSTACT set with defining byte >= 0x80
Per MIPI I3C spec Table 38, RSTACT defining bytes >= 0x80 are only
valid for get operations (Format 3). Reject attempts to use them with
set (Format 2) early with -EINVAL rather than sending an invalid CCC
on the bus.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:29 -07:00
Ryan McClelland
7730659f6f drivers: i3c: shell: fix wrong argv index in reattach command
The reattach command takes <device> <target> [<old_dyn_addr>], so the
optional old dynamic address is argv[3], not argv[2]. The check also
used argc > 2 which is always true since the minimum argc is 3.

This caused the target device name string to be parsed as a hex
address via strtol, resulting in incorrect old_dyn_addr values.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:29 -07:00
Ryan McClelland
5faf33e2dd drivers: i3c: shell: fix wrong variable in read error message
i3c_read_to_buffer printed the controller device name (s_dev_name)
instead of the target device name (s_tdev_name) when the target
device lookup failed.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:29 -07:00
Ryan McClelland
e84061accf drivers: i3c: shell: use shell_device_get_binding in ibi_hj_response
cmd_i3c_ibi_hj_response used device_get_binding() while every other
function in the file uses shell_device_get_binding(). Use the correct
shell variant for consistent device lookup semantics.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:29 -07:00
Ryan McClelland
42a0e54f6a drivers: i3c: cdns: fix cancel transfer timeout detection
The cancel-and-wait loop uses `while (retry_count--)` with a post-loop
check of `retry_count == 0`. This is broken in two ways:

1. When all retries are exhausted, the final post-decrement wraps the
   uint32_t from 0 to UINT32_MAX, so the timeout check never fires and
   the error is silently ignored.

2. When the controller goes idle on the last retry, retry_count is
   legitimately 0 after the break, causing a false timeout report.

Replace with a simple for-loop and a bool flag to correctly distinguish
between the idle and timeout cases.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:14 -07:00
Ryan McClelland
bb85f99cd4 drivers: i3c: cdns: fix wrong register used for IBI FIFO depth
CONF_STATUS1_IBI_DEPTH extracts bits [12:10] from the CONF_STATUS1
register, but cfg0 (CONF_STATUS0) was being passed instead of cfg1.
This resulted in reading the wrong bits and computing an incorrect
IBI FIFO depth.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:14 -07:00
Ryan McClelland
8bc4795570 drivers: i3c: cdns: fix wrong bit shift in CONF_STATUS0_IBIR_DEPTH
The IBIR depth field occupies bits [7:6], a 2-bit field, but was
right-shifted by 7 instead of 6. This lost the lower bit of the
field, causing incorrect IBIR FIFO depth calculation for half of
the possible hardware configurations.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:14 -07:00
Ryan McClelland
2ed80b34f2 drivers: i3c: cdns: fix missing parentheses in DDR preamble macros
The DDR preamble macros were missing parentheses around the shift
expressions. Without them, using these in bitwise OR expressions
produces wrong results due to C operator precedence, since | binds
tighter than <<.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:14 -07:00
Ryan McClelland
5f8f8e2194 drivers: i3c: cdns: fix CMD1_FIFO_DB macro producing zero for byte values
CMD1_FIFO_DB masked bits [15:8] then shifted left by 8, which always
produced zero when the input is a byte value (0-255) since bits [15:8]
are zero for a uint8_t. The defining byte field is at bits [15:8] of
the command word.

Use FIELD_PREP with the correct field mask to place the defining byte
in the right position.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:14 -07:00
Ryan McClelland
30d843ea76 drivers: i3c: cdns: fix swapped #endif comments
The #endif comments for CONFIG_I3C_CONTROLLER and
CONFIG_I3C_TARGET were swapped, and the outermost #endif
was missing its CONFIG_I3C_USE_IBI comment.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:14 -07:00
Ryan McClelland
10c97a0523 drivers: i3c: cdns: fix missing parentheses in REV_ID_VERSION macro
Add missing parentheses around macro parameter `m` in
REV_ID_VERSION to prevent operator precedence issues when
a complex expression is passed.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-03-10 17:55:14 -07:00
Felix Wang
7a27272c46 drivers: sensor: nxp: Add QDC MCUX driver
Add driver support for NXP MCUX Quadrature Decoder (QDC) sensor.
The driver provides:
- Position tracking via SENSOR_CHAN_ROTATION channel
- Configurable counts per revolution
- Single phase and normal decoder work modes
- Input filtering with configurable count and sample period
- INPUTMUX integration for flexible signal routing
- Modulo count mode support

Signed-off-by: Felix Wang <fei.wang_3@nxp.com>
2026-03-10 22:22:28 +01:00
Farsin Nasar V A
399e58d962 drivers: dac: microchip: Update DAC G1 driver for PIC32CX_SG
Update DAC G1 driver implementation to support PIC32CX_SG

Signed-off-by: Farsin Nasar V A <farsin.nasarva@microchip.com>
2026-03-10 22:21:44 +01:00
Camille BAUD
0fdda30623 drivers: gpio: Introduce BFLB BL61x GPIO FIFO / Wire Out
Introduce a fast GPIO output system with pulse width modifications

Signed-off-by: Camille BAUD <mail@massdriver.space>
2026-03-10 22:20:46 +01:00
Camille BAUD
358b954dda drivers: gpios: Various BL61x improvement and support GPIO > 31
Various BL61x GPIO improvements

Signed-off-by: Camille BAUD <mail@massdriver.space>
2026-03-10 22:20:46 +01:00
Lutz Dittrich
4bf6cad3d8 drivers: sensor: lm75: return full resolution
There are many lm75 variants differing in temperature resolution.
Typical values are 9, 10, 11, and 12 bit. They all use the same
format (16 bit signed integer with LSB at 1/256 degree C).
Depending on the on the actual variant some of the LSB are not
defined. The new calculation scheme uses all 16 bits independent
on the actual sensor resolution. In the worst this leads to
some pseudo-resolution in case the undefined bits are not
reported as 0 by the sensor.

Signed-off-by: Lutz Dittrich <dittrich@netwake.com>
2026-03-10 22:20:01 +01:00
Atilla Filiz
9c14845fce drivers: flash: spi_nand: ignore ECC errors on the parameter page
The parameter page is not ECC protected, but can return ECC errors under
some conditions. These errors should be ignored so drivers can
initialize.

Signed-off-by: Atilla Filiz <atilla@fi-tech.be>
2026-03-10 14:21:04 -05:00
Keith Packard
67f03524ef interrupt_controller: GCC 14 compat patch for intc_nxp_irqsteer.c
SDK 1.0.0's GCC compiler flags a warning about 'cfg' being used without
being set. The compiler is wrong, but let's assign the variable to NULL
to avoid the warning.

Signed-off-by: Keith Packard <keithp@keithp.com>
2026-03-10 14:18:47 -05:00
William Markezana
27f97c132b drivers: entropy: add BFLB SEC engine TRNG driver
Add an entropy driver for Bouffalo Lab BL70X that reads
random data from the SEC TRNG block and wires it into
Zephyr's entropy API.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-03-10 14:18:36 -05:00
Clément Laigle
14ce0b69d1 drivers: ili9163c: add support for ILI9163C display
Add support for the ILI9163C display controller.

Signed-off-by: Clément Laigle <c.laigle@catie.fr>
2026-03-10 14:17:15 -05:00