Commit graph

28,390 commits

Author SHA1 Message Date
Tim Pambor
91d3d95313 drivers: ethernet: adin1100: add support for hardware reset
Add support for hardware reset via GPIO in the ADIN1100 PHY driver.

The reset pin is configured via device tree using the reset-gpios
property.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2025-10-21 14:16:38 +03:00
Etienne Carriere
f6db1cb09a drivers: disk: sdmmc_stm32: test HAL init/deinit return values
Add tests of the value returned by initialization and deinitialization
HAL functions.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-21 14:16:19 +03:00
Etienne Carriere
4575afa515 drivers: disk: sdmmc_stm32: don't assume HAL return value is an int
Clarify HAL return value is of type HAL_StatusTypeDef and may not
be a int. This change aims preventing one from mixing standard "errno"
int return values and STM32 HAL return value finding misleading
implementation in existing code.

No functional change.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-21 14:16:19 +03:00
Etienne Carriere
fc44d0eeb0 drivers: disk: sdmmc_stm32: don't mix HAL return values and error
Ensure STM32 SDMMC driver returns proper errno values and not HAL return
codes.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-21 14:16:19 +03:00
Etienne Carriere
f81b1e81ab drivers: eeprom: stm32: test HAL return value
Add missing test of HAL_FLASHEx_DATAEEPROM_Unlock() return value.

By the way, add a error trace message when failing to relock the
EEPROM after we failed to program it.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-21 14:16:10 +03:00
Etienne Carriere
e943878418 drivers: eeprom: stm32: don't mix HAL return value and errno
Correct eeprom_stm32_write() to return a valid errno instead
of mixing HAL return values and errno return values.

Clarify HAL return value is of type HAL_StatusTypeDef and not an
int in eeprom_stm32_read().

Remove printing of HAL_FLASHEx_DATAEEPROM_Lock() error code since
not very useful.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-21 14:16:10 +03:00
Etienne Carriere
0e39d34998 drivers: flash: stm32: test HAL functions return value
Add missing test of some HAL fnuctions return value.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-21 14:15:59 +03:00
farsin NASAR V A
574cff532d drivers: reset: microchip: Add reset driver
Add reset driver for Microchip RSTC G1 IP.

Signed-off-by: farsin NASAR V A <farsin.nasarva@microchip.com>
2025-10-21 14:15:33 +03:00
David Jewsbury
eb605628ae drivers: audio: dmic_nrfx: Update AUXPLL control with frequency macros
Frequencies being for AUXPLL were register assignments and
not actual frequencies.

Signed-off-by: David Jewsbury <david.jewsbury@nordicsemi.no>
2025-10-21 14:15:23 +03:00
Ben Marsh
ce08f16a05 drivers: flash: stm32_{q|o|x}spi: Fix write unprotect logs
The STM32 QSPI, OSPI, and XSPI drivers support sending the ULBPR command
for flash ICs that require unlocking before writing to. This is done
conditionally based on the requires_ulbpr devicetree property.

Previously the driver would always log "Write Un-protected", even if a
write un-protect was not attempted. Fix this so that "Write Un-protected"
is only logged when a write un-protect is attempted and succeeds.

Signed-off-by: Ben Marsh <ben.marsh@helvar.com>
2025-10-21 14:14:48 +03:00
Jeppe Odgaard
46de640492 drivers: sensor: qdec_stm32: check counts/revoultion compile time
Use build assert to check counts_per_revolution DTS value compile time to
prevent runtime failure and also decrease flash usage slightly.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2025-10-21 14:14:38 +03:00
Nhut Nguyen
9daff84666 drivers: eeprom: fm25xxx: Fix format warning
Use %zu for size_t to avoid build warning with arm64 compiler

Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2025-10-21 14:14:28 +03:00
Immo Birnbaum
61c9cbbbf1 drivers: ethernet: xlnx_gem: obtain AMBA AHB bus width from config register
Obtain the value for the AMBA AHB bus width (32 bit/64 bit/128 bit) from
the design_cfg5 register at init-time rather than specifying it in the
respective SoC's DT.

Signed-off-by: Immo Birnbaum <mail@birnbaum.immo>
2025-10-21 11:43:03 +03:00
Zhaoxiang Jin
96e70b08ef drivers: audio: Add dialog da7212 driver
Add dialog da7212 driver. dialog da7212
datasheet:https://www.farnell.com/datasheets/3962888.pdf

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-10-21 11:42:06 +03:00
Julien Racki
9c9d100839 drivers: clock: stm32: Move the MSI init after the LSE init
Moved the MSI init after the LSE init to respect the initialization flow
of the MSI PLL mode that need LSE to be enabled and ready.

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2025-10-21 11:41:33 +03:00
William Tang
7549d5155b drivers: can: mcux: flexcan: fix loop back error when CAN FD enabled
Fix mcux flexcan driver failed to transfer when both loop back mode
and CAN FD mode are enabled.

Transceiver Delay Compensation feature must be disabled in loopback
mode. For some platforms, both FDCTRL[TDCEN] and ETDC[ETDCEN] can
enable such feature. In this case, SDK API only configure ETDC register
and current driver do not clear ETDC[ETDCEN].

Fix this issue by add ETDC[ETDCEN] configuration according to SDK
macro `FSL_FEATURE_FLEXCAN_HAS_ENHANCED_BIT_TIMING_REG` vaule.

Test this commit on mimxrt1180_evk/mimxrt1189/cm33 and set both CAN FD
mode and loop back mode.

Signed-off-by: William Tang <william.tang@nxp.com>
2025-10-21 11:41:21 +03:00
Benjamin Cabé
ef2141987d drivers: sensor: ti_hdc302x: Fix double-promotion warnings
Change HDC_302X_TEMP_OFFSET_SCALE and HDC_302X_HUMIDITY_OFFSET_SCALE
from float literals to double literals to avoid implicit conversion
warnings when compiling with clang and -Wdouble-promotion flag.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-10-21 11:40:29 +03:00
Tony Han
802fdc4dd3 drivers: pwm: pwm_sam: update to support Soc SAMA7G5
Redefine some macros due to different naming scheme in the header file.
Get the clock rate from the device tree when 'SOC_ATMEL_SAM_MCK_FREQ_HZ'
is not defined.

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-10-20 19:19:20 -04:00
COUSSEMENT Stijn
523eed2d08 drivers: sensor: ti: Add TI temp sensor HDC302x
The HDC302X sensor driver is added,
you can use this driver to read temperature and humidity.
Also set an offset, upper and lower limits to get warned
when temperature or humidity get out of band.
The sensor is build for ultra low power applications.

Signed-off-by: COUSSEMENT Stijn <stijn.coussement@psicontrol.com>
2025-10-20 19:19:09 -04:00
Zhaoxiang Jin
c6033d58e5 drivers: sensor: pmc_tmpsns: Reduce floating-point operations
Reduce floating-point operations in the nxp_pmc_tmpsns.
Provide new calculation method without floating-point operations.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-10-20 19:18:36 -04:00
Zhaoxiang Jin
44bc475309 drivers: sensor: Enable NXP pmc tmpsns driver
This commit introduced NXP pmc temperature sensor
(pmc-tmpsns) driver.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-10-20 19:18:36 -04:00
Jeremy Dick
6a8fb9f5f2 drivers: display: st7567: Obey the column offset property
Shift the output to the display by the configured column offset

Signed-off-by: Jeremy Dick <jdick@pivotint.com>
2025-10-20 19:18:27 -04:00
Sunil Abraham
ecc9f6ce71 drivers: uart: microchip/g1: add more functionality
Add more functionality in uart driver.
Implement interrupt API.

Signed-off-by: Sunil Abraham <sunil.abraham@microchip.com>
2025-10-20 19:18:03 -04:00
Logan Saint-Germain
089ea66914 drivers: sensor: max30101: Enhanced sample_fetch to match datasheet
The max30101 allows to configure time slots in samples acquisition.
It is now supported by adding matrix mapping for the slot/fifo
indexing. When a channel is present multiple times, the resulting
sample from the `sensor_channel_get` is averaging each entry.
Added Die temperature sample acquisition with
`CONFIG_MAX30101_DIS_TEMPERATURE` Kconfig.

Signed-off-by: Logan Saint-Germain <l.saintgermain@catie.fr>
2025-10-20 19:17:51 -04:00
Logan Saint-Germain
52d0ad2c67 drivers: sensor: max30101: Enhanced driver to support triggers
The max30101 sensor driver doesn't support triggers.
Add `.trigger_set` API and corresponding Kconfig and
device tree parameters. Add `SENSOR_CHAN_AMBIENT_LIGHT`
and `SENSOR_TRIG_OVERFLOW`.

Signed-off-by: Logan Saint-Germain <l.saintgermain@catie.fr>
2025-10-20 19:17:51 -04:00
Logan Saint-Germain
8a1371c5d6 drivers: sensor: max30101: Enable support for multiple instance
The max30101 sensor driver doesn't support multiple instance.
Update Kconfig and maxim,max30101.yaml for instance based
configuration. Propagate changes over existing files.

Signed-off-by: Logan Saint-Germain <l.saintgermain@catie.fr>
2025-10-20 19:17:51 -04:00
Andre Heinemans
35396b1a0e drivers: memc_mcux_flexspi: force applying OVRDVAL
Enable this kconfig setting to force using a specific raw value for the
OVRDVAL field in the DLLCR registers.

This option gives more granularity than the 'data-valid-time' field in
the dts. The unit of 'data-valid-time' is nanoseconds while the unit of
OVRDVAL are raw delay cells.

Normally the 'data-valid-time' on any 'nxp,imx-flexspi-device' device
will set the OVRDVAL and OVRDEN fields in the DLLCR register
but works only when the 'rx-clock-source' is configured to '#0 External
input from DQS pad' and the frequency <= 100MHz.

Signed-off-by: Andre Heinemans <andre.heinemans@nxp.com>
2025-10-20 19:17:39 -04:00
Tahsin Mutlugun
36a3a4c1e0 drivers: pwm: max32: Simplify prescaler calculation
Replace the look-up table used to obtain the prescaler enumeration with
a simple multiplication.

Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
2025-10-20 19:16:00 -04:00
Furkan Akkiz
914e6a1948 drivers: counter: max32: Fix prescaler configuration
The existing formula assumed prescaler enumerations were consecutive,
which led to incorrect values being passed to HAL functions. Update
the code to calculate correct prescaler enumerations.

Signed-off-by: Furkan Akkiz <hasanfurkan.akkiz@analog.com>
2025-10-20 19:16:00 -04:00
Alain Volmat
bc8eb83c36 drivers: dma: stm32: avoid clear flags if hal_override on unexpected irq
In case of using HAL_OVERRIDE, avoid clearing the FIFO ERROR flag
before calling the HAL DMA IrqHandler so that the HAL DMA code
handling can be used.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-10-20 19:15:44 -04:00
Alain Volmat
110c61bfea drivers: dma: stm32: avoid clear TE in case of hal_override
If hal_override is set, avoid reporting an error and clear the
transfer error (TE) bit so that HAL code can properly handle it.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-10-20 19:15:44 -04:00
Anthony Williams
3158211391 sensor: icm45686: Use explicit VLA for fifo encoded data
The size of icm45686_encoded_data fifo_payload is guaranteed
to span the full number of frames read as it was allocated during
icm45686_event_handler() buf_len_required size.

This update suppresses the static analysis warning of
out of bounds memory access at index 1 by explicitly declaring
fifo_payload to be a VLA at the end of icm45686_encoded_data.

Signed-off-by: Anthony Williams <anthony289478@gmail.com>
2025-10-20 19:15:30 -04:00
Anthony Williams
d0d29aa5e2 sensor: icm45686: Swap ASSERT to CHECKIF in fifo decode
Change the __ASSERT on unsupported fifo packet header to
CHECKIF so the user can choose how to handle the invalid
packet.

Signed-off-by: Anthony Williams <anthony289478@gmail.com>
2025-10-20 19:15:30 -04:00
Anthony Williams
2df6c368ba sensor: icm45686: Implement AN-000364 fix for fifo corruption
When operating in streaming mode, a FIFO empty event, which
is caused by host reading the last byte of the last FIFO frame,
can cause FIFO data corruption.

During subsequent reads to the FIFO, the first  frame that arrives
after the empty condition will be corrupted. Once the issue occurs,
the internal state cannot recover and the FIFO must be flushed in
bypass mode to clear the corrupted state.

The current workaround from TDK is to read M-1 frames when M frames
are reported by fifo_count. Since M is fixed by the fifo_watermark
DT parameter, and in cases where fifo_watermark == 1, the watermark
trigger threshold is set to M + 1 frames and M frames are read out
during a watermark threshold event.

Signed-off-by: Anthony Williams <anthony289478@gmail.com>
2025-10-20 19:15:30 -04:00
Anthony Williams
ee63650541 sensor: icm45686: Print unsupported fifo packet on assert
When an unsupported fifo packet triggers an assert, it is
helpful to see the packet as a hex value to help when debugging.

Signed-off-by: Anthony Williams <anthony289478@gmail.com>
2025-10-20 19:15:30 -04:00
WenBin Zhang
9094e026f7 drivers: ethernet: eth_stm32 add tx async mode
Enable TX transmission asynchronous mode to enhance performance

Tested on the nucleo_h743zi board using samples/net/zperf

west build -b nucleo_h743zi/stm32h743xx samples/net/zperf/ --pristine
-- -DCONFIG_NET_CONFIG_MY_IPV4_ADDR=\"192.168.1.199\"

upload cmd:
```
//linux
iperf -s -l 1K -p 5001
iperf -s -l 1K -p 5002 -u

//shell
zperf tcp upload 192.168.1.109 5001 10 1K
zperf udp upload 192.168.1.109 5002 10 1K 300M
```

download cmd:
```
//shell
zperf tcp download 5001 192.168.1.199
zperf ucp download 5002 192.168.1.199

//linux
iperf -l 1K -c 192.168.1.199 -p 5001
iperf -l 1K -c 192.168.1.199 -p 5002 -u
```

before:
udp upload:   73.5Mbps/s
tcp upload:   71.3Mbps/s
udp download: 93.9Mbps/s
tcp download: 70.5Mbps/s

after:
udp upload:   92.2Mbps/s
tcp upload:   78.1Mbps/s
udp download: 93.7Mbps/s
tcp download: 75.2Mbps/s

Signed-off-by: WenBin Zhang <freey7955@gmail.com>
2025-10-20 14:23:56 -04:00
WenBin Zhang
ab093c29c9 drivers: ethernet: eth_stm32 tx_in_sem limit set to 1
tx_int_sem serves solely as a signal indicator and does not require signal
counting. Within eth_stm32_tx, the semaphore is reset each time a packet
is transmitted. Upon receiving the transmission completion signal, the
function exits. Signal counting is unnecessary. Change to a binary
semaphore.

Signed-off-by: WenBin Zhang <freey7955@gmail.com>
2025-10-20 14:23:56 -04:00
Gerard Marull-Paretas
f9cca217c3 drivers: flash: sf32lb_mpi_qspi_nor: add initial driver
Initial driver for the SF32LB MPI accessing QSPI NOR flash devices.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-10-20 14:23:43 -04:00
Gerard Marull-Paretas
ddc5810888 drivers: flash: spi_nor: add SPI_NOR_CMD_BE_32K_4B
Command was missing.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-10-20 14:23:43 -04:00
Mathieu Choplain
dca6b87668 drivers: usb: udc: stm32: handle multi-packet-Data OUT Control transfers
During a Host-to-Device Control transfer, an arbitrary amount of data is
sent from Host to the Device using OUT Data packets. If the total amount of
data to transfer, communicated via the wLength field of the SETUP packet,
exceeds the EP0 MaxPacketSize, several Data packets until all data has been
transfered.

Combined with HAL behavior, the STM32 driver did not handle this situation
properly and always ended reception after a single Data packet was received
regardless of whether or not all data had actually been received from Host.

Modify driver to handle this situation properly by keeping track of how
much data has been received and restarting transfers until we have received
everything the Host promised it would send.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-10-20 14:22:28 -04:00
Mathieu Choplain
2a0a6f5cca drivers: usb: udc: stm32: empty transfer queue when SETUP packet arrives
Drop all existing transfers in control endpoints' queue when a new SETUP
packet is received. Also use the appropriate net_buf API in a nearby place.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-10-20 14:22:28 -04:00
Stoyan Bogdanov
31abf236b4 drivers: gpio: cc23x0: Add power management to GPIO
Add PM support to cc23x0 GPIO driver.

Signed-off-by: Stoyan Bogdanov <sbogdanov@baylibre.com>
2025-10-20 11:35:41 -04:00
Tim Lin
0ea524e0ae drivers: flash: ite: Add ex_op support for flash target and address mode
Extend the IT51XXX M1K flash controller driver to implement the flash
extended operation (ex_op) API. This allows runtime selection of both
the flash device and the addressing mode:

Flash target selection:
- FLASH_IT51XXX_INTERNAL: on-chip SPI eFlash
- FLASH_IT51XXX_EXTERNAL_FSPI_CS0: external SPI flash on FSCE0#
- FLASH_IT51XXX_EXTERNAL_FSPI_CS1: external SPI flash on FSCE1#

Addressing mode selection:
- FLASH_IT51XXX_ADDR_3B: 3-byte (24-bit) addressing mode, supports
  flash devices up to 16MB capacity
- FLASH_IT51XXX_ADDR_4B: 4-byte (32-bit) addressing mode, required
  for devices larger than 16MB

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-10-20 11:23:25 -04:00
Khoa Tran
ab8b5764b2 drivers: rtc: Initial driver support for RTC on Renesas RA
Add driver support for RTC on Renesas RA

Signed-off-by: Khoa Tran <khoa.tran.yj@bp.renesas.com>
2025-10-20 11:19:13 -04:00
Khoa Tran
95eafaef9a drivers: clock_control: Add clock control driver for sub-clock on Renesas
RA family

Add clock control driver support for sub-clock Renesas RA family

Signed-off-by: Khoa Tran <khoa.tran.yj@bp.renesas.com>
2025-10-20 11:19:13 -04:00
Quy Tran
336abc6a78 drivers: serial: add contition for tx_buf_len check in async api
Add condition checking for uart async api of Renesas RX

Signed-off-by: Quy Tran <quy.tran.pz@renesas.com>
2025-10-20 11:57:03 +02:00
Fabio Baltieri
245881ad73 drivers: leds_strip: rename modulino smartleds to pixels
Rename the modulino pixels driver to use the official marketing name,
the "smartleds" one was picked incorrectly from the source code of the
on board mcu of the module itself, but that was clearly out of date.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-10-20 11:56:08 +02:00
Seppo Takalo
72701683be drivers: modem: cellular: Close down CMUX before shut down
Properly close down the CMUX channel before shutting down
the modem.

The CMUX Close-Down command should indicate the remote end
to clean up, even if we don't have shutdown script or power-key GPIO.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-10-20 11:55:43 +02:00
Marcio Ribeiro
cde048094e drivers: i2s: esp32: fix driver state management and I2S_DIR_BOTH behavior
Rework to fix state management and I2S_DIR_BOTH behavior across the driver

Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2025-10-20 11:52:31 +02:00
Marcio Ribeiro
8397c408a9 drivers: i2s: esp32: optimize stream structs and add sanity check
Optimizes i2s_esp32_stream_data and i2s_esp32_stream_conf structs and adds
property sanity check according to soc series based on SOC_GDMA_SUPPORTED
feature

Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2025-10-20 11:52:31 +02:00