Commit graph

28,390 commits

Author SHA1 Message Date
Guillaume Gautier
a0ffee2b92 drivers: spi: stm32: add support for baudrate prescaler bypass
Some STM32 SPI have the ability to bypass the baudrate prescaler, which is
equivalent to having a prescaler of 1.
Adds this new value in the prescaler calculation if available.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-12-05 11:09:59 -05:00
Matthias Alleman
476483075c drivers: input: input_chsc5x: fix sda and scl being pulled low
The CHSC5X chip requires reads to be aligned to multiples of 4 bytes.
If the read length is not a multiple of 4, the device pulls SDA/SCL low
for about 140 ms. The IC_TYPE address is corrected to 0x80.

Signed-off-by: Matthias Alleman <matthias.alleman@basalte.be>
2025-12-05 13:39:48 +02:00
Julien Racki
dc6d5ae970 drivers: ethernet: stm32: Add Port Selection
Add Port Selection for the N6 series.
This allows to run ethernet at 10mbs, 100mbs or 1000mbs.

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2025-12-05 13:39:24 +02:00
Johan Hedberg
69946a1253 drivers: crypto_mbedtls_shim: Fix build with Clang/LLVM
drivers/crypto/crypto_mbedtls_shim.c:310:3: error: label followed by a
declaration is a C23 extension [-Werror,-Wc23-extensions]
                 uint16_t tag_len = ctx->mode_params.ccm_info.tag_len;
                 ^

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2025-12-05 13:38:37 +02:00
Jordan Yates
2c47b2d2a3 i2c/i3c: rtio: explicit zeroing of SQE flags
Explcitly zero the flags of the SQE obtained from `rtio_sqe_acquire`
when the `rtio_sqe_prep_*` helpers aren't used (the helpers memset the
entire struct to 0).

The flags must be reset to ensure the `RTIO_SQE_TRANSACTION` and
`RTIO_SQE_CHAINED` are not retained from a previous SQE.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-05 10:55:22 +02:00
Attie Grande
3b16975c64 drivers: sdmmc: stm32: introduce cache flush & invalidation for DMA
Introduce steps to maintain cache coherence around DMA accesses to the
underlying SD / eMMC storage.

Signed-off-by: Attie Grande <attie.grande@argentum-systems.co.uk>
2025-12-05 10:55:11 +02:00
Anthony Williams
07b300ee4f sensor: rm3100: Remove duplicate edata header encoding when streaming
Remove the manual encoding of edata->header.channels and
edata->header.timestamp as these are now handled during rm3100_encode()

Signed-off-by: Anthony Williams <anthony289478@gmail.com>
2025-12-05 10:54:53 +02:00
Anthony Williams
640a696cc4 sensor: rm3100: Use rm3100_encode to populate cycle_count during stream.
Use rm3100_encode() to populate cycle_count info when
configured in streaming mode.

Previously when configured for streaming, cycle_count would
be 0 and rm3100_convert_raw_to_q31 would default to always
use the 600hz divider resulting in values off by a factor of 2.

Signed-off-by: Anthony Williams <anthony289478@gmail.com>
2025-12-05 10:54:53 +02:00
Anthony Williams
ca2ed7de3d sensor: rm3100: Correct LSB/uT scale factor comment in rm3100_decoder.c
The scale factor when used as a divider from the datasheet specifies
units in LSB/uT not uT/LSB. This change corrects the comment to reflect
the correct units for the divider.

Signed-off-by: Anthony Williams <anthony289478@gmail.com>
2025-12-05 10:54:53 +02:00
Jilay Pandya
4d68fb8be5 drivers: tmc2209: use m0/m1-gpios instead of msx-gpios
unify msx-gpios for step-dir drivers. tmc2209 is an exception
for now and hence migrating to m0/m1-gpios instead of msx-gpios.

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-12-05 10:54:41 +02:00
Fabio Baltieri
6850470587 i2c: shell: make the buffer configurable
Add a Kconfig option to tweak the i2c shell command buffer size,
similarly to other shell commands.

This is allocated on the stack so add a note about it.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-12-05 10:54:31 +02:00
Zhaoxiang Jin
f052dbb68f drivers: counter: lptmr: Fix get_pending_int wrong implementation
Originally, function 'mcux_lptmr_get_pending_int' checks if both
TCF and TIE flags are set to determine if an interrupt is pending.
But function 'LPTMR_GetStatusFlags' only returns the status flags,
that is we will never get TIE flag from it. then the function
always returns false.

The correct approach is to read the CSR register directly and check
if both TIE and TCF bits are 1. If yes, there's a pending interrupt;
if not, there isn't.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-12-05 10:54:01 +02:00
Seppo Takalo
acf375ed48 drivers: modem_cellular: Switch chat to UART when CMUX closes
When CMUX channels are closed, UART goes back to AT command mode.
Switch Chat pipe to use the plain UART as DLCI2 pipe does not
exist anymore.

Add a small delay, so the remote end have time to clean up and
go back to normal AT command mode.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-12-05 10:53:25 +02:00
Badr Bacem KAABIA
ceac2e6c0f drivers: wifi: airoc: Fallback to user security on scan fail
In the `airoc_mgmt_connect` function, if the user provides a security
type of `WIFI_SECURITY_TYPE_NONE` along with a PSK, the driver attempts
to scan for the AP to determine the correct security protocol.

However, if this scan fails or does not find the AP, the driver would
previously fail the connection attempt instead of using the security
type originally provided by the user.

This change ensures that if the scan does not resolve the security
type (`WHD_SECURITY_UNKNOWN`), the driver falls back to using the
security type from the connection parameters. This makes the connection
process more robust and resilient to scan failures.

Signed-off-by: Badr Bacem KAABIA <badrbacemkaabia@gmail.com>
2025-12-05 10:52:44 +02:00
Farsin Nasar V A
e7b40aeb15 drivers: rtc: microchip: Add rtc driver
Add rtc driver for Microchip RTC G1.

Signed-off-by: Farsin Nasar V A <farsin.nasarva@microchip.com>
2025-12-04 17:12:33 -05:00
Kevin Chan
bde681d27a drivers: dma: add UART async. logic
- Modified DMA configuration and logic for UART Async.

Signed-off-by: Kevin Chan <kevin.chan3@infineon.com>
2025-12-04 17:12:23 -05:00
Kevin Chan
203c655343 Drivers: Serial: Add PDL based UART Async. for PSE84 and PSC3
- add UART Async. driver code
- Remove references to cat1-uart-pdl from devicetree references

Signed-off-by: Kevin Chan <kevin.chan3@infineon.com>
2025-12-04 17:12:23 -05:00
Julien Racki
086b873667 drivers: watchdog: Add the support of the IWDG Early Wakeup
Add the support of the IWDG early wakeup.
Gives the possibility for the user to set a
callback that will be called before an IWDG reset.

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2025-12-04 17:12:08 -05:00
Julien Racki
d3baaac688 drivers: watchdog: Add Kconfig option for the IWDG Early Wakeup
Add a Kconfig option that is enabled if the soc's
IWDG support early wakeup.

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2025-12-04 17:12:08 -05:00
Swamidas Nampalli
c2f8f9813d drivers: wifi: siwx91x: Drop the loop back packets
Added a MAC-layer filter to discard frames whose source MAC address
matches the devices own MAC address. These packets are looped-back
frames that do not need to be processed again by the network stack.

Dropping such frames early improves correctness, avoids redundant RX
processing, and reduces load on the IPv4/IPv6 protocol handlers.

This patch is a workaround for a bug in the NWP

Signed-off-by: Swamidas Nampalli <Swami.Das@silabs.com>
2025-12-04 14:05:47 -05:00
Jaro Van Landschoot
8407f1766f drivers: pwm: sam: Add period and fault events
The SAM4S pwm supports several events. This commit
implements the events when a channel period has ended
or a fault event has occured.

Signed-off-by: Jaro Van Landschoot <jaro.vanlandschoot@basalte.be>
2025-12-04 14:05:13 -05:00
Jaro Van Landschoot
c6e64a1337 drivers: pwm: extend API to support events
Extend the PWM API to support events, as some
controllers allow interrupts if e.g., a pwm period
has ended or a fault occured.

Signed-off-by: Jaro Van Landschoot <jaro.vanlandschoot@basalte.be>
2025-12-04 14:05:13 -05:00
David Jewsbury
6450eaab48 drivers: nrf_auxpll: Add CHECK_DTS_BINDING_VS_MDK macro
Macro added to compare the devicetree bindings against
values in the MDK to clean up code and check out-div
bindings.

Signed-off-by: David Jewsbury <david.jewsbury@nordicsemi.no>
2025-12-04 14:04:54 -05:00
Emil Hammarström
9538b4f0de drivers: sensor: lsm6dso: Add support for Accel LP filter
Add device tree support for enabling the second low pass filter
(LPF2) for the accelerometer output.

This adds additional low pass on top of the default ODR/2 from
the LPF1 output.

Signed-off-by: Emil Hammarström <emil.a.hammarstrom@gmail.com>
2025-12-04 14:02:57 -05:00
Emil Hammarström
54cd6a3963 drivers: sensor: lsm6dso: Change log level for failures during init
Log level in failures were changed from DBG to ERR so that the reason of
initialization failure may be known.

Signed-off-by: Emil Hammarström <emil.a.hammarstrom@gmail.com>
2025-12-04 14:02:57 -05:00
Valerio Setti
4cf7cd5748 drivers: crypto: mbedtls_shim: allow tag len to be specified in CCM
Retrieve the desired tag length from the "struct cipher_ctx" being passed
to "cipher_begin_session()" when using CCM.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2025-12-04 14:01:02 -05:00
Mathieu Choplain
518725cb3b drivers: rtc: stm32: remove ll in driver's file name
The `ll` part of driver's file name indicates that the implementation uses
the STM32Cube Low Level ("LL") library, which is not interesting because
there is only *one* STM32 driver implementation anyways. Addtionnally, the
presence of `ll` among STM32 drivers is not consistent.

Get rid of it for this class's driver to match most other STM32 drivers.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 14:00:34 -05:00
Mathieu Choplain
d0113285cf drivers: i2s: stm32: remove ll in driver's file name
The `ll` part of driver's file name indicates that the implementation uses
the STM32Cube Low Level ("LL") library, which is not interesting because
there is only *one* STM32 driver implementation anyways. Addtionnally, the
presence of `ll` among STM32 drivers is not consistent.

Get rid of it for this class's driver to match most other STM32 drivers.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 14:00:34 -05:00
Mathieu Choplain
967b42cbfe drivers: i2c: stm32: remove ll in drivers' file name
The `ll` part of drivers' file name indicates that the implementation uses
the STM32Cube Low Level ("LL") library, which is not interesting because
there is only *one* STM32 driver implementation anyways (per IP variant).
Addtionnally, the presence of `ll` among STM32 drivers is not consistent.

Get rid of it for drivers of this class to match most other STM32 drivers.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 14:00:34 -05:00
Mathieu Choplain
96632cd686 drivers: counter: stm32: remove ll in drivers' file name
The `ll` part of drivers' file name indicates that the implementation uses
the STM32Cube Low Level ("LL") library, which is not interesting because
there is only *one* STM32 driver implementation anyways (per IP variant).
Addtionnally, the presence of `ll` among STM32 drivers is not consistent.

Get rid of it for drivers of this class to match most other STM32 drivers.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 14:00:34 -05:00
Mathieu Choplain
6cb3ea5510 drivers: spi: stm32: remove ll in driver's file name
The `ll` part of driver's file name indicates that the implementation uses
the STM32Cube Low Level ("LL") library, which is not interesting because
there is only *one* STM32 driver implementation anyways. Addtionnally, the
presence of `ll` among STM32 drivers is not consistent.

Get rid of it for this class's driver to match most other STM32 drivers.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 14:00:34 -05:00
Mohamed Azhar
3c79fb39a0 drivers: pinctrl: microchip: update pinctrl driver for Port G1
Updates G1 pinctrl driver

Signed-off-by: Mohamed Azhar <mohamed.azhar@microchip.com>
2025-12-04 05:24:51 -05:00
Seppo Takalo
f6f4212710 drivers: modem: Implement support for RING indicator
Use ring indicator to wake up the CMUX device
from sleep.
Only used for runtime power management, but same event
could be used for initiating idle -> connected as well.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-12-04 05:24:38 -05:00
Seppo Takalo
94246742fb drivers: modem: cellular: Use k_pipe instead of ringbuffer
Ringbuffer is not safe in ISR but k_pipe without waiting is.
So use pipe for events, so that possible GPIO callbacks from
ISR content can post events.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-12-04 05:24:38 -05:00
Seppo Takalo
af0a788bd8 drivers: modem: Implement runtime power management for CMUX
CMUX driver can enable the support for idle-timer in
devicetree and can be requested to shut down the pipe
during sleep.

Then UART backend put the actual device into sleep when
pipe is closed.

Waking up is requested by sending data to DLC pipe
or by manually opening the uart_pipe.
Modem may request similar wake-up by a RING interrupt which
would open the same pipe.

When UART is powered and pipe is not closed, CMUX wake-up
procedure is automatic. Either end may initiate the wake-up.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-12-04 05:24:38 -05:00
Yves Wang
67e0217399 drivers: edac: Add NXP EDAC driver
Add edac driver for NXP's ERM and EIM peripherals. It can inject ECC
error to specific channel within EIM and then report the error address,
syndrome and count within ERM.

Signed-off-by: Yves Wang <zhengjia.wang@nxp.com>
2025-12-04 05:24:28 -05:00
Mathieu Choplain
3b745a1214 drivers: video: stm32_dcmi: configure proper DMA burst length
The burst length unit is bytes, not number of transfers. This had not been
an issue since the DMA driver historically ignored the values, but has now
become one since they are used and (most importantly for us) validated.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 05:23:02 -05:00
Mathieu Choplain
4aa5e95135 drivers: uart: stm32: configure proper DMA burst length
The burst length unit is bytes, not number of transfers. This had not been
an issue since the DMA driver historically ignored the values, but has now
become one since they are used and (most importantly for us) validated.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 05:23:02 -05:00
Mathieu Choplain
be9c5398ae drivers: i3c: stm32: configure proper DMA burst length
The burst length unit is bytes, not number of transfers. This had not been
an issue since the DMA driver historically ignored the values, but has now
become one since they are used and (most importantly for us) validated.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 05:23:02 -05:00
Mathieu Choplain
9e14885e14 drivers: i2s: stm32: configure proper DMA burst length
The burst length unit is bytes, not number of transfers. This had not been
an issue since the DMA driver historically ignored the values, but has now
become one since they are used and (most importantly for us) validated.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 05:23:02 -05:00
Mathieu Choplain
f3499071cd drivers: i2c: stm32: configure proper DMA burst length
The burst length unit is bytes, not number of transfers. This had not been
an issue since the DMA driver historically ignored the values, but has now
become one since they are used and (most importantly for us) validated.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 05:23:02 -05:00
Mathieu Choplain
c4d884c7ed drivers: adc: stm32: configure proper DMA burst length
The burst length unit is bytes, not number of transfers. This had not been
an issue since the DMA driver historically ignored the values, but has now
become one since they are used and (most importantly for us) validated.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 05:23:02 -05:00
Mathieu Choplain
208b3ef5ba drivers: spi: stm32: configure proper DMA burst length
The burst length unit is bytes, not number of transfers. This had not been
an issue since the DMA driver historically ignored the values, but has now
become one since they are used and (most importantly for us) validated.

Fixes broken 16-bit on STM32N6 series.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 05:23:02 -05:00
Mathieu Choplain
926f9f456b drivers: clock_control: stm32u5: fix frequency range check for scale
The range check should be inclusive: scale 4 allows *up to* 25 MHz, scale 3
*up to* 55 MHz, etc.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 05:22:26 -05:00
Mathieu Choplain
1f70c795c7 drivers: clock_control: stm32u5: add configurable voltage scale support
Add support for the new `voltage-scale` property on the STM32U5-specific
Power Controller binding.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-04 05:22:26 -05:00
Sai Santhosh Malae
78f47a362f drivers: adc: siwx91x: Return raw ADC value
Instead of returning a converted ADC reading, return the
raw ADC sample. Conversion is left to the user based on
the selected ADC mode (single-ended or differential).

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-12-04 05:21:40 -05:00
Sai Santhosh Malae
f4c152ab47 drivers: adc: siwx91x: Add ref_internal to device API
The Siwx91x ADC reference voltage is configurable rather than fixed.
Expose `ref_internal` in the device API so the driver can retrieve the
reference voltage from the device tree instead of assuming a constant
value.

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-12-04 05:21:40 -05:00
Alvis Sun
55156419bc drivers: sensor: npcx: add sensor v2t support for npck3
Introduces the sensor driver managing the V2T module for
temperature readout.

Signed-off-by: Alvis Sun <yfsun@nuvoton.com>
2025-12-04 05:21:24 -05:00
Alvis Sun
e69bbfc55c drivers: adc: npcx: add-v2t support for npck3
Please note that when performing conversions,
the selected channels must all be of the same type
(either ADC raw or V2T.)

Mixing ADC and V2T channels in a single conversion sequence is
not supported.

Signed-off-by: Alvis Sun <yfsun@nuvoton.com>
2025-12-04 05:21:24 -05:00
Alvis Sun
b4a9e6f0b6 drivers: adc: npcx: add adc driver support for npck3
As title.

Signed-off-by: Alvis Sun <yfsun@nuvoton.com>
Signed-off-by: Mulin Chao <mlchao@nuvoton.com>
2025-12-04 05:21:24 -05:00