Commit graph

25,525 commits

Author SHA1 Message Date
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
Lin Yu-Cheng
ad320ee4f2 driver: input: implement input PM function
Add the pm device for rts5912 input driver

Signed-off-by: Lin Yu-Cheng <lin_yu_cheng@realtek.com>
2025-10-24 01:12:49 +03:00
Wajdi ELMuhtadi
ffdf184b86 drivers: sensor: wsen_pdms_25131308XXX05: add sensor driver
Add wsen_pdms_25131308XXX05 driver.

Signed-off-by: Wajdi ELMuhtadi <wajdi.elmuhtadi@we-online.com>
2025-10-24 01:12:21 +03:00
Wajdi ELMuhtadi
c555a2969d manifest: hal_wurthelektronik: update to sensors sdk v2.7.0
Update the hal to have the latest Sensors SDK
version 2.7.0

Signed-off-by: Wajdi ELMuhtadi <wajdi.elmuhtadi@we-online.com>
2025-10-24 01:12:21 +03:00
Felix Wang
1f2ec45a12 drivers: Counter: TPM improvement
1.Include barrier.h to fix barrier_dsync_fence_full() not found issue
2.Support multiple channels for alarm function

Signed-off-by: Felix Wang <fei.wang_3@nxp.com>
2025-10-24 01:12:05 +03:00
Siratul Islam
0974e9b471 drivers: display: add HUB12 LED matrix driver
Add driver for HUB12 interface monochrome LED matrix displays.

Features:
- 32x16 pixel resolution, 1-bit monochrome (PIXEL_FORMAT_MONO01)
- SPI-based data transfer with shift registers
- Configurable brightness control
- Thread-safe framebuffer access with semaphore

The driver implements the standard Zephyr display API

Signed-off-by: Siratul Islam <sirat4757@gmail.com>
2025-10-24 01:10:57 +03:00
George Stefan
e25a7417f1 drivers: ieee802154: mcxw: disable poll optimization
The 802.15.4 PHY has the poll optimization enabled by default.
Disable it until the driver state machine is updated.

Signed-off-by: George Stefan <george.stefan@nxp.com>
2025-10-24 01:10:20 +03:00
Abhinav Kulkarni
0d2e8954a0 boards: shields: nxp_m2_wifi_bt: overlay update
- Updated shield overlay file for RT1060 with sdio power and reset pins
- added device tree node in sdhc for sd reset pin
- added power gpio toggle logic

Signed-off-by: Abhinav Kulkarni <abhinav.kulkarni@nxp.com>
2025-10-23 16:04:22 -04:00
Alain Volmat
38a21cc1a2 video: introduce video_set_compose_format helper
Some devices allow for downscale / upscale via the set_selection
compose API. When using it, it is necessary to perform a
set_selection of the compose target prior to setting the format.
In order to allow non-compose aware application to benefit from
it, introduce a helper which take care of setting the compose
prior to setting the format.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-10-23 16:03:10 -04:00
Alain Volmat
126aaf6b72 video: dcmipp: expose dcmipp caps for all 3 pipes.
Currently the DCMIPP driver rely on a Kconfig in order to
select the right sensor resolution / format to pick.
This also makes the exposure of caps easier since it can
be exposed as:
  DUMP pipe: same caps as mentioned in Kconfig
  MAIN pipe: any format supported on this pipe and resolution
             starting at sensor selected resolution down to
             64 times smaller (which is the maximum of the
             downscale)
  AUX pipe: same as MAIN except without the semi-planar and
            planar formats

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-10-23 16:03:10 -04:00
Ryan Erickson
631dbd98b4 drivers: can: tcan4x5x: Add device PM support
Add support for device runtime power management.
Suspending the device will place it into sleep mode, its lowest
power state.
All config will be lost when suspending the device.
Do not allow suspending the device if it is started or has
RX filters registered.
The application has to reconfigure the CAN device to resume
expected operation.

Signed-off-by: Ryan Erickson <ryan.erickson@ezurio.com>
2025-10-23 16:02:36 -04:00
Jérôme Pouiller
1f1f3e4594 drivers: spi: siwx91x: Use GPDMA rather than UDMA
Silabs siwx91x offer two DMA hardware block: GPDMA and UDMA.

While UDMA has some benefit when running in low power modes, GPDMA offer
better performances. So GDMA is probably better suited for SPI device.

Ideally, we would like to leave the ability to switch back to UDMA.
Unfortunately, UDMA and GPDMA are not configured in the same way:
  - the maximum length of the block are different (1024 or 2048 for UDMA
    and 4096 for GPDMA)
  - the burst length is different

So, we only support GPDMA.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-10-23 16:01:37 -04:00
Jérôme Pouiller
0594a1872c drivers: spi: siwx91x: Fix indentation
Since various macros don't end with a colon, the code formatters give bad
results. Let's fix that.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-10-23 16:01:37 -04:00
Jérôme Pouiller
f563f123aa drivers: spi: siwx91x: Add support for dma_slot attribute
The siwx91x platform provides two DMA block: UDMA and GPDMA. GPDMA require
the dma_slot attribute.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-10-23 16:01:37 -04:00
Jérôme Pouiller
627aeb84f7 drivers: spi: siwx91x: Fix memory alignements
The DMAs expect a 32 bits aligned address as source.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-10-23 16:01:37 -04:00
Jérôme Pouiller
fb0dd841ff drivers: dma: siwx91x: Check buffers alignments
GPDMA hardware block has some requirement regarding the buffers alignments.

Note the previous condition was too permissive. It ignored
source_burst_length during the check of the transaction size.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-10-23 16:01:37 -04:00