Commit graph

23353 commits

Author SHA1 Message Date
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
Fin Maaß
745d76292a eth: stm32: streamline eth_initialize function
streamline eth_initialize function by removing
redundant variable assignments

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-02 15:20:45 +02:00
Fin Maaß
bccd8abe0e ethernet: stm32: use HAL_ETH_SetMACFilterConfig
use HAL_ETH_SetMACFilterConfig for all soc, that
support hal api v2

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-02 15:20:45 +02:00
Fin Maaß
6978f24e61 ethernet: stm32: use DEVICE_DT_GET(STM32_CLOCK_CONTROL_NODE)
use DEVICE_DT_GET(STM32_CLOCK_CONTROL_NODE) directly.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-02 15:20:45 +02:00
Fin Maaß
d1f63abc78 ethernet: stm32: use DT_INST_*
use DT_INST_* where possible

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-05-02 15:20:45 +02:00
Mathieu Choplain
d65f8e32a4 drivers: entropy: stm32: don't waste generated random data
Even though the STM32 TRNG hardware produces 2- or 4-byte sized words of
random data before triggering an interrupt, the driver currently discards
all but the bottom byte: 50/75% of the produced entropy goes to waste!

Make sure we consume all the random data from each word we read to improve
the entropy generation rate seen by users of the driver.

Signed-off-by: Mathieu Choplain <mathieu.choplain@st.com>
2025-05-02 15:20:10 +02:00
Pieter De Gendt
faec7c5ae9 drivers: wifi: nxp: Select EVENTS
The driver uses k_event objects and needs to select the EVENTS kconfig
option.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2025-05-02 10:40:38 +02:00
McAtee Maxwell
e6c5e26597 drivers: allow disabling gpio interrupt in ifx-cat1 gpio driver
- allow GPIO_INT_MODE_DISABLED in interrupt_configure function

Signed-off-by: McAtee Maxwell <maxwell.mcatee@infineon.com>
2025-05-02 10:39:45 +02:00
Adib Taraben
1613b5aade driver: hwinfo: nxp_rcm correct implementation of get_supported_reset_cause
The function should return all possible combinations for reset cause.

Signed-off-by: Adib Taraben <theadib@gmail.com>
2025-05-02 10:39:20 +02:00
aa469e05fe drivers: pinctrl: enable the AFIO clock on the CH32V003/20x/30x
The Alternate Function IO (AFIO) block must have the clock enabled
before configuring. Some remappings seem to work without, but some
like EXTI do not. Fix.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2025-05-02 10:38:54 +02:00
Camille BAUD
73dae9e910 drivers: display: Introduce SSD1320
Introduce a driver for SSD1320 displays

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-05-02 10:37:56 +02:00
Duy Nguyen
7e0d006851 driver: serial: Add support for uart interface for qemu_rx
Support uart driver for qemu_rx environment base on the SCI0
HW on RX MCU

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
2025-05-02 09:18:16 +02:00
Duy Nguyen
84c4c6fa77 drivers: serial: Initial support for Renesas RX serial driver
Intial serial driver support for RX MCU, this driver utilize
the SCI HWIP for uart communication
Current support include polling API and Interrupt driven API,
some of the code is using Renesas RX Driver Package (RDP) as
hal layer

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
Signed-off-by: Sang Tran <sang.tran.jc@renesas.com>
2025-05-02 09:18:16 +02:00
Duy Nguyen
86024ffebb drivers: gpio: Support GPIO driver for Renesas RX MCU
Initial commit for GPIO driver support on board using RX130 MCUs
* drivers: GPIO: implementation for GPIO driver on RSK_RX130_512KB
* dts: rx: add device node for GPIO of RSK_RX130_512KB

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
Signed-off-by: Phi Tran <phi.tran.jg@bp.renesas.com>
2025-05-02 09:18:16 +02:00
Duy Nguyen
2aa071c7ad drivers: pinctrl: Support pinctrl driver for Renesas RX
Intial support of pinctrl driver for Renesas RX MCU
family.
This support base on using Renesas RX driver package in
hal_renesas layer

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
Signed-off-by: Phi Tran <phi.tran.jg@bp.renesas.com>
2025-05-02 09:18:16 +02:00
Duy Nguyen
ad42e4d87d driver: timer: Support for RX system timer
This commit add a system timer driver for Renesas RX using the
CMT peripheral. The driver supports both system ticks and
high-resolution cycle counting
- Configures CMT0 as the system tick timer
- Configures CMT1 as a free-running cycle timer for precise
  time tracking
- Handles timer overflows to maintain a continuous cycle count.
- Implements sys_clock_cycle_get_32() and sys_clock_cycle_get_64()
  for  high-resolution timing
- Supports Zephyr tickless kernel mode by tracking elapsed cycles
- Enables interrupt-based tick announcement using CMT0

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
Signed-off-by: Yuichi Nakada <yuichi.nakada.sx@renesas.com>
2025-05-02 09:18:16 +02:00
Duy Nguyen
2f0715262d drivers: clock: Support clock control driver RX MCU
Initial support of clock control driver for RX MCU

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
Signed-off-by: Tran Van Quy <quy.tran.pz@renesas.com>
2025-05-02 09:18:16 +02:00
Yangbo Lu
faa55bd44b drivers: ptp_clock_nxp_enet: avoid configuring IRQ handlers again
Converted ENET_Ptp1588Configure to ENET_Ptp1588StartTimer during reset.
This is to avoid configuring IRQ handlers again in hal driver with
ENET_Ptp1588Configure.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-05-02 09:17:12 +02:00
Yangbo Lu
0e4a334f1c drivers: ptp_clock_nxp_enet: adjust rate based on nominal frequency
The rate adjustment should be based on nomianl frequency, but not
current frequency. Then any PTP stack with PID control could adjust
frequency well.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-05-02 09:17:12 +02:00
Yangbo Lu
383d4f499e drivers: eth_nxp_enet: fix data share with ptp driver
The enet handle in mac driver was not shared with ptp driver
properly. This was causing wrong TX timestamp.
This patch is to fix it.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-05-02 09:17:12 +02:00
Yangbo Lu
0415ba0452 drivers: clock_control_mcux_ccm: use fixed 25M for PTP on RT10XX
The RT10XX uses fixed 25M for PTP clock per RM. Verified on
RT1060.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-05-02 09:17:12 +02:00
Jeppe Odgaard
c3a9fb1c63 driver: sensor: tmp11x: support get offset
Allow reading the offset register.

This allows reading the offset before setting it if offset is set more than
once.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2025-05-02 09:15:33 +02:00
Jordan Yates
41fe3b9d24 gpio: stm32: initialise according to zephyr,pm-device-runtime-auto
Don't automatically disable all GPIO ports just because
`PM_DEVICE_RUNTIME` is enabled. Require the user to explicitly call
`pm_device_runtime_enable` on the port, or add
`zephyr,pm-device-runtime-auto` to the devicetree node.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-05-02 09:15:26 +02:00