Commit graph

28,390 commits

Author SHA1 Message Date
Erdem Simsek
8338097b1d drivers: i2s: Support audio auxpll in TDM driver
Add support for audio_auxpll clock source as an alternative to audiopll
in the i2s_nrf_tdm driver. This enables TDM functionality on platforms
that use the auxiliary PLL for audio clocking.

- Add audio_auxpll node detection and configuration
- Update clock management to support both audiopll and audio_auxpll
- Add build assertions for supported frequency configurations

Signed-off-by: Erdem Simsek <erdem.simsek@nordicsemi.no>
2025-10-24 13:20:31 -04:00
Krzysztof Chruściński
9d017467cc drivers: serial: Remove deprecated uart_nrfx_uarte2 driver
Use of uart_nrfx_uarte2 driver was deprecated before 4.1 release
and now can be removed.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-10-24 13:20:07 -04:00
Jeppe Odgaard
e54093ba9a drivers: sensor: add tach_gpio
Add tachometer sensor driver using GPIO interrupts.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2025-10-24 13:19:04 -04:00
Jérôme Pouiller
46b498ad16 drivers: adc: siwx91x: Fix clock name
All the clocks names on SiWx91x follow the pattern "SIWX91X_CLK_xxx".
SIWX91X_ADC_CLK was an exception.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-10-24 13:18:42 -04:00
Benjamin Cabé
1cc1e83b3d drivers: usb-c: prevent Kconfigs for logging from bleeding
CONFIG_USBC_LOG_* options should be gated by the higher level USBC
Kconfig.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-10-24 13:18:28 -04:00
Benjamin Cabé
b48ef99495 drivers: virtio: prevent Kconfigs for logging from bleeding
CONFIG_VIRTIO_LOG_* options shoul be gated by the main VIRTIO Kconfig.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-10-24 13:18:28 -04:00
Julien Racki
4197931643 drivers: ethernet: stm32: add PTP HAL flag for N6
Add depends on SOC_SERIES_STM32N6X to
PTP_CLOCK_STM32_HAL in order to use PTP on the STM32N6 series.

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2025-10-24 13:18:02 -04:00
Khaoula Bidani
ba35b4d076 driver: uart: stm32: Disable UART DMA before shutdown
Use LL_USART_DisableDMAReq_RX to disable UART RX DMA requests.
This should be called before entering shutdown mode.

Force to use UART_STM32U5_ERRATA_DMAT_LOWPOWER
when POWEROFF is selected. This ensure the system to shut down
properly instead of hanging due to DMA staying active.

Signed-off-by: Khaoula Bidani <khaoula.bidani-ext@st.com>
Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2025-10-24 09:01:50 -07:00
Tomasz Moń
35620e20a9 drivers: udc_dwc2: Fix deactivate when hibernated
It is possible for usbd_disable() to be called when the core is
hibernated. When done so, the USB stack will attempt to deactivate all
the endpoints. Because the core is hibernated, register reads are
really undefined. This can lead to udc_dwc2_ep_deactivate() not calling
udc_dwc2_ep_disable() which will leave struct udc_ep_config busy flag
set.

When endpoint 0x00 busy flag is left to true, the driver won't allocate
buffer to receive SETUP data which is mandatory in Buffer DMA mode. This
leads to essentially dead device after reconnect, because the device
will not respond to any control transfers.

Solve the issue by modifying backup register value instead of real one
when endpoint is deactivated while core is hibernated.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2025-10-24 08:59:47 -07:00
Guillaume Gautier
684779ec23 drivers: usb_c: tcpc: stm32: use dedicated bitops functions
Use dedicated set/clear bits function instead of reading/masking/writing
manually.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
9074528435 drivers: i2c: stm32: v2: simplify reg operation
Call stm32_reg_set_bits instead of stm32_reg_read then stm32_reg_write.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
004c613e25 drivers: stm32: replace MODIFY_REG HAL macro by stm32_reg_modify_bits
For all STM32 drivers and SoC, replace the MODIFY_REG macro (defined in
the STM32 HAL) by stm32_reg_modify_bits defined in Zephyr.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
124448582f drivers: stm32: replace READ_REG HAL macro by stm32_reg_read
For all STM32 drivers and SoC, replace the READ_REG macro and the
LL_xxx_ReadReg functions (defined in the STM32 HAL) by
stm32_reg_read defined in Zephyr.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
2a52a2b7ff drivers: stm32: replace WRITE_REG HAL macro by stm32_reg_write
For all STM32 drivers and SoC, replace the WRITE_REG macro and the
LL_xxx_WriteReg functions (defined in the STM32 HAL) by
stm32_reg_write defined in Zephyr.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
44415b5af8 drivers: stm32: replace READ_BIT HAL macro by stm32_reg_read_bits
For all STM32 drivers and SoC, replace the READ_BIT macro (defined in
the STM32 HAL) by stm32_reg_read_bits.
Fixes some cases where the return value was tested like a boolean
despite not being one.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
a2339c9b91 drivers: stm32: replace CLEAR_BIT HAL macro by stm32_reg_clear_bits
For all STM32 drivers, replace the CLEAR_BIT macro (defined in
the STM32 HAL) by stm32_reg_clear_bits defined in Zephyr.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Guillaume Gautier
73e9749c68 drivers: stm32: replace SET_BIT HAL macro by stm32_reg_set_bits
For all STM32 drivers, replace the SET_BIT macro (defined in
the STM32 HAL) by stm32_reg_set_bits defined in Zephyr.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-10-24 08:58:25 -07:00
Etienne Carriere
464d929651 drivers: usb: udc: stm32: split variable definition in multi-line
Split variables definition into 2 line as per Zephyr coding style
expectations since they are of different type.

No functional changes.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-24 08:57:55 -07:00
Etienne Carriere
0b297bdbb8 drivers: usb: udc: stm32: remove useless test on buffer length
Remove useless test on buffer length in handle_msg_setup() since the
buffer was allocated few lines above with a known non zero size.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-24 08:57:55 -07:00
Etienne Carriere
f8addbaa28 drivers: usb: udc: stm32: inline comment reference to selected_speed
Clarify inline comment referring to field selected_speed of
struct udc_stm32_config.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-24 08:57:55 -07:00
Etienne Carriere
7df2ce80ae drivers: usb: udc: stm32: remove useless OR operation on return value
Remove useless OR operation on return value is udc_stm32_enable()
since the return value is always 0 before it's OR-ed with a new return
value.

No functional changes.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-24 08:57:55 -07:00
Etienne Carriere
86616fd406 drivers: usb: udc: stm32: test essentially boolean value
Change implementation to ensure all boolean test are done on essentially
boolean values.

No functional changes.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-24 08:57:55 -07:00
Etienne Carriere
16237e4147 drivers: usb: udc: stm32: rename endpoint config variable
Rename endpoint configuration pointer variable in HAL_PCD_ResetCallback(),
udc_stm32_ep_mem_config() and udc_stm32_ep_disable() from ep to ep_cfg
to prevent confusion since ep is usually used as endpoint address.

For consistency, also use ep_cfg elsewhere where an endpoint config
pointer is used, instead of using either cfg, ecfg and ep_cfg.

No functional changes.

Suggested-by: Johann Fischer <johann.fischer@nordicsemi.no>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-24 08:57:55 -07:00
Etienne Carriere
66478fd11a drivers: usb: udc: stm32: test HAL return value
Add missing test of some HAL functions return value.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-24 08:57:55 -07:00
TOKITA Hiroshi
2cce5ed488 drivers: gpio: aw9523b: Fix the condition for changing Push-pull
The condition for setting the GPOMD bit when `port0_push_pull`
is enabled was reversed.
Fix this problem.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2025-10-24 08:57:29 -07:00
Ruijia Wang
e8bb85ee69 drivers: xspi: add NXP xspi driver
Add mcux xspi driver suppport. Add the flash and psram driver support
based on xspi driver.

Signed-off-by: Ruijia Wang <ruijia.wang@nxp.com>
2025-10-24 08:56:59 -07:00
Jun Lin
d5aad385c1 drivers: i2c: npcx: add support for NPCKn variant
In NPCXn variant, the I2C peripheral hardware uses FIFO for data
transfer, while in NPCKn variant, it uses DMA.
This change separates the FIFO-specific code from the common controller
logic and adds support for DMA mode.

Signed-off-by: Mulin Chao <mlchao@nuvoton.com>
Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2025-10-24 08:56:39 -07:00
S Mohamed Fiaz
4c33c7e24a drivers: i2c: silabs: remove dev arg from PM state lock helpers
Dropped the device argument from i2c_silabs_pm_policy_state_lock_get/put.
Updated all internal usage.

Signed-off-by: S Mohamed Fiaz <Fiaz.Mohamed@silabs.com>
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-10-24 08:55:25 -07:00
S Mohamed Fiaz
fa3087f8c4 drivers: i2c: silabs: Update i2c driver with HAL changes
Updated the I2C driver for EFR Series 2 devices based on the
design improvements in the SiSDK I2C implementation

Signed-off-by: S Mohamed Fiaz <Fiaz.Mohamed@silabs.com>
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-10-24 08:55:25 -07:00
Mickael Bosch
d27b654eb5 drivers: dac: add AD56x1 devices
The Analog Device AD5601, AD5611, and AD5621 devices are 8, 10 and 12
bits DAC respectively.

These devices use a 16 bits SPI communication protocol.
The 2 first bit encode the low power mode (this driver do not use the
low power mode, it always run in the 'normal' mode).
The next 14 bits contain the left aligned value. The 2, 4, or 6
remaining bits (depending on the resolution) are set to 0.

Signed-off-by: Mickael Bosch <mickael.bosch@linux.com>
2025-10-24 08:55:03 -07:00
Marko Sagadin
f3b3739fd8 drivers: spi: enhance spi shell
This commit enhances the SPI shell in a number of different ways:
- Previously only spi buses could be specified in the shell.
  Now both spi buses and spi devices (physical device on the spi bus,
  not the device struct) can be specified.
- Both spi buses and spi devices can be specified by their node name or
  by any of their node labels.
- Instead of having a single instance of a spi config struct, each spi
  bus/device has it's own dedicated config. This means that
  users only have to configure spi config once for each device and use
  them freely, without needing to reconfigure them every time after
  switching between different spi buses/devices.
- Spi devices get their spi configs automatically from the devicetree at
  compile time. This means that once a good working configuration is
  found for a spi device, that can be specified as a "default" in the
  devicetree.
- Spi devices don't need to have their status set to "okay" or be
  initialized by their driver to be accessible from the spi shell. As
  long as the spi bus that they are on has status="okay", they can
  be accessed.
- When changing a cs pin with spi cs command, the spi device/bus
  needs to first be specified before specifying the gpio device.
  The nested dynamic subcommands enable users to autocomplete both
  of the arguments.

Implementation details

- It was possible to gather all the information about the spi devices
  from the devicetree at the compile time, but not for the spi buses.
  For the spi devices we have a way to get spi device nodes that are
  on an okay spi bus with a devicetree macros and extract data from
  those nodes. For the spi buses that is not possible,
  since there is no macro to get all spi bus nodes at once.
- So, for the spi buses this discovery step has to be done at the
  runtime, with the help of SYS_INIT macro and shell_device_filter
  function.
- Since we now allow users to either specify a spi bus or a spi device
  by their node label or their node name, we needed to have a way to map
  those strings to the correct spi config struct, so we can later pass
  it to the spi API functions or do some configuration on it. That is
  made possibly by the find_spec_by_label and the two arrays,
  spi_things and maps.

Signed-off-by: Marko Sagadin <marko.sagadin42@gmail.com>
2025-10-24 08:54:43 -07:00
Josuah Demangeon
c765b99887 drivers: video: sw_generator: support test pattern CID
Add an always-on CID for enabling the test pattern, which makes
it possible to use it in tests enabling the test first enabling
the pattern.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2025-10-24 08:52:57 -07:00
Michael Klammt
0876b5a2de drivers: gpio: fix SN74HC595 reset GPIO prop name
The reset GPIO for the SN74HC595 driver was not working anymore since
c407fbc. That commit made it optional among other changes but
accidently removed the s from reset_gpios property name causing the
driver not being able to retrieve the specified reset-gpios property
from the devicetree anymore. Add the missing s back to fix this.

Signed-off-by: Michael Klammt <michael.klammt@automatic-research.de>
2025-10-24 11:42:42 +02:00
Axel Utech
cf5fc97b06 drivers: dma: stm32: enable isr only if needed
Improve the STM32 DMA driver to only enable transfer and half-transfer
interrupts if the interrupt handler has effects beside clearing the
isr flag. This improves system performance as unnecessary interrupts
are no longer raised by the hardware.

Signed-off-by: Axel Utech <utech@sofiha.de>
2025-10-24 11:35:03 +02:00
Jason Yu
ce3a3da9dd drivers: gpio: gpio_mcux: Fix port index mismatch issue
When GPIO works with IOPCTL, the PIO instance offset in IOPCTL
can't be calculated easily. It should be recorded in DTS based on
SOC integration.
When IOPCTL is used, add PIO reigster address in DTS, gpio_mcux
driver will configure the PIO register based on this address.

Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
2025-10-24 11:34:53 +02:00
Jason Yu
69f797c6d2 drivers: gpio: gpio_mcux: Improve IRQ control macro usage
Add more direct macro GPIO_IRQ_CTRL to control different
IRQ implementation.

Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
2025-10-24 11:34:53 +02:00
Jason Yu
2e64d67fad drivers: gpio: gpio_mcux: Fix bug that cannot set IOPCTL drive strength
The macro FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH should only be used
for PORT but not IOPCTL.

Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
2025-10-24 11:34:53 +02:00
Bjarki Arge Andreasen
306c3d483e drivers: nrf: remove handling of cross domain pins
Remove the handling of cross domain pins from nrf drivers. To use
cross domain in tests, force on constlat and disable power domains
for the test.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2025-10-24 11:33:28 +02:00
Sunil Abraham
158cb294be drivers: clock_control: SAM D5x/E5x: add more functionality
Add more functionality in clock control driver.
Implement bootup clock initialization, async on and set_rate API.

Signed-off-by: Sunil Abraham <sunil.abraham@microchip.com>
2025-10-24 11:32:30 +02:00
Sai Santhosh Malae
9f53d7e270 drivers: gpio: silabs-siwx91x: Refactor config structures
Drop usage of `pcfg` and `pdata` in favor of unified `cfg`
for common configuration and `port_cfg`, `port_data` for
port-specific configurations.

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-10-24 11:32:20 +02:00
Sai Santhosh Malae
77f5ddadec drivers: gpio: silabs-siwx91x: clang format corrections
Apply clang format corrections

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-10-24 11:32:20 +02:00
Sai Santhosh Malae
0ad01eee42 drivers: gpio: silabs-siwx91x: Device runtime PM
This commit enables the pm device runtime support
for the siwx91x gpio driver.

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-10-24 11:32:20 +02:00
Sai Santhosh Malae
da94b1afbf drivers: gpio: silabs-siwx91x: Differentiate port count
Add the port_count field to the configuration structure
and allocate different sizes for the ports array based
on whether the node is HP or ULP.

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-10-24 11:32:20 +02:00
S Mohamed Fiaz
082f5b5025 driver: i2s: i2s_silabs_siwx91x: Add pm device support for i2s driver
This commit enables the pm device driver support
for the i2s_silabs_siwx91x driver.

Signed-off-by: S Mohamed Fiaz <Fiaz.Mohamed@silabs.com>
2025-10-24 11:32:06 +02:00
Khoa Nguyen
7d438adcf7 drivers: flash: Initial support Flash-LP driver for Renesas RA
Initial support Flash-LP driver for Renesas RA

Signed-off-by: Khoa Nguyen <khoa.nguyen.xh@renesas.com>
Signed-off-by: Phi Tran <phi.tran.jg@bp.renesas.com>
2025-10-24 11:31:43 +02:00
Khai Cao
78cb9c5eb2 drivers: i2c: Initial support for i2c sci driver on Renesas RA
First commit to add support for Renesas RA i2c sci driver

Signed-off-by: Khai Cao <khai.cao.xh@renesas.com>
2025-10-24 09:45:22 +03:00
Emilio Benavente
bb5904af32 drivers: display: Add co5300 support.
Added driver controller co5300 in an effort
to support the zc143ac72mipi shield.

Signed-off-by: Emilio Benavente <emilio.benavente@nxp.com>
2025-10-24 09:44:22 +03:00
Rex Chen
efab1ca23b drivers: wifi: nxp: Add libcsi feature
CSI feaure switch to use static library.

A.Binary blob origin:
https://github.com/NXP/wifi_nb_fw/raw/nxp-v4.2.2/

B.Type of blob (precompiled library, firmware image):
Precompiled library

C.Zephyr module that the blob(s) will be referenced from:
wifi_nxp

D.Brief description of what the blob(s) do:
Implemented an algorithm for processing CSI information

E.What other components do the blob(s) depend on, if any?
Does not depend on any component

F.License the blob(s) are distributed under:
LA_OPT_NXP_Software_License

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2025-10-24 09:44:12 +03:00
John Batch
7fe5875aac drivers: adc: Infineon AutAnalog SAR ADC driver
Adds AutAnalog SAR ADC driver files to support ADC conversions in the
PCSOC Edge family of MCUs.

Signed-off-by: John Batch <john.batch@infineon.com>
2025-10-24 09:44:03 +03:00
Ian Morris
0a5427b0fe drivers: spi: renesas_ra8: fix for issue with gpio based chip select
This patch fixes an issue in the SPI driver that caused the chip select
line to remain low after a transaction completed (when using a GPIO and
operating in non-interrupt mode).

Signed-off-by: Ian Morris <ian.d.morris@outlook.com>
2025-10-24 09:43:31 +03:00