Commit graph

25,525 commits

Author SHA1 Message Date
Benjamin Cabé
d5e4b44696 drivers: i3c: Fix misspelling of brief in doxygen
Fixes trivial typo

Co-authored-by: Harry Martin <48959255+Harry-Martin@users.noreply.github.com>
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-05-07 11:44:33 +02:00
Swift Tian
726eb0a25d drivers: mspi: add apollo5x MSPI controller
Add the MSPI controller support for apollo5x.
Add the MSPI controller to mspi API test.
Updated west.yml for hal updates.

Signed-off-by: Swift Tian <swift.tian@ambiq.com>
2025-05-07 10:33:38 +02:00
Swift Tian
5c7e7eab7f drivers: mspi: shroud controller specifics and fix potential issue
1. Moved ambiq specific macro to mspi_ambiq header.
2. Always fill rx&tx dummy settings regardless of transfer direction.
3. Add the CONFIG_MSPI_* macro for optional features.
4. Fixed the ID read process and add k_sleep during busy_wait in
   atxp032 driver.

Signed-off-by: Swift Tian <swift.tian@ambiq.com>
2025-05-07 10:33:38 +02:00
Swift Tian
cbd475b9ed drivers: mspi: standarlized transfer priority
Standarlized transfer priority and add a medium level.

Signed-off-by: Swift Tian <swift.tian@ambiq.com>
2025-05-07 10:33:38 +02:00
Alain Volmat
5e2950d496 display: stm32: ltdc: handle backlight on blanking
The display_blanking_on description states that if available,
backlight should also be disabled / enabled on driver blanking on / off.
Moreover, upon driver initialization, the display blanking (hence
backlight state as well) should be same as if display_blanking_on
had been called.

If nothing can be done by the LTDC driver (no backlight and no
panel blanking) then -ENOSYS is returned.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-05-07 08:17:52 +01:00
Ruibin Chang
265a0b991a drivers/pwm/it51xxx: implement pwm driver
Implement pwm driver for ITE it51xxx series chip.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-05-07 08:17:12 +01:00
Immo Birnbaum
3dcc1d2dd6 drivers: ethernet: xlnx_gem: add set_config function
Add an implementation for the Ethernet API's set_config
hook. Supported features:
- change MAC address at run-time
- enable/disable promiscuous mode if enabled at system level

Signed-off-by: Immo Birnbaum <mail@birnbaum.immo>
2025-05-07 03:59:23 +02:00
Robert Hancock
83488e4354 drivers: gpio: xlnx_ps: Do not clear GPIO states on initialization
This driver was setting all GPIO lines to input and the data register to
zero on initialization. This does not appear to be common practice among
other GPIO drivers, and in fact caused a serious problem on the ZynqMP
platform, where between 1 and 4 of the top-most GPIO lines are
frequently used by platform firmware and Vivado as reset lines for the
programmable logic. Since these resets are active low, and their
input/output state is ignored due to how they are connected to the EMIO
GPIO outputs from the PS, this caused the PL reset to be asserted when
the GPIO driver initialized, preventing any logic using that reset from
functioning properly.

There may also be other cases where GPIO line states have already been
set by the boot loader or firmware and clearing them may result in
improper behavior or glitches on the lines during initialization.

Update the driver to disable GPIO interrupts but leave the pin
modes/states unchanged until/unless they are explicitly reconfigured.

Signed-off-by: Robert Hancock <robert.hancock@calian.com>
2025-05-07 00:01:57 +02:00
Stoyan Bogdanov
741879b362 drivers: watchdog: cc23x0: Add support for watchdog
Because of hardware limitations watchdog driver supports:
 * Start Watchdog
 * Feed Watchdog

Signed-off-by: Stoyan Bogdanov <sbogdanov@baylibre.com>
2025-05-07 00:01:38 +02:00
Andrzej Głąbek
fee8eddc5b drivers: display_st7567: Fix unintialized variable warning
Theoretically (if either `height` or `width` in `config` is set to 0),
the `ret` variable might be returned from `st7567_clear()` without
being initialized.
Add initialization of this variable to avoid compiler warnings.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2025-05-06 20:36:37 +02:00
Joakim Andersson
b2bb1ffc1b drivers: modem: Use modem command await function
Use the modem command await function where appropriate.

Signed-off-by: Joakim Andersson <joerchan@gmail.com>
2025-05-06 18:24:01 +02:00
Joakim Andersson
25341410a7 drivers: modem: Add function to wait for sem and handle error
Add a helper function that waits for a semaphore and handles the
error conditions that may arise.

Signed-off-by: Joakim Andersson <joerchan@gmail.com>
2025-05-06 18:24:01 +02:00
Joakim Andersson
995440b706 drivers: modem: Use modem command send_data_nolock
Use the new modem command send_data_nolock function where it was
previously just written directly to the interface.

Signed-off-by: Joakim Andersson <joerchan@gmail.com>
2025-05-06 18:24:01 +02:00
Joakim Andersson
0617b25126 drivers: modem: Add helper function to send data on modem cmd iface
Add helper function to send data on modem command handler interface.
This makes sure that when verbose logging is enabled all data is
actually logged.

Signed-off-by: Joakim Andersson <joerchan@gmail.com>
2025-05-06 18:24:01 +02:00
Joakim Andersson
8cea4ce5da drivers: modem: Fix possible race condition, reset sem before data send
Fix possible race condition, reset the response semaphore before we send
any data. In case we don't get scheduled back before the response is
processed.

Signed-off-by: Joakim Andersson <joerchan@gmail.com>
2025-05-06 18:24:01 +02:00
Francois Ramu
96b3a22dd8 drivers: flash: stm32H5 flash driver gives the flash size
Use the LL_GetFlashSize to retrieve the size of the flash, reading the
system flash OTP of the stm32h5 serie. This operation requires
Icache disable/re-enable to access the 0x08FF F80C memory area

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-05-06 18:23:36 +02:00
Francois Ramu
eea1b828a1 drivers: flash: stm32 flash drivers supports the get_size API function
Implement the get_size flash device API function for the various stm32
This is just CONFIG_FLASH_SIZE expressed in Bytes or the FLASH_SIZE
given by the LL driver

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-05-06 18:23:36 +02:00
Francois Ramu
5dc537389a drivers: flash: stm32 flash driver common functions
Move the flash_stm32_write_protection and
flash_stm32_option_bytes_lock functions to a common
file for stm32 devices including stm32h7

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-05-06 18:23:14 +02:00
Yau-ming Leung
6b3d53e4ec drivers: icm42688: ignore invalid fifo data
When using 20-bit FIFO packets, invalid data is indicated by the value
-524288. Currently, no check is done against this and invalid data is
decoded. Fixed by adding a simple check. Also, the wrong bit is used to
check if HIRES is enabled. Fixed by using the correct mask.

Signed-off-by: Yau-ming Leung <ymleung314@gmail.com>
2025-05-06 16:36:16 +02:00
Ibrahim Abdalkader
3a0bacedbe drivers: display: stm32_ltdc: Add SMH attribute for LTDC buffer.
The LTDC driver was using the video buffer SMH attribute.

Signed-off-by: Ibrahim Abdalkader <i.abdalkader@gmail.com>
2025-05-06 16:36:06 +02:00
Chaitanya Tata
3953bb9ce3 nrf_wifi: Add nRF71 support
nRF7120 PDK support that uses IPC as comms b/w APP and Wi-Fi domains.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-05-06 15:32:11 +02:00
Guillaume Gautier
08cc15aed8 drivers: flash: stm32 xspi: replace prescaler assert by returning error
Replace the assert on the value of the prescaler by a standard check and
an error value return (similar to the STM32 XSPI PSRAM driver).

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-05-06 15:32:02 +02:00
Guillaume Gautier
8177be5a91 drivers: memc: compute prescaler automatically for stm32 xspi
For STM32 XSPI PSRAM driver, compute and set the prescaler automatically
according to the kernel clock and the max frequency of the PSRAM.
Copied from what is done in the STM32 XSPI Flash driver.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-05-06 15:32:02 +02:00
Henrik Brix Andersen
0366df369b drivers: gpio: neorv32: add interrupt support
Add interrupt support to the NEORV32 GPIO controller driver.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-05-06 13:01:20 +02:00
Henrik Brix Andersen
3c8ac10dc7 drivers: gpio: neorv32: use spinlock instead of irq_lock()
Switch from using irq_lock()/irq_unlock() to using a k_spinlock.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-05-06 13:01:20 +02:00
Ren Chen
437c16fcf9 drivers: i3c: shell: enable i3c shell support for it51xxx.
This commit introduces support for i3c shell on it51xxx.

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2025-05-06 13:01:13 +02:00
Ren Chen
9743a983f8 drivers: i3c: add it51xxx i3cm driver
Add it51xxx i3c controller driver.

Tested with: it51xxx evb board with st_lps22df sensor

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2025-05-06 13:01:13 +02:00
Ren Chen
76efd333cc drivers: i3c: add it51xxx i3cs driver
Add it51xxx i3c target driver.

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2025-05-06 13:01:13 +02:00
Krzysztof Chruściński
ce8af54ce8 drivers: clock_control: Add missing dependency in Kconfig
Calibration process can be simplified if LF clock is always on.
Kconfig was depending on RTC being used as system clock because
that indicates LF clock being always on. Same can be done for
case when GRTC is used as system clock.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-05-06 13:01:07 +02:00
Hank Wang
72509c385e drivers: gpio: sn74hc595: fix terminology for GPIO expander
The Kconfig help text for the SN74HC595 driver refers to the device
as a "GPIO extender", which is inconsistent with the devicetree
binding file (ti,sn74hc595.yaml) that describes it as a "GPIO expander".

Signed-off-by: Hank Wang <wanghanchi2000@gmail.com>
2025-05-06 12:00:31 +02:00
Yannis Damigos
d21749f64d drivers: udc_smartbond: Fix calls to udc_get_ep_cfg()
Fix calls to udc_get_ep_cfg() that passed only 1 argument

Fixes #89395

Signed-off-by: Yannis Damigos <ioannis.damigos.uj@renesas.com>
2025-05-06 12:00:23 +02:00
Jukka Rissanen
8b1f06af05 drivers: net: loopback: Set interface name to lo
Set the loopback interface name to "lo" instead of using the
default "dummy0" as the former is a more appropriate.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2025-05-06 10:50:48 +02:00
John Batch
b1950615bd driver: pwm: infineon: Use PWM buffer updates
Change PWM to use buffers registers instead of writing period
and compare directly.  This addressses an issue when updating
period to a value less than current counter, as demonstrated
in the blinky_pwm sample running on the CYW920829M2EVK_02
board.

Signed-off-by: John Batch <john.batch@infineon.com>
2025-05-06 02:36:04 +02:00
Robert Hancock
3a0f26f02a drivers: ethernet: vsc8541: add RGMII clock delay configuration
As the code noted, the RGMII RX and TX clock delay values may need to
change depending on the MAC configuration or the PCB layout. Add
properties to allow configuring these in the device tree, defaulting to
the previous hard-coded values if not present.

Signed-off-by: Robert Hancock <robert.hancock@calian.com>
2025-05-05 21:57:05 +02:00
b1aadb6729 drivers: pwm: add a CH32V00x General-prupose Timer Module (GPTM) driver
The GPTM is a general purpose module with a 16 bit prescaler, 16 bit
counter, and 4 compare units that can be used for PWM generation.

Use the same style as gd32 where the timer is a counter and the PWM
mode is a child node.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2025-05-05 21:56:38 +02:00
Bas van Loon
c020dfab41 drivers: serial: uart_mcux_lpuart: Fix pinctrl flow control
Currently the driver code does not actually request the flow control
state, it only checks if the state exists. To fix this we should
simply call pinctrl_apply_state() and if that fails, meaning no
flow control state exists, fall back to default pin mux settings.

Another case that needed fixing is run time flow control enabling
ie in the case where we have a WIFI/bluetooth module connected
and we initially operate without flow control but later enable
it after firmware download.

This patch addresses this as well by making a generic function
to achieve this.

Signed-off-by: Bas van Loon <bas@arch-embedded.com>
2025-05-05 18:07:33 +02:00
Vit Stanicek
eeaf860dfa dma_mcux_lpc: add host directions, DMA driver ctx, getter func
Add support for HOST_TO_MEMORY, MEMORY_TO_HOST directions (aliases of
MEMORY_TO_MEMORY). Implement dma_mcux_lpc_get_attribute function. Fix
missing DMA driver context.

Signed-off-by: Vit Stanicek <vit.stanicek@nxp.com>
2025-05-05 18:07:15 +02:00
Arkadiusz Balys
8a9fd8d5c8 drivers: nxp: Do not use private L2 data structure.
An implementation should use a dedicated function to get
openthread instance instead of using the private L2 data.

Signed-off-by: Arkadiusz Balys <arkadiusz.balys@nordicsemi.no>
2025-05-05 14:25:13 +02:00
Henrik Brix Andersen
2e8a08a165 drivers: counter: add NEORV32 GPTMR driver
Add counter driver for the NEORV32 General Purpose Timer (GPTMR).

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-05-05 12:20:50 +02:00
Marcin Lyda
f7280fac32 drivers: counter: Add MCP7940N property to enable VBAT backup
This PR adds a new devicetree property
that allows enabling external battery
backup functionality.

Signed-off-by: Marcin Lyda <elektromarcin@gmail.com>
2025-05-05 10:57:28 +02:00
Josselin Bunt
902824db1f drivers: stepper: Fix stepper callbacks when using work_q
Fix issue where stepper callbacks were not being called when
using work_q. This was due to the steps being counted down before
the work_q was rescheduled.

Signed-off-by: Josselin Bunt <josselin@sensible.health>
2025-05-04 19:55:51 +02:00
Pisit Sawangvonganan
96325ad3e1 drivers: dma: remove '&' when assigning dma_xxx_init
Remove address-of operator ('&') when assigning `dma_xxx_init`
function pointer in `DEVICE_DT_INST_DEFINE` macro.

This change aims to maintain consistency among the drivers in
`drivers/dma`, ensuring that all function pointer assignments
follow the same pattern.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2025-05-04 19:55:44 +02:00
Phi Bang Nguyen
7dfd0d017f drivers: display: elcdif: Fix a typo breaking i.MX RT1170
The backlight_gpios property has a "s" at the end. This typo has broke
the display on i.MX RT1170. Fix it.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2025-05-03 17:48:08 +02:00
Stefan Giroux
6ec4436085 drivers: serial: fix uart_sam0 async rx timeout calculation
Zephyr moved to microseconds to represent uart async timeout.
This one has some additional logic that was not adjusted in
the transition from milliseconds.

c590b3545a was integrated in
https://github.com/zephyrproject-rtos/zephyr/pull/39041

Signed-off-by: Stefan Giroux <stefan.g@feniex.com>
2025-05-03 17:47:42 +02:00
Yau-ming Leung
bd0a0011ab drivers: icm42688: fix missing compile time log level
The icm42688 driver RTIO stream module does not specify a compile time log
level. Thus, CONFIG_SENSOR_LOG_LEVEL_DBG is ignored. Fixed by specifying
log level on log module declaration.

Signed-off-by: Yau-ming Leung <ymleung314@gmail.com>
2025-05-02 16:09:23 +01:00
Camille BAUD
e5819f7a6c drivers: display: Introduce SH1122
Introduces Sinowealth SH1122 Greyscale 256x64 OLED controller

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-05-02 16:09:08 +01:00
Grzegorz Swiderski
52f834068a drivers: firmware: nrf_ironside: Make events static
Events used in `call.c` should've been defined as static.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-05-02 15:21:40 +02:00
Grzegorz Swiderski
3353bbc066 drivers: firmware: nrf_ironside: Guard behind CONFIG_NRF_IRONSIDE
Add a promptless symbol that can be selected by different drivers. It is
there to ensure that the corresponding library is not added to the build
unless it contains at least one source file.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-05-02 15:21:40 +02:00
Pete Johanson
f4b52a43d9 drivers: memc: Add MAX32 HyperBus driver
Add memc driver for the MAX32 HyperBus peripheral, supporting HyperRAM
and Xccela PSRAM memory devices.

Signed-off-by: Pete Johanson <pete.johanson@analog.com>
2025-05-02 15:20:55 +02:00
Fin Maaß
1736736454 drivers: ethernet: stm32: remove asserts and move var initialization
remove unneded asserts and move variables initialization

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-02 15:20:45 +02:00