Commit graph zephyr/drivers
Author SHA1 Message Date
Tony Han
acfb59ebde drivers: ethernet: sam_gmac: handle the GMAC register with device MMIO
Handle GAMC register with device memory-mapped input/output management.
As the MMIO is used, remove the MMU configurations for GMAC accordingly.

Signed-off-by: Tony Han <tony.han@microchip.com>
2026-05-26 15:23:38 +02:00
Tony Han
19c9d0d842 drivers: ethernet: mdio: mdio_sam: handle register with device MMIO
Handle GAMC register with device memory-mapped input/output management.

Signed-off-by: Tony Han <tony.han@microchip.com>
2026-05-26 15:23:38 +02:00
CHEN Xing
a46abafa51 drivers: spi: mchp: add flexcom spi driver
Add microchip flexcom spi driver.

Signed-off-by: CHEN Xing <xing.chen@microchip.com>
2026-05-26 15:20:07 +02:00
Manjae Cho
8d4b54cc78 drivers: ethernet: add WIZnet W6300 support
Add a driver for the WIZnet W6300 stand-alone Ethernet controller
with SPI interface. The driver operates in MACRAW mode using Socket 0
to send and receive raw Ethernet frames via Zephyr's Ethernet L2 layer.

PHY link state is monitored via the W6300 interrupt pin combined with
a periodic polling thread. The SPI protocol uses a 4-byte command
frame (instruction + address high + address low + dummy) for both
read and write operations, as required by the W6300 hardware.

Signed-off-by: Manjae Cho <manjae.cho@samsung.com>
2026-05-26 15:18:02 +02:00
Ren Chen
a9f1c19260 drivers: intc: it8xxx2: fix race in interrupt restoration
Fix the race between restoring interrupt enable register (ier)
states and runtime interrupt enabling that caused ec watchdog
timeouts on Google Ciri platform during stress testing. The
issue occurs if the adc interrupt enable bit is set right
before restoration, overwriting it with the outdated disabled
status and stucking adc thread.

To address this, this commit synchronizes `ier_setting[]` with
runtime enable/disable operations so
`ite_intc_restore_interrupts()` uses the latest ier state.

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2026-05-26 09:23:39 +02:00
Sylvio Alves
bf57bcf4f1 soc: espressif: fix psram heap and linker-reserved window
Wi-Fi on PSRAM-enabled builds was failing because the shared multi
heap overlapped relocated .ext_ram.data noinit content. Anchor the
heap on the linker-reserved window, size esp32c5 and esp32s3 ext
segments to the cache window and bump the Wi-Fi SPIRAM heap floor.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-05-26 09:21:22 +02:00
Sylvio Alves
c0ca340b15 drivers: wifi: esp32: add task stack-size kconfig
Add ESP32_WIFI_TASK_STACK_SIZE to control the stack size used by the
Wi-Fi tasks spawned through the blobs. The adapter applies the
value as a floor: when the Wi-Fi library passes a larger stack,
at runtime, the larger value wins, so a higher Kconfig only
raises the minimum and never shrinks the request.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-05-26 09:21:08 +02:00
Venkatesh Odela
bfc4681bc1 drivers: dma: dma_xilinx_axi_dma: soft-reset DMA core
dma_init() performs a soft-reset to put the DMA into a known state, but
this reset is not repeated on subsequent stop/start cycles. If the DMA
stopped with error bits set, the next configure picks up the dirty state.

Add a needs_dma_soft_reset flag that is set by dma_stop() and checked at
the top of dma_configure(). When set, dma_configure() issues a soft-reset
via the RX channel DMACR (which resets both TX and RX), polls until the
reset bit clears, then continues with normal configuration.

Fixes DMA re-use after network interface down/up cycles.

Signed-off-by: Venkatesh Odela <venkatesh.odela@amd.com>
2026-05-26 09:20:34 +02:00
Brenden Adamczak
641b46bdd9 drivers: clock_control: stm32: MSI support for stm32n6
Add the MSI clock configuration and enabling based on device tree.

Fixes: https://github.com/zephyrproject-rtos/zephyr/issues/108573
Signed-off-by: Brenden Adamczak <cerebralasylum1@gmail.com>
2026-05-25 18:18:41 +02:00
cyliang tw
dc5f98e241 drivers: pinctrl & gpio: modify numaker driver for m031x support
Modify gpio_numaker.c & pinctrl_numaker.c for SOC_SERIES_M031X support.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2026-05-25 18:18:15 +02:00
Jay Pacamarra
760d3cf577 drivers: clock_control: stm32h7: gate set_up_plls() to M7 builds
adds a #if defined(CONFIG_CPU_CORTEX_M7) compilation gate for the
set_up_plls() function. This eliminates compiler errors on dual core
STM32H7 SoCs where the secondary core (Cortex-M4) enables pll since
according to the Zephyr docs, the clock configuration is only accessible
to the M7 core.

For example on the stm32h755xx soc the secondary Cortex-M4 core may choose
to enable the spi3 peripheral and have its kernel clock use pll2. Without
this fix, an implicit declaration of function errors related to the
following functions: get_vco_input_range and get_vco_output_range.

Signed-off-by: Jay Pacamarra <jay.pacamarra@sanctuary.ai>
2026-05-25 18:17:45 +02:00
Jordan Yates
062309af77 charger: add LOG_INF messages to charger state changes
Add basic `LOG_INF` messages notifying users of the updated charging
state when callbacks to users are run notifying them of the changes.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-05-25 18:17:23 +02:00
Jordan Yates
0976468924 charger: bq2518x: support notifications
Add support for charging status notifications if the interrupt pin is
connected to the application.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-05-25 18:17:23 +02:00
Jordan Yates
8279523641 charger: bq2518x: extract status decoding
Extract status decoding logic so it can be reused by other functions.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-05-25 18:17:23 +02:00
Jordan Yates
6c85f5cf3a charger: bq2518x: control TS_EN bit from devicetree
Property to disable the NTC based control of the charger.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-05-25 18:17:23 +02:00
Jordan Yates
8d16925e0c charger: bq2518x: relax charge voltage limitations
Relax the voltage clamping applied when configuring the maximum charge
voltage from software. Instead of treating the devicetree value as the
top limit, allow the full IC charge range to be selected.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-05-25 18:17:23 +02:00
Ruibin Chang
f5f7706414 input: it515xx_kbd: remove "required: true" of prop in yaml
KSO16 and KSO17 may be used as GPIO function,
so the property can't be claimed "required: true".

Also, add the condition, if kso16/kso17 is used as kbs function,
then switch pin function to output temporarily before pin control
to kbs mode.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2026-05-25 13:42:51 +02:00
Ruibin Chang
49197058ab input: it8xxx2_kbd: remove "required: true" of prop in yaml
KSO16 and KSO17 may be used as GPIO function,
so the property can't be claimed "required: true".

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2026-05-25 13:42:51 +02:00
Jérémy Lefaure
250425d881 drivers: virtio: Align virtqueue receive callbacks array
Some architectures require aligned accesses so the recv_cbs address must be
aligned. With this fix, Virtio will work on riscv32_virtual platform.

Signed-off-by: Jérémy Lefaure <jlefaure@antmicro.com>
2026-05-25 13:40:02 +02:00
Jérémy Lefaure
b2ba607a2b drivers: virtio: Fix virtio_mmio for 32 bits platforms
On 32 bits platforms, the 32 bits shift leads to undefined behavior. This
fix makes the driver build without warning on 32 bits platforms.

Signed-off-by: Jérémy Lefaure <jlefaure@antmicro.com>
2026-05-25 13:40:02 +02:00
Michał Stasiak
6e229ff217 drivers: hwinfo_nrf: Align WDT reset reason to guard symbols
Some reset reason masks are now guarded by symbols.
Include them in WDT reset reason definition.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2026-05-25 13:39:54 +02:00
Chun-Chieh Li
b7cdf80084 drivers: i2c: numaker: format code
Format the code using clang-format and make no logic changes

Signed-off-by: Chun-Chieh Li <ccli8@nuvoton.com>
2026-05-25 13:39:32 +02:00
Josuah Demangeon
8ae5a71c0d video: emul_imager: bump the number of virtual registers
The number of "fake" registers was too low for the
register numbers effectively written, causing invalid
memory access.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2026-05-25 13:38:09 +02:00
Yuzhuo Liu
676624295f drivers: spi: add Realtek Bee series driver
Add SPI driver support for Realtek Bee series SoCs,
including RTL87x2G and RTL8752H.

This driver supports:
- Master and Slave operation modes
- Polling, Interrupt, and DMA transfer modes
- Transmit (TX) and Receive (RX) functionality

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-05-25 13:37:42 +02:00
Sylvio Alves
1059586c4a drivers: cache: esp32: add stubs for whole-cache ops
The cache driver API requires cache_data_flush_all(),
cache_data_invd_all() and cache_data_flush_and_invd_all() to be
defined whenever CONFIG_DCACHE is selected. Without these symbols,
any image that pulls in the generic cache API fails to link on
ESP32 SoCs with the cache driver enabled, for example:

  tests/kernel/cache on esp32s2_devkitc
  tests/kernel/cache on esp32s3_devkitc/procpu

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-05-24 18:36:12 -07:00
Yuzhuo Liu
ef185cbe6a drivers: gpio: fix bee gpio direction detection
The GPIO_DDR register uses 1 for output mode and 0 for input mode.
The previous implementation incorrectly swapped these values, causing
gpio_pin_is_input() and gpio_pin_is_output() to return wrong results.

Also mask out unconnected pins using connect_pin to ensure
disconnected GPIOs are not reported as either input or output.

Fixes gpio_get_direction test failures on RTL87x2G and RTL8752H series.

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-05-24 18:35:47 -07:00
Seppo Takalo
78cf53f4a3 modem: cellular: Delay redialing when PPP dies
When network is temporary lost, we might receive
PPP_DEAD event just before parsing "+CEREG: ..."

Therefore immediately redialing might lead to out-of-sync
states.

Delay the redial script by the PERIODIC_SCRIPT_TIMEOUT
as any other script failures do.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2026-05-23 17:15:46 -07:00
Way Young
8aa84961d3 drivers: usb_c: tcpc: fix non-SOP* check in transmit_data
In tcpci_tcpm_transmit_data() the gate that decides whether the packet
is a non-SOP* transmission (Hard Reset, Cable Reset, BIST) was checking
msg->header.message_type, the 5-bit PD header message type ID. That
field overlaps the SOP* range: any standard SOP message whose header
message_type is >= NUM_SOP_STAR_TYPES (e.g. PS_RDY = 6, PR_Swap = 10,
DR_Swap = 11, ...) was misclassified as non-SOP* and written to the
TRANSMIT register without retries, undermining PD negotiation
reliability against CC-line noise.

The TRANSMIT register's type field is enum pd_packet_type, which is
carried in msg->type. Use msg->type for both the gate and the
TCPC_REG_TRANSMIT_SET_WITHOUT_RETRY() argument, matching the retry
path further down the function which already uses msg->type.

Signed-off-by: Way Young <wayyoung@gmail.com>
2026-05-23 17:15:21 -07:00
Ryan McClelland
935bfe705c drivers: i3c: cdns: calculate transfer timeout from message length
Replace the fixed 1-second transfer timeout with a value derived from
the actual number of SCL cycles required for the transfer, plus a
configurable margin (I3C_CADENCE_TRANSFER_TIMEOUT_MARGIN_US, default
10000 us).

Three helpers cover each transfer type:
- cdns_i3c_calc_timeout_i3c: SDR (broadcast header + 9 bits/byte) and
  HDR-DDR (ENTHDR0 preamble + DDR word count at 8 SCL cycles/word,
  including command header and CRC words)
- cdns_i3c_calc_timeout_i2c: 7-bit (9 bits) or 10-bit (18 bits)
  address frame + 9 bits per data byte, using the I2C SCL frequency
- cdns_i3c_calc_timeout_ccc: broadcast addr + CCC command byte +
  optional broadcast data + per-target address and data

Signed-off-by: Ryan McClelland <rymcclel@gmail.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-05-23 17:14:56 -07:00
Maksim Salau
cce752f808 sensor: Add more device checks to shell-battery
The battery alias is verified to be a sensor device before use.
Also the commit fixes incorrect use of `argv[1]` instead of `dev->name`.

Signed-off-by: Maksim Salau <maksim.salau@gmail.com>
2026-05-23 17:14:36 -07:00
Stefan Giroux
63325cb465 drivers: uart: sam0: Fix interrupt handling in uart_sam0.c
allow txc_cache to be set for non-SERCOM_REV500 peripherals

see https://github.com/zephyrproject-rtos/zephyr/issues/87210 for more details

Signed-off-by: Stefan Giroux <stefan.g@feniex.com>
2026-05-23 17:12:25 -07:00
Riadh Ghaddab
8736e2121a flash: nrf_mram: limit Ready register check only to nrf54h series
Ready registers are defined for the nrf54h series but not necesssary for
other soc families.
Limit the Ready register check only to this family of socs.

Signed-off-by: Riadh Ghaddab <riadh.ghaddab@nordicsemi.no>
2026-05-22 21:57:04 +02:00
Aaron Kim
0d4f781476 drivers: sensor: tad2144: Add tad2144 support
Use official TDK Invensense driver for tad2144 sensor in tdk_hal module.

Signed-off-by: Aaron Kim <aaron.kim@tdk.com>
2026-05-22 21:55:54 +02:00
Jimmy Zheng
612ac730c0 drivers: flash: unify andestech,qspi-nor compatible string
Remove the 'andestech,qspi-nor-xip' compatible string and unify both
flash_andes_qspi.c and flash_andes_qspi_xip.c flash drivers use
'andestech,qspi-nor' compatible string.

The driver selection is now handled via Kconfig logic.
CONFIG_FLASH_ANDES_QSPI_XIP is strickly depends on XIP is enabled and
the 'zephyr,flash' chosen node is compatible with 'andestech,qspi-nor'.

Since these two driver variants cannot coexist, the application is
responsible for enabling the appropriate driver Kconfig.

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2026-05-22 18:27:15 +02:00
cyliang tw
28a3113d97 drivers: spi: support Nuvoton numaker usci-spi
Add Nuvoton numaker series usci-spi controller.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2026-05-22 18:26:30 +02:00
Carlo Caione
f5240318d4 drivers: buzzer: add PWM backend for passive piezos
Add the pwm-buzzer compatible and the corresponding driver in
drivers/buzzer/buzzer_pwm.c. The PWM channel period sets the audio
frequency and the duty cycle sets the perceived volume (50% is
loudest for piezos; the driver maps the linear 0..100% volume
percentage to a triangular 0..50% duty curve so 100% volume gives
maximum loudness).

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2026-05-22 18:25:17 +02:00
Carlo Caione
67dfcf17a0 drivers: buzzer: add GPIO backend for active buzzers
Add the gpio-buzzer compatible and the corresponding driver in
drivers/buzzer/buzzer_gpio.c. Active buzzers contain their own
oscillator and produce a fixed tone whenever they are powered.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2026-05-22 18:25:17 +02:00
Carlo Caione
2734ec44f3 drivers: buzzer: add buzzer subsystem core API
Introduce a consumer-facing buzzer API for boards that have a buzzer
wired through a PWM channel or a single GPIO. Apps drive buzzers via
buzzer_tone(), buzzer_beep() (plays the device's natural frequency
encoded in DT), buzzer_set_volume(), and buzzer_stop().

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2026-05-22 18:25:17 +02:00
Fin Maaß
342de448fd drivers: net: nsos: add spinlock
add spinlock for thread safety in socket operations. I noticed that
the native_sim would otherwise crash
under high network load.

Signed-off-by: Fin Maaß <info@finmaass.de>
2026-05-22 18:24:07 +02:00
Sudarshan Iyengar
6593588562 drivers: spi: dw: add frequency validation in configuration path
Validate the SPI bus frequency supplied via spi_config before it is
used to compute the baud-rate clock divider to prevent the following
faults:

- A zero frequency causes an integer division-by-zero when computing
  the clock divider, resulting in a hardware fault or an undefined
  value being written to the SPI_BAUDR register.

- A frequency exceeding half of the input core clock produces a
  divider value less than the minimum of 2 required by the
  DesignWare SSI databook (section 6.2.2), overclocking the
  peripheral and causing undefined bus behaviour.

Return -EINVAL for a zero frequency and -EINVAL for a frequency
greater than clk_hz / 2, surfacing the error to the caller rather
than silently misconfiguring the hardware.

Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Sudarshan Iyengar <sudarshan.iyengar@alifsemi.com>
2026-05-22 18:24:00 +02:00
Bjarki Arge Andreasen
b2085e6cd6 drivers: spi: nrfx_spim_common: Limit freq by max_freq of controller
When configuring the nRF SPIM, the frequency needs to be limited by
the max frequency of the SPIM, which is specified in the devicetree.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2026-05-22 18:23:57 +02:00
Fin Maaß
6834dc4e0b drivers: ethernet: phy: move genphy_*_plca_* function
These functions are from phy_oa_tc14_plca.c, which
is only a helper for phys to implement the set_plca_cfg,
get_plca_cfg and get_plca_sts functions of the ethernet_phy
api, therefore they should be internal.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-05-22 18:23:46 +02:00
Rick Tsao
19606761aa drivers: spi: atcspi200: fix SPI clock change during DMA and build error
Fix SPI clock frequency being modified during DMA transfers.

Fix regression in DMA configuration structure update.

Signed-off-by: Rick Tsao <rick592@andestech.com>
2026-05-22 18:23:36 +02:00
Rick Tsao
35596683d2 drivers: spi: atcspi200: fix non-8-bit word size and NULL buffer handling
Fix incorrect behavior for non-8-bit SPI word sizes.

Fix the handling when both TX and RX buffers are NULL.

Signed-off-by: Rick Tsao <rick592@andestech.com>
2026-05-22 18:23:36 +02:00
Zhaoxiang Jin
532e6e2e23 pinctrl: nxp: iocon: deassert reset from devicetree
deassert reset from devicetree

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-22 18:23:27 +02:00
Zhaoxiang Jin
afefde1f80 gpio: mcux: add reset controller support
add reset controller support

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-22 18:23:27 +02:00
Zhaoxiang Jin
9168d59600 pinctrl: lpc_iocon: enable clocks from devicetree
Enable IOCON clocks from the devicetree clocks property during
pinctrl initialization.

Keep the existing LPC path intact and only use the clock control
flow when a clock is described in devicetree.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-22 18:23:27 +02:00
Zhaoxiang Jin
5d2ebdbe2a clock_control: mcux_syscon: add RT7xx IOCON gates
Add RT7xx IOCON clock IDs to the MCUX SYSCON clock bindings and
handle them in the shared clock control driver.

This provides the common gate support needed for RT7xx IOCON
instances to be managed through the clock control API.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-22 18:23:27 +02:00
Zhaoxiang Jin
f488ca84c7 gpio: mcux: enable clocks from devicetree
Use the optional clocks property to request the GPIO port clock
during driver initialization.

This lets RT7xx GPIO instances rely on the common clock control
path instead of board-specific clock enabling.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-22 18:23:27 +02:00
Zhaoxiang Jin
fbfce13aa4 clock_control: mcux_syscon: add RT7xx GPIO gates
Add RT7xx GPIO clock IDs to the MCUX SYSCON clock bindings and
handle them in the shared clock control driver.

This provides the common GPIO gate support needed for RT7xx
GPIO instances to be managed through the clock control API.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-05-22 18:23:27 +02:00