Commit graph zephyr/drivers
Author SHA1 Message Date
Satya Sri
cf7886b903 drivers: counter: Add TTC (Triple Timer Counter) driver
The TTC provides three independent hardware counters supporting
free-running and interval modes, accessed via MMIO registers.

This driver implements the Zephyr counter API, including start/stop,
read, alarm, and top value configuration. Alarm events are delivered
using match interrupts.

Dynamic IRQ connection is used to support platforms where multiple
TTC counter instances share the same interrupt line. Each IRQ is
registered only once at runtime, and the ISR dispatches pending
events to all TTC instances mapped to that interrupt, ensuring correct
handling for both shared and dedicated interrupt configurations.

Signed-off-by: Satya Sri <satyasri.katru@amd.com>
2026-07-15 19:01:27 -04:00
Vignesh Pandian
00d9a0da6f drivers: sensor: bmi270: add die temperature channel support
The BMI270 exposes an on-chip temperature sensor in registers
TEMPERATURE_0/1 (0x22/0x23). Add support for SENSOR_CHAN_DIE_TEMP so
applications can read it through the standard sensor API.

bmi270_init() now sets PWR_CTRL.temp_en, bmi270_sample_fetch() reads
the 16-bit value, and bmi270_channel_get() converts it using the
datasheet formula T = raw / 512 + 23 degrees C, returned in micro-
degrees through val1/val2.

Signed-off-by: Vignesh Pandian <vignesh@aerlync.com>
2026-07-15 14:49:48 -05:00
Abderrahmane JARMOUNI
7cca4bda59 drivers: flash: stm32: rename STM32_MEMMAP to FLASH_STM32_NOR_MEMMAP
Rename CONFIG_STM32_MEMMAP to CONFIG_FLASH_STM32_NOR_MEMMAP for clarity
since it only concerns STM32 Flash drivers.
Same change is applied on MCUboot side upstream.

Signed-off-by: Abderrahmane JARMOUNI <git@jarmouni.me>
2026-07-15 14:45:00 -05:00
Brett Peterson
431a3afd25 drivers: audio: tlv320dac310x: speaker output support
Adding a binding property to enable speaker output and updating the
driver to support driving the speaker in addition to the headphone
outputs.

Signed-off-by: Brett Peterson <brett.peterson@infineon.com>
2026-07-15 13:44:41 -05:00
Brett Peterson
9b61e3f45b drivers: audio: tlv320dac310x fixing comment
Fixing a typo in the comments.

Signed-off-by: Brett Peterson <brett.peterson@infineon.com>
2026-07-15 13:44:41 -05:00
Tejus Subramanya
673d046e46 drivers: wifi: siwx91x: fix advanced scan dwell time handling
Advanced scan ignored the configured dwell times because the
driver only updated local variables instead of the advanced scan
configuration structure. Set the active and passive channel times
on the advanced scan config directly.

Signed-off-by: Tejus Subramanya <ters@silabs.com>
2026-07-15 15:28:57 +02:00
Mathieu Choplain
6fe6ba9f4c drivers: usb: udc: stm32: enable GPIO if disconnect/reset GPIOs are used
Enable the GPIO subsystem when the driver is enabled if disconnect-gpios
are provided on a node with compatible `st,stm32-usb` or if an ULPI PHY
provides reset-gpios.

The second case should be handled at a generic level, but ULPI PHYs have
always been managed as part of the STM32 driver for historical reasons.
Since no SoC family other than STM32 seems to use ULPI PHYs, this code
remains vendor-specific for now.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-07-15 15:26:33 +02:00
Mathieu Choplain
0bec25a536 drivers: sdhc: stm32: enable GPIO if card-detect or power GPIOs are used
Enable the GPIO subsystem when cd-gpios or pwr-gpios are used on
any STM32 SDMMC node and the corresponding driver is enabled.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-07-15 15:26:33 +02:00
Mathieu Choplain
80675bebfe drivers: mspi: stm32: enable GPIO when ce-gpios are used
Enable the GPIO subsystem when ce-gpios are used on any STM32 QSPI,
OSPI or XSPI node configured as MSPI controller  and the corresponding
driver is enabled.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-07-15 15:26:33 +02:00
Mathieu Choplain
1c0a0d799a drivers: mipi_dbi: stm32: enable GPIO if reset or power GPIOs are used
Enable the GPIO subsystem when reset-gpios or power-gpios are used on
any STM32 FMC node configured for usage as MIPI DBI host controller
and the corresponding driver is enabled.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-07-15 15:26:33 +02:00
Mathieu Choplain
1f1e182ce0 drivers: flash: stm32_*: enable GPIO when reset-gpios are used
Enable the GPIO subsystem when reset-gpios are used on any STM32 QSPI,
OSPI or XSPI flash node and the corresponding driver is enabled.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-07-15 15:26:33 +02:00
Muhammad Waleed Badar
528a0627ed drivers: usb: uhc_dwc2: introduce MMIO API for MMU platforms
Use Zephyr's standard MMIO abstraction API by introducing
DEVICE_MMIO_NAMED_RAM/ROM(core) in the driver's data and
config structs, mapping the region at initialization time
with DEVICE_MMIO_NAMED_MAP, and routing all register accesses
through a uhc_dwc2_get_base() helper that calls DEVICE_MMIO_NAMED_GET.
These changes allows the driver to be useful on MMU-based
platforms like Broadcom BCM2711 SoC.

Signed-off-by: Muhammad Waleed Badar <walid.badar@gmail.com>
2026-07-15 15:25:42 +02:00
Samuel Slesar
5b4231a82d drivers: counter: mcux_qtmr: support fixed-clock providers
Allow the MCUX QTMR counter driver to use clock providers without a
named clock cell, such as fixed-clock.

Existing users with named clock cells keep the previous behavior.

Also use the filter-period devicetree property when configuring the
QTMR fault filter period.

Signed-off-by: Samuel Slesar <samuel.slesar@nxp.com>
2026-07-15 15:22:26 +02:00
Srikanth Patchava
2cb9c70081 drivers: fpga: fix sprintf misuse in mpfs driver
Fix two issues in fpga_mpfs.c:

1. Remove invalid (uint8_t *) cast on format string literal.
   sprintf() expects const char*, not uint8_t*. The cast suppresses
   the implicit-function-declaration warning but is semantically wrong
   and produces -Wint-conversion warnings on strict compilers.

2. Replace sprintf() with snprintf() to prevent potential buffer
   overflow. The FPGA_design_ver buffer is 30 bytes and the formatted
   string "Design Version : 0x%x" can reach 29 characters with a
   full 32-bit value (0xffffffff), leaving no margin.

Signed-off-by: Srikanth Patchava <spatchava@meta.com>
2026-07-15 15:21:52 +02:00
minyuan xue
4a5df6d9cc drivers: adc: add ameba adc driver
Add realtek ameba adc driver.

Signed-off-by: minyuan xue <minyuan_xue@realsil.com.cn>
2026-07-15 15:20:27 +02:00
Hasler Pauline
b08eeb0c6d drivers: adc: Add support for ADC ADS1220
Implement a driver for the ADC ADS1220.
Currently only the single shot mode is supported.
Origin: Original

Signed-off-by: Hasler Pauline <phasler@baumer.com>
2026-07-15 15:19:44 +02:00
Fin Maaß
fbeefb4185 drivers: usb: uhc: use driver api
use driver api. with this we can find out
what device is a usb host controller.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-07-15 10:50:44 +02:00
Vedant Malkar
63c8890b6b drivers: serial: add Shakti UART driver
Add a UART driver for SHAKTI Ganga SoC,
supports polling and interrupt driven
operations

Signed-off-by: Vedant Malkar <vedantitsme@gmail.com>
2026-07-15 10:44:27 +02:00
Nicholas Cadieux
9130b46b34 drivers: usb_c: tcpc: stm32: discard rx buffer for undelivered msgs
The RX buffer was cleared only when a message was consumed by
ucpd_get_rx_pending_msg(). Receptions not passed to the TCPM layer
(GoodCRC, filtered SOP'/SOP'', BIST or an errored message) left
stale order-set and header bytes behind, which the next poll of
ucpd_get_rx_pending_msg() reported as a pending message.

Discard the buffer at the end of the RXMSGEND handler whenever
UCPD_EVT_RX_MSG was not set, so only delivered messages remain
readable.

Signed-off-by: Nicholas Cadieux <ncadieux@qti.qualcomm.com>
2026-07-15 10:42:17 +02:00
Anas Nashif
5b85e9d41b arch: fix stale comments in arch-related headers and gicv3
Three comment-only fixes found while auditing the arch interface:

- include/zephyr/arch/common/addr_types.h still carried the 'x86
  address types' banner from before it was generalized into the
  common arch headers.
- include/zephyr/arch/exception.h documented its callback typedefs
  as exception_dump_hook_t and exception_drain_hook_t while the
  actual typedef names are arch_exception_dump_hook_t and
  arch_exception_drain_hook_t.
- intc_gicv3.c referenced z_arch_el3_plat_init, which does not
  exist; the platform hook is named z_arm64_el3_plat_init.

No functional change.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-07-14 20:08:55 -04:00
Michael Zimmermann
e256db718d drivers: flash: gecko: support CONFIG_MULTITHREADING=n
This is useful to reduce the size of mcuboot builds, so it can fit into the
16K bootloader flash area outside of the main flash, which many Silabs SoCs
have.

Signed-off-by: Michael Zimmermann <michael.zimmermann@sevenlab.de>
2026-07-14 20:08:08 -04:00
Florian Moesch
e5c5be31b6 drivers: display: st7567: fix set_contrast to accept 0-255 range
The set_contrast function of the ST7567 display driver now expects a
contrast value in the range 0-255, instead of 0-63.
The driver now scales the value to the 6-bit range expected by the
controller.
CONFIG_ST7567_DEFAULT_CONTRAST has been updated.

Signed-off-by: Florian Moesch <florian.moesch@draeger.com>
2026-07-14 20:06:45 -04:00
Sylvio Alves
d8b842035b drivers: wifi: esp_hosted: fix iface_status signature
The wifi_mgmt iface_status callback gained a struct net_if
pointer parameter, but esp_hosted_status was left with the old
signature, causing an incompatible pointer type error at driver
registration. Add the missing net_if parameter to match the
callback interface.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-07-14 16:40:26 -04:00
Paulo Santos
8a542ffb86 modem: cellular: revert baudrate on power-on pulse
The power-on pulse re-powers a modem that returns to its default UART
rate, since AT+IPR is not persisted across a power cycle. When the host
UART was switched to CONFIG_MODEM_CELLULAR_NEW_BAUDRATE the two ends no
longer agree, so re-initialization runs at a mismatched rate and never
completes.

Revert the host UART to the original baudrate before pulsing the power
pin, mirroring the reset path (0ba20dd96c). Guarded by original_baudrate
so it is a no-op for modems that do not switch rate.

Signed-off-by: Paulo Santos <pauloxrms@gmail.com>
2026-07-14 16:40:17 -04:00
Raffael Rostagno
3a9897061e drivers: i2c: esp32: Add PM support
Register sleep retention for HP I2C ports when peripheral power-down
is enabled, and hold pm_policy_state locks during transfers, bus
recovery, and target mode.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2026-07-14 16:40:00 -04:00
Ryan McClelland
39ab71e612 drivers: sensor: adxl367: fix base_timestamp_ns to first sample time
Adjust base_timestamp_ns backward from the trigger timestamp by
(N-1)*period so it reflects the time of the first FIFO sample,
matching the lsm6dsv16x reference implementation.

Fixes: #98720
Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
(cherry picked from commit f73d9b122431cd7bcfeb24b67c170241a1a61d98)
2026-07-14 16:39:38 -04:00
Tony Han
d6891796c9 drivers: rtc: sam: update to not hold spinlock during a blocking call
Update to avoid holding the spinlock before the blocking k_sem_take()
calls. Acquiring the spinlock only for the short register-write
sequences, allowing the ISR to fire and give the semaphores during the
blocking waits.

The check of "Context switching while holding lock" is introduced by
commit 5183fc5693 ("kernel: assert no spinlock is held on swap when
!USE_SWITCH")

Signed-off-by: Tony Han <tony.han@microchip.com>
2026-07-14 16:39:09 -04:00
David Boullie
30953b3fa2 drivers: counter: silabs: Fix protimer counter driver
Fixes a bug in the protimer counter driver where the top callback
was not being called when the top value was reached.

Signed-off-by: David Boullie <David.Boullie@silabs.com>
2026-07-14 16:38:51 -04:00
David Boullie
654006d521 drivers: ieee802154: Add CSL support for Silabs EFR32
Modify existing Silicon Labs EFR32 driver and defconfigs
in order to support Coordinated Sampled Listening.

Signed-off-by: David Boullie <David.Boullie@silabs.com>
2026-07-14 16:38:51 -04:00
David Boullie
1fb769ba84 drivers: ieee802154: silabs_efr32: Fix Enhanced ACK path
Add steps to remove stale metadata from Enhanced ACK path,
along with correctly using key identifier context.

Signed-off-by: David Boullie <David.Boullie@silabs.com>
2026-07-14 16:38:51 -04:00
Muhammad Waleed Badar
1ce2060f56 drivers: usb: uhc_dwc2: fix warning on 64-bit platforms
Use the `%zu` format specifier when printing `size_t` values instead of
`%u`. On 64-bit platforms, using an incorrect format specifier is
causing compiler warnings due to type mismatches.

Signed-off-by: Muhammad Waleed Badar <walid.badar@gmail.com>
2026-07-14 18:00:45 +02:00
Roman Leonov
178caea19d drivers: uhc_dwc2: esp32: update quirks to latest binding
Rename the existing full-speed uhc quirk to the speed specific
espressif,esp32-usb-otg-fs compatible, that was introduced
in #111508.

Signed-off-by: Roman Leonov <jam_roma@yahoo.com>
2026-07-14 17:59:50 +02:00
Ryan McClelland
d8eabd542d drivers: sensor: icm4268x: fix base_timestamp_ns to first sample time
Pre-count FIFO frames for the requested channel and adjust
base_timestamp_ns backward from trigger time by (N-1)*period so it
reflects the time of the first sample, matching the lsm6dsv16x
reference implementation.

Fixes: #98720
Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
(cherry picked from commit 750d08206d5ec13a7c171ede9cea00dcc8aab9f6)
2026-07-14 17:59:17 +02:00
Anas Nashif
2b0713959e drivers: flash: fix flash_sim memory-region section name
Use LINKER_DT_NODE_REGION_NAME_TOKEN() when assigning the flash simulator
backing array section.

Using LINKER_DT_NODE_REGION_NAME() passes a quoted string into
Z_GENERIC_SECTION(), which produces a literal section named "FlashSim"
instead of FlashSim. The linker memory-region section matcher expects the
token form, so the array was not placed in the configured RAM region.

This is needed to be able to build with zephyr/llvm on some platforms.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-07-14 17:58:51 +02:00
Alberto Escolar Piedras
4b2a0898ad drivers: gpio: tla2528: Remove double const
DEVICE_API already includes const, with another const,
clang warns us about the double specifier.

Remove it to avoid the warning.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2026-07-14 17:57:24 +02:00
Alberto Escolar Piedras
05333a61b1 drivers: adc: adc_tla2528: Remove double const
DEVICE_API already includes const, with another const,
clang warns us about the double specifier.

Remove it to avoid the warning.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2026-07-14 17:57:24 +02:00
Oliver Schmidhauser
e72986dc95 drivers: adc, gpio, mfd: add TLA2528 driver
Adds support for the TI TLA2528 I2C ADC with GPIOs.
The TLA2528 is a 12-bit 8-channel ADC, where each channel can also be
configured as a GPIO in- or output in push-pull or open-drain.

Signed-off-by: Oliver Schmidhauser <oliver.schmidhauser@leica-geosystems.com>
2026-07-14 09:56:45 -04:00
Zafer SEN
b4a61c4bfe drivers: modem: hl78xx: allow GNSS timeout updates during active search
Allow hl78xx_gnss_set_search_timeout() to update the GNSS search
timeout while a search is already in progress.

When GNSS is searching, a new timeout value now reschedules the
active timeout work item. Setting the timeout to 0 disables the
active search timeout. Additional timer cleanup is performed when
leaving the search state and when GNSS stop events are received.

Signed-off-by: Zafer SEN <zafersn93@gmail.com>
2026-07-14 09:55:50 -04:00
Sylvio Alves
9efa09f562 drivers: mbox: esp32 mailbox support on esp32c5 and esp32p4
Add esp32c5 and esp32p4 support to the esp32 mailbox driver. The HP and
LP cores signal each other through the PMU software interrupt, the same
mechanism used on the esp32c6, with the esp32p4 LP interrupt status bit
handled per its register layout.

The esp32p4 LP core uses a multi-vectored interrupt controller that
jumps directly to the handler, so tag the LP PMU handler with
LP_CORE_ISR_ATTR so it saves and restores registers and returns with
mret; on the single-vector esp32c5 and esp32c6 the attribute is empty.
Also shrink the esp32p4 LP ulp_ram region so it stops before the shared
ulp_shm block that holds the mailbox coordination data, matching the HP
view and preventing the loader from clobbering it.

Mark the esp32c5 and esp32p4 mailbox nodes okay to match the other socs.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-07-14 09:54:55 -04:00
cyliang tw
765153a292 drivers: spi: fix numaker uspi driver without FIFO buffer
On USCI the shallow buffer is not SPI FIFO buffers RX words.
The pipelined pattern can't work. So revised spi_numaker_usci_txrx.
More, USCI SPI only supports 4–16 bit words, not accepts 24/32.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2026-07-14 09:53:31 -04:00
Tony Han
dae6d18e5c drivers: ethernet: sam_gmac: fix phy-connection-type value for rgmii
The value 2 of "phy-connection-type" is for "gmii" and it is misused
for "rgmii".
Fix the value the driver and update "phy-connection-type" from "gmii"
to "rgmii" in the dts file for sama7g54-ek board.

Signed-off-by: Tony Han <tony.han@microchip.com>
2026-07-14 09:51:19 -04:00
Sylvio Alves
9b29792fc4 drivers: clock_control: esp32: fix esp32p4 deep-sleep timer wake
Keep the XTAL powered during sleep when it is the RTC_FAST source by
enabling the RTC_FAST_USE_XTAL sleep sub-mode, and align P4 clock init
(rc_fast bias) with the reference. Add a deep_sleep sample overlay.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-07-14 09:45:04 +02:00
Zafer SEN
b9ce3fea46 drivers: modem: fix include paths after driver reorganization
Fix relative include paths after moving standalone modem drivers into
per-driver subdirectories.

Update legacy HL7800, Quectel BG9x, ST87Mxx, u-blox SARA R4, and WNC
M14A2A sources to include shared modem helper headers from the new
directory depth.

Also clean up the ST87Mxx Kconfig select ordering after the move.

Signed-off-by: Zafer SEN <zafersn93@gmail.com>
2026-07-14 09:44:47 +02:00
Zafer SEN
a3fdc94fd7 drivers: modem: reorganize standalone vendor drivers
Move standalone vendor modem drivers into per-driver subdirectories.

Relocate the legacy HL7800, Quectel BG9x, ST87Mxx, u-blox SARA R4, and
WNC M14A2A source and Kconfig files under dedicated directories. Rename
the SIMCOM Kconfig file to Kconfig.simcom for consistency with the other
driver directories.

Update the standalone modem CMake and Kconfig files to reference the new
paths.

This keeps the vendor_standalone directory organized and leaves the
expanded HL78XX driver in its own directory alongside the other modem
drivers.

Signed-off-by: Zafer SEN <zafersn93@gmail.com>
2026-07-14 09:44:47 +02:00
Mykyta Poturai
d2acad5c56 drivers: xen: dom0: add CPU hotplug sysctl
This sysctl can be used to turn physical CPUs on or off at runtime.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
2026-07-14 09:42:13 +02:00
Jakub Zymelka
f8832c51b5 drivers: adc: nrfx_saadc: Add support for VDD reference
Add support for VDD reference in SAADC SHIM.

Signed-off-by: Jakub Zymelka <jakub.zymelka@nordicsemi.no>
2026-07-14 09:37:39 +02:00
Ryan McClelland
7faec1e3d8 drivers: sensor: adi: adxl362: fix reading_count in stream decoder
adxl362 hardcoded reading_count = 1 despite its decode loop being
capable of filling multiple readings[] entries up to max_count.

The memset and header initialization were also inside the loop body,
which zeroed previously decoded readings on each iteration. Split the
decode into separate SENSOR_CHAN_DIE_TEMP and accel loops, moving the
memset and header setup (base_timestamp_ns, shift) before each loop and
setting reading_count to the actual decoded sample count afterwards.

While here, fix two coupled bugs exposed once multiple readings are
reported:
- the temperature path memset used sizeof(struct sensor_three_axis_data)
  on a struct sensor_q31_data buffer, zeroing past the end of the
  smaller struct; use sizeof(struct sensor_q31_data) instead.
- sample_num was never incremented in the loop, so every reading was
  given an identical timestamp_delta; increment it per decoded sample.

Assisted-by: Claude:claude-sonnet-4.6
Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-07-13 16:17:46 -05:00
Ryan McClelland
a7bbae9c4c drivers: sensor: adi: adxl372: fix reading_count in stream decoder
adxl372 hardcoded reading_count = 1 despite its decode loop being
capable of filling multiple readings[] entries up to max_count.

Set reading_count to the actual decoded sample count after the loop
completes.

Assisted-by: Claude:claude-sonnet-4.6
Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-07-13 16:17:46 -05:00
Ryan McClelland
24481b75c2 drivers: sensor: adi: adxl355: fix reading_count in stream decoder
adxl355 hardcoded reading_count = 1 despite its decode loop being
capable of filling multiple readings[] entries up to max_count.

Set reading_count to the actual decoded sample count after the loop
completes.

Assisted-by: Claude:claude-sonnet-4.6
Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-07-13 16:17:46 -05:00
Ryan McClelland
a85e3b69fd drivers: sensor: adi: adxl345: fix reading_count in stream decoder
adxl345 hardcoded reading_count = 1 despite its decode loop being
capable of filling multiple readings[] entries up to max_count.

Set reading_count to the actual decoded sample count after the loop
completes.

Assisted-by: Claude:claude-sonnet-4.6
Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-07-13 16:17:46 -05:00