Commit graph

25,525 commits

Author SHA1 Message Date
Parthiban Veerasooran
c41cde799d drivers: ethernet: phy: microchip_t1s: fix C45 registers direct access
C45 direct registers access is only supported by the LAN865x internal PHY,
not by the LAN867x external PHY, even though the MAC supports it. Restrict
C45 direct register access to the LAN865x internal PHY. The LAN867x
external PHY supports C45 registers only via indirect access through C22
registers.

Signed-off-by: Parthiban Veerasooran <parthiban.veerasooran@microchip.com>
2025-07-22 08:13:01 -04:00
Parthiban Veerasooran
5e6e8da495 drivers: ethernet: lan865x: fix module init priority
Align the LAN865x driver module initialization priority with the default
priorities of MDIO and PHY drivers. The microchip_t1s PHY driver supports
both LAN865x internal PHY and LAN867x external PHY. It was observed that
the microchip_t1s driver initialization priority did not match the
priority sequence used by the GMAC driver when the evb-lan8670-rmii (an
external LAN8670 PHY) was connected to the SAME54 Curiosity Ultra
platform, leading to potential initialization order issues. This change
ensures the correct initialization sequence for reliable operation.

The initialization priorities of the microchip_t1s and mdio_lan865x
drivers are now set to the default values used in Zephyr. The LAN865x
driver init priority is updated to the most appropriate value so that the
microchip_t1s init priority aligns with all MAC drivers, maintaining the
correct initialization sequence.

Since the microchip_t1s driver can be used by many MAC drivers, keeping
the default priority provided by Zephyr is a good approach. Instead,
setting a specific priority for the eth_lan865x driver is more appropriate
to ensure proper initialization order.

Signed-off-by: Parthiban Veerasooran <parthiban.veerasooran@microchip.com>
2025-07-22 08:13:01 -04:00
IBEN EL HADJ MESSAOUD Marwa
8b355e9306 drivers: usb: udc: prevent USB clock disable in sleep mode
Prevent disabling OTG HS and USBPHY clocks
during sleep on STM32U5 series

Disabling these clocks during sleep mode
was causing USB device initialization issues

Signed-off-by: IBEN EL HADJ MESSAOUD Marwa <marwa.ibenelhadjmessaoud-ext@st.com>
2025-07-22 08:11:49 -04:00
IBEN EL HADJ MESSAOUD Marwa
d4b2808b68 drivers: usb: device: prevent USB clock disable in sleep mode
Prevent disabling OTG HS and USBPHY clocks
during sleep on STM32U5 series

Disabling these clocks during sleep mode
was causing USB device initialization issues

Signed-off-by: IBEN EL HADJ MESSAOUD Marwa <marwa.ibenelhadjmessaoud-ext@st.com>
2025-07-22 08:11:49 -04:00
Mike J. Chen
1f69b91e90 drivers: audio: dmic_mcux: remove arbitrary mapping of pdm to dmic channel
The dmic_mcux driver required a mapping of paired dmics to
specify the same pdm number, and would arbitrarily assign the left
channel of the pair to even dmic channel number and the right
to an odd dmic channel number.

Change this so that the pdm number in the mapping is
used as the dmic channel number, and paired dmics are checked to
specify consecutive pdm numbers (instead of the
same pdm number).

This allows users to control explicitly which dmic
channel to use and whether that dmic channel is left or right,
without this arbitrary indirect mapping. This is important
in case they want a dmic that is wired to be right channel
to be assigned to dmic channel 0, which is the only channel
that supports hwvad.

Signed-off-by: Mike J. Chen <mjchen@google.com>
2025-07-21 21:36:44 -04:00
Yishai Jaffe
ee7834997b drivers: led: shell: add blink cmd
Add blink command to led shell module

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2025-07-21 13:07:07 -04:00
Travis Lam
f94a45c276 drivers: flash: nordic: Introduce nrf_mramc driver
Add SHIM layer for nrfx_mramc driver for zephyr

Signed-off-by: Travis Lam <travis.lam@nordicsemi.no>
2025-07-21 09:19:45 -04:00
Luis Ubieda
25b4e868a9 gnss: u-blox f9p: Add RTK integration to driver
Enable driver to consume RTK data-correction messages published
in order to enhance GNSS Navigation results.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-07-21 09:19:14 -04:00
Luis Ubieda
2418612421 modem: ubx: Change request buffer to be void
So this API can be used to send frames with a different encoding than
UBX. This enables UBX drivers to send RTCM3 correction frames using UBX
API, without having to switch over modem pipes.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-07-21 09:19:14 -04:00
Stoyan Bogdanov
ff2328522a drivers: pwm: Add support for cc23x0 LGPT PWM
Add PWM support for LGPT0, LGPT1, LGPT2 and LGPT3 for cc23x0 SoC.

Signed-off-by: Stoyan Bogdanov <sbogdanov@baylibre.com>
2025-07-21 07:26:18 -04:00
Parthiban Nallathambi
455e76f68f drivers: gpio: fix pincm lut size
LUT sizes directly reflects the global data when enabled in dts
(even if no or few pins are really consumed). Also the PINCM
numbering across the series (g, l and c) is within 255, so fix
to use uint8_t to save the global space.

Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com>
2025-07-21 07:25:50 -04:00
Parthiban Nallathambi
7a70fab29b drivers: gpio: add support for mspm0L series banks
All the HAL API/wrapper depends on PINCM indexing, which cannot
be derived from neither pin number nor the address offset.

With current approach, update the LUT table of possible PINCM's
for L series with GPIO A, B and C banks.

Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com>
2025-07-21 07:25:50 -04:00
Parthiban Nallathambi
6bef297052 drivers: clock: conditional compile ulpclk udiv divider
although udiv is represented in clock tree of L series, this is
not really present or controllable from SYSCTL registers. Enable
udiv only if present in dts.

Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com>
2025-07-21 07:25:50 -04:00
Matt Rodgers
56621fa1de drivers: adc: stm32: add support for differential mode
Differential mode support consists of:
- If differential mode is supported by the underlying hardware AND at
  least one differential channel is enabled in the devicetree for this
  ADC instance, then perform a differential mode calibration in addition
  to the usual single ended calibration during initialisation.
- Set channels to the appropriate differential or single ended mode
  during channel setup.

Currently the N6 series is not supported even though the underlying
hardware supports differential mode, due to complications in the
calibration procedure.

Signed-off-by: Matt Rodgers <mrodgers@witekio.com>
Co-authored-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-07-21 07:25:30 -04:00
Saravanan Sekar
e051ec23ca drivers: pwm: Add a support for TI MSPM0 PWM capture
TI MSPM0 timer module has capture block used to capture timings of input
signal. Add a support for TI MSPM0 PWM capture.

Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>
2025-07-21 07:25:10 -04:00
Jordan Yates
365774246a spi: nrfx_spim: initial pin state to SLEEP, not DEFAULT
Configure the initial pin state of the SPIM peripheral to SLEEP, not
DEFAULT. This fixes the pins being configured in DEFAULT until the first
time the interface is used if `zephyr,pm-device-runtime-auto` is
enabled.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-07-21 07:23:06 -04:00
Jun Lin
f1f7ca459b drivers: input: npcx: init semaphore before interrupt enable
A kernel panic was observed on a platform when k_sem_give() was called
in npcx_kbd_ksi_isr(). From the panic information, it appears that
the semaphore was used before it was initialized. This commit prevents
the potential issue by enabling the interrupt only after
the input_kbd_matrix_common_init() function is called
(where the semaphore is initialized).

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2025-07-21 07:22:53 -04:00
Jordan Yates
69acc016eb serial: nrfx_uarte: initial pin state to SLEEP
Configure the initial pin state of the UARTE peripheral to SLEEP, not
left uninitialised. This fixes the pin configuration not being set until
the interface is used if `zephyr,pm-device-runtime-auto` is enabled.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-07-21 07:22:38 -04:00
Luis Ubieda
ef41627f81 i3c: stm32: Prevent mutex deadlock on DAA failure
Make sure this function always unlocks bus_mutex.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-07-20 23:24:58 -04:00
Dmitrii Sharshakov
4044e0e75c drivers: hwinfo: rpi_pico: use bootrom method on RP2350
RP2350 provides a function to get OTP-backed chip ID. Prefer using this
on supported platforms for these reasons:
- a secure internal identifier, same as read by picotool
- works on flashless boards
- does not conflict with code running in XIP mode (e.g. when the other
 core tries to access device ID)
- when used with USB HWID serial number will match one BootROM has

Signed-off-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com>
Co-authored-by: Alexander Wachter <alexander@wachter.cloud>
2025-07-20 18:49:09 -04:00
Lidor T
b68058787e counter: cmsdk_apb_dualtimer: Use clock freq from DT clocks
Previously, the CMSDK APB dual timer driver hardcoded the counter
clock frequency to 24 MHz, which limits reuse across SoCs and
boards with different timer clock sources.

This patch replaces the hardcoded frequency with a value derived
from the device tree's `clocks` phandle, using the
`clock-frequency` property of the referenced clock controller node.

If the property is missing, it falls back to a default 24 MHz.

Signed-off-by: Lidor T <lidor@exibit-iot.com>
2025-07-19 15:50:31 -04:00
Pieter De Gendt
c5a2542ad9 drivers: wifi: esp_hosted: select NANOPB_ENABLE_MALLOC
Use Kconfig symbol instead of the manual definition.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2025-07-19 15:46:08 -04:00
Mark Geiger
edbce504b0 sensor: nrf-qdec: Allow sampleper register configurable through dts
Allow for users to define the sampling period via the sampleper
register on a per instance basis through device-tree properties.
The previous value was hard coded. The same value is now the default
value.

Signed-off-by: Mark Geiger <MarkGeiger@posteo.de>
2025-07-19 15:45:27 -04:00
Armando Visconti
0d38a88666 drivers/sensor/: lis2dux12: fix ODR setting
In lis2dux12_freq_to_odr_val, the loop through the array of possible ODR
frequencies can break sooner than expected if power-mode is
set to High Performance mode and the requested ODR is less than or
equal to 25Hz.

Moreover, move the "odr |= 0x10" statement used for HP mode in the
chip_api set_odr_raw() API, so that we enter the HP mode even when the
ODR is set from DT only.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2025-07-19 15:44:26 -04:00
Ren Chen
0b9095e9a2 drivers: spi: it51xxx: fifo mode support
This commit adds shared/group fifo mode support.

Tested with: samples/drivers/spi_flash

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2025-07-19 15:43:28 -04:00
S Mohamed Fiaz
fd88386a9f driver: serial: uart_ns16550: Add pm support for uart_ns16550 driver
This commit enables the pm device runtime driver support
for the uart_ns16550 driver.

Signed-off-by: S Mohamed Fiaz <fiaz.mohamed@silabs.com>
2025-07-19 15:40:59 -04:00
Phi Tran
529a11057e drivers: gpio: renesas_rx: Refactor macros for conditional generation
This change introduces GPIO_RX_PORT_IRQ_DECL() and GPIO_RX_PORT_IRQ_ELEM()
macros to conditionally generate GPIO port IRQ declarations and elements
only when the 'port_irq_names' property exists in the device tree node.
This improves code clarity and avoids generating unused code for ports
that do not have IRQ support for Renesas RX

Signed-off-by: Phi Tran <phi.tran.jg@bp.renesas.com>
2025-07-19 15:40:18 -04:00
Scott Worley
ef4ec43e63 drivers: timer: microchip: xec: Microchip MEC one kernel timer driver
We want to simplify the maintenance burden and confusion of having
more than one driver for the same kernel timer peripheral used on
all Microchip MEC parts. The XEC version of the driver was converted
register definitions in the driver. Register access is performed using
Zephyr sys_read/write architecture specific inline routines. Driver DT
YAML was updated to use phandle for the 32-bit basic timer used for
ARCH_HAS_CUSTOM_BUSY_WAIT support, basic timer max value property,
and GIRQ interrtup aggregator hardware information.
SoC part Kconfigs, chip level/board level DTSI updated to use the
unified driver.

Signed-off-by: Scott Worley <scott.worley@microchip.com>
2025-07-19 15:39:40 -04:00
Simon Guinot
ec0fb2c92c drivers: led: add leds-group-multicolor driver
This driver supports multi-color LEDs built with several monochromatic
LEDs. ->set_color is the only LED driver API method implemented.

Instead of calling led_set_brightness() for each monochromatic LED,
led_set_color() can be called on the leds-group-multicolor device to
set all colors at once.

See the leds-group-multicolor DT binding for details.

Signed-off-by: Simon Guinot <simon.guinot@seagate.com>
2025-07-19 15:39:29 -04:00
Simon Guinot
e1aaf8761e drivers: led: pwm: automatically select PWM
For all LED drivers, the underlying subsystem is automatically selected
in Kconfig if their compatible node is found in DT.

The only exception is the PWM LED driver which depends on PWM instead
of selecting it. The PWM Kconfig option must be explicitely selected in
order to have LED_PWM enabled.

This patch updates the Kconfig of the PWM LED driver to have the same
behavior as other LED drivers: PWM is now automatically selected if a
"pwm-leds" compatible node is found in DT.

Signed-off-by: Simon Guinot <simon.guinot@seagate.com>
2025-07-19 15:39:29 -04:00
Michal Frankiewicz
1b014bab64 drivers: spi: nrfx_spim: Add support for non standard frequencies
Disabled frequency set approximation algorithm for spim's with prescaler.

Signed-off-by: Michal Frankiewicz <michal.frankiewicz@nordicsemi.no>
2025-07-19 15:38:04 -04:00
Luis Ubieda
d35d199253 sensor: adxl345: Add ability to use Streaming and Trigger with INT1
Prioritized over INT2 if both are defined.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-07-19 15:37:24 -04:00
Venkatesh Odela
873b05f39c drivers: ethernet: eth_xilinx_axienet : Add runtime MAC address generation
Add support to generate the random MAC if 'zephyr,random-mac-address'
is set,uses 'local-mac-address' from DT if available, or falls back
to a default Xilinx OUI-based MAC with zeroed bytes

Signed-off-by: Venkatesh Odela <venkatesh.odela@amd.com>
2025-07-19 15:37:14 -04:00
Alvis Sun
5b1d16dd6f drivers: wdt: npcx: add wdt driver support for npck3
Enables the extended Watchdog Timer driver for npck3.

Signed-off-by: Alvis Sun <yfsun@nuvoton.com>
Signed-off-by: Mulin Chao <mlchao@nuvoton.com>
2025-07-19 15:36:47 -04:00
Jordan Yates
79edfc0128 wifi: nrf_wifi: ignore interface if TX disabled
Automatically hide the nRF7x interface from the connection manager if
the TX path is disabled (scan only mode). This prevents function calls
like `conn_mgr_all_if_up(true)` from bringing up the interface which
can never result in a connection.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-07-19 15:35:31 -04:00
Julien Panis
afc5b6cb0d drivers: adc: cc23x0: Add power management
Add PM support to cc23x0 ADC module.

Signed-off-by: Julien Panis <jpanis@baylibre.com>
2025-07-19 15:31:37 -04:00
Hao Luo
4b3565d958 drivers: pwm: Add support for Apollo510 pwm
This commit adds support for Apollo510 pwm driver

Signed-off-by: Hao Luo <hluo@ambiq.com>
2025-07-19 15:31:08 -04:00
Hao Luo
eea4aa9f52 drivers: pwm: changed ambiq ctimer variable names
changed variable names from timer to ctimer

Signed-off-by: Hao Luo <hluo@ambiq.com>
2025-07-19 15:31:08 -04:00
Richard Wheatley
902005e0ef drivers: add assert to check for max children in timer
check for max number of children in timer.

Signed-off-by: Richard Wheatley <richard.wheatley@ambiq.com>
2025-07-19 15:31:08 -04:00
Richard Wheatley
7cd378d9c9 dts: bindings: move clk-source to parent
Move clk-source from pwm to timer
change associated files to match

Signed-off-by: Richard Wheatley <richard.wheatley@ambiq.com>
2025-07-19 15:31:08 -04:00
Richard Wheatley
e81a241678 driver: pwm: create ambiq pwm driver
Restructured counter and timer.
CTimer/Timer is now parent to pwm and counter.
Created PWM driver and tied to pwm and pwm-led

Signed-off-by: Richard Wheatley <richard.wheatley@ambiq.com>
2025-07-19 15:31:08 -04:00
Camille BAUD
dbd85ae677 drivers: Add header file with common functions for BFLB
This moves the couple functions that are and will be all over
the various clock operations for all platforms.

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-07-19 15:30:45 -04:00
Ruben Völl
9007a4fd8e sensor: lis2dw12: handle SENSOR_CHAN_ALL in sample_fetch callback
Handle `SENSOR_CHAN_ALL` case of the sample_fetch callback of the
lis2dw12 driver. Without this, `sensor_sample_fetch()` does not work
correctly for this device, e.g. rendering the rtio and the sensor shell
unusable.

Signed-off-by: Ruben Völl <ruben.voell@sevenlab.de>
2025-07-19 13:51:20 -04:00
Hao Luo
e6f986f907 drivers: watchdog: bugfix for ambiq wdt clk select
This commit fixed the watchdog clock select error in
ambiq driver.

Signed-off-by: Hao Luo <hluo@ambiq.com>
2025-07-19 13:49:29 -04:00
Hao Luo
0407185d43 drivers: adc: ambiq: fixed the error that caused adc_api test to fail
This commit fixed the failure of test_adc_asynchronous_call

Signed-off-by: Hao Luo <hluo@ambiq.com>
2025-07-19 13:49:14 -04:00
Fin Maaß
d3ca2f07a9 drivers: spi: litex: remove core_ prefix
remove `core_` prefix from code and
register names, got dropped in litex in
https://github.com/enjoy-digital/litex/pull/2253

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-07-19 13:48:54 -04:00
Kapil Bhatt
dd7413d269 drivers: nrf_wifi: Fix rpu recovery debug info
Rpu recovey debug stats are stored in hal_dev_ctx which is not
persistent in case of interface is brought down/up. Need to add
in nrf_wifi_ctx_zep and update before interface goes down.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2025-07-19 13:47:04 -04:00
Samuel Tardieu
226011b8e1 Drivers: max17055: retrieve the current value
The MAX17055 peripheral allows measuring the current
value (which corresponds to the instantaneous value). Respond to
the `SENSOR_CHAN_CURRENT` command, and retrieve the data
from the `0x0a` device register.

Signed-off-by: Samuel Tardieu <sam@rfc1149.net>
2025-07-19 13:46:19 -04:00
Luis Ubieda
4eaaf3c0ea bmm350: Add streaming mode
Supported for DRDY interrupts.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-07-19 13:45:38 -04:00
Luis Ubieda
0e9a018a3e bmm350: Add read-decode support
One-shot reads are now supported through the v2 model API.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-07-19 13:45:38 -04:00