Commit graph zephyr/dts/riscv
Author SHA1 Message Date
Fiona Behrens
a36a77e9b8 drivers: reset: add ch32 reset controller
Add reset driver for the reset part of the ch32 rcc.

Use this new reset driven in `wch,usart` to reset the usart peripheral
before use.

Signed-off-by: Fiona Behrens <me@kloenk.dev>
2026-08-19 18:40:22 -04:00
Robert Robinson
6ca5bae9aa dts: arm: nordic: Add support for nRF7120e
Move dts parameters common to nrf7120 and nRF7120e into common file.
Add nrf7120e specific dts files.

Signed-off-by: Robert Robinson <robert.robinson@nordicsemi.no>
2026-08-18 10:26:05 +01:00
Daniel Schultz
f1a01291b5 boards: aesc: elemrv_flask: Add ElemRV-H
Add board, SoC, and devicetree support for ElemRV-H, an open-source
RISC-V microcontroller built on the Hydrogen platform.

The Hydrogen SoC integrates a VexiiRiscv core (RV32I_Zicsr_Zifencei)
clocked at 50 MHz with UART, GPIO, and pin multiplexer peripherals.

Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
2026-08-17 20:50:07 -05:00
Jeremy Bettis
5b6cc88740 dts: riscv: ite: move pinctrl container node to root
Move the ite,it8xxx2-pinctrl container node from the /soc node to the
root / node.

The pin-controller node is a logical container for pin configuration
states rather than a memory-mapped bus peripheral on the SoC bus. When
located inside /soc, DTC treats its children as addressable by the SoC
bus address/size cells, triggering avoid_unnecessary_addr_size
warnings/errors. Moving it to the root matches the convention used across
other SoC families in Zephyr (such as npcx and rp2040).

Assisted-by: Antigravity:gemini-1.5-pro
Signed-off-by: Jeremy Bettis <jbettis@google.com>
2026-08-12 19:27:51 -04:00
Fin Maaß
2b254cf94c drivers: ethernet: wch: allign devicetree structure
Allign the devicetree structure of the wch ethernet
nodes wich the other existing nodes, that also use the
Synopsys Designware IP.

Signed-off-by: Fin Maaß <info@finmaass.de>
2026-08-12 09:47:10 -07:00
Fin Maaß
82fc84fca0 dts: bindings: ethernet: mdio: wch: use snps,dwmac-mdio
As per our documentation, we have to
reuse bindings from Linux, there they use
"snps,dwmac-mdio", so let's use the same one
here in zephyr.

Signed-off-by: Fin Maaß <info@finmaass.de>
2026-08-12 09:47:10 -07:00
Fin Maaß
13fe0a115e dts: bindings: ethernet: mdio: esp32: use snps,dwmac-mdio
As per our documentation, we have to reuse bindings from Linux, there
they use "snps,dwmac-mdio", so let's use the same one here in zephyr.
The esp32 itself is not in Linux, but the ethernet IP from Synopsys is.

Signed-off-by: Fin Maaß <info@finmaass.de>
2026-08-12 09:47:10 -07:00
Camille BAUD
530022cbf1 bluetooth: bflb: Harmonize interrupts settings where possible
Pick IRQs from DTS when possible

Signed-off-by: Camille BAUD <mail@massdriver.space>
2026-08-12 10:03:22 -04:00
Camille BAUD
33579adbfe drivers: bluetooth: wifi: Add BLE and WIFI support for BL616CL
Add support for BLE and WIFI on BL616CL.
Harmonize WiFi6 Blob/HW pair.

Signed-off-by: Camille BAUD <mail@massdriver.space>
2026-08-12 10:03:22 -04:00
Michał Stasiak
876ebb23ce dts: nordic: nrf54lm20: provide dedicated cpuflpr dtsi
Added DTS include files dedicated to each SoCs
FLPR core.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2026-08-07 06:44:41 -04:00
Jeremy Bettis
6c8e029d16 dts: riscv: ite: fix avoid_unnecessary_addr_size warnings
Remove unnecessary #address-cells and #size-cells properties from the
ite,it8xxx2-pinctrl node. These properties are not needed because the
pin-controller node does not have any memory-mapped child nodes with
reg properties, and their presence triggers an
avoid_unnecessary_addr_size DTC warning.

Signed-off-by: Jeremy Bettis <jbettis@google.com>
2026-08-05 18:38:52 +01:00
Ruibin Chang
29d68c0640 drivers/pwm/it51xxx: support HW dimming mode for pwm driver
Support HW dimming mode for pwm driver, our HW dimming mode
only supports pwm channel 0, 1, 7.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2026-08-04 06:53:59 -04:00
Sylvio Alves
bf0c26b7bb drivers: clock_control: esp32: add emac ptp clock
Describe the EMAC PTP reference clock as a second clock on the
esp32p4 Ethernet node so it can be enabled and queried through
the clock control driver.

The rate is resolved from the PTP reference clock source, so
Ethernet PTP support does not need to assume a fixed frequency.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-08-03 15:05:12 -04:00
Tiago Medicci
a7fcc8dfd8 dts: riscv: espressif: Add ana_cmpr nodes for esp32p4/c5/h2
Add disabled-by-default ana_cmpr nodes for the SoCs that have this
peripheral: two units on ESP32-P4 (sharing GPIO_PAD_COMP_INTR_SOURCE)
and one unit each on ESP32-C5 (GPIO_EXT_SOURCE) and ESP32-H2
(GPIO_INTR_SOURCE, shared with the GPIO peripheral's own interrupt).

Signed-off-by: Tiago Medicci <tiago.medicci@espressif.com>
2026-08-03 15:03:02 -04:00
Elie Carrot
1ae3cf06e7 soc: add devicetrees for WCH CH570/2 and bindings for CH5xx peripherals
This commit introduces the following changes:
- Add device tree definitions for the Qingke V3C cpu
- Add device tree definitions for the CH570 SoC
- Add bindings for UART, GPIO and pin control

Signed-off-by: Elie Carrot <elie.carrot@smile.fr>
2026-08-03 15:00:06 -04:00
Tim Lin
4ab2724443 drivers/smbus: it51xxx: Implement SMBus driver for it51xxx series
The driver supports up to nine SMBus controllers and implements the
standard SMBus protocols, except for Block Process Call.

It also supports an optional FIFO mode that uses the controller's
dedicated 32-byte FIFOs to reduce the interval between transferred
bytes and improve clock stretching during SMBus transactions.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2026-08-03 08:49:08 -04:00
Perry Naseck
feeb043b18 wch: ch32v20x: Set clock default to full 144 MHz
This commit sets the wch default clock to its full speed
of 144 MHz. This is not an overclock.

Signed-off-by: Perry Naseck <pnaseck@media.mit.edu>
2026-07-31 13:01:42 -04:00
Fin Maaß
de54141bbf dts: ethernet: wch: add snps,dwmac
Add snps,dwmac to all ethernet macs, that
use the Synopsys DesignWare MAC.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-07-30 07:50:20 -05:00
Fin Maaß
7059d34f39 dts: ethernet: esp32: add snps,dwmac
Add snps,dwmac to all ethernet macs, that
use the Synopsys DesignWare MAC.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-07-30 07:50:20 -05:00
Hong Nguyen
2794c3caae dts: riscv: espressif: add esp32c6-mini-n4
Add support for esp32c6-mini-n4 device tree.

Signed-off-by: Hong Nguyen <hong.nguyen.k54@gmail.com>
2026-07-28 20:50:51 -04:00
William Markezana
5d9c3dbda6 dts: riscv: bflb: add BL61x CAN (ISO11898) node
Add the disabled can@2000aa00 controller node for the BL61x SoC, to be
enabled per-board. The node uses the bflb,bl61x-can binding and CLIC
interrupt 46.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-07-28 18:12:39 -04:00
Fin Maaß
267f61a77d ethernet: dwc_mac: esp32p4 support
add support for the esp32p4

Signed-off-by: Fin Maaß <info@finmaass.de>
2026-07-28 12:31:19 -07:00
Hongquan Li
7a274ae9d4 dts: espressif: esp32p4: Add N16R32 variant
Add a SIP-level dtsi for ESP32-P4 variants combining 16 MB of
external NOR flash with 32 MB of in-package PSRAM, mirroring the
existing esp32p4_n16r8.dtsi. Used by the Waveshare
ESP32-P4-WIFI6-Dev-Kit board.

Signed-off-by: Hongquan Li <hongquan.li@processmission.com>
2026-07-28 11:37:20 +01:00
Liu Changjie
b9722efb68 drivers: clock_control: wch: support CH32H41X 480MHz init
Extend the WCH RCC clock driver for the CH32H41X series. Add the H41X
PLL binding and SoC clock node, handle the H41X clock-enable register
names and FPRE prescaler, and implement the 480 MHz SYSCLK and
120 MHz HCLK bring-up sequence.

Select the H41X-specific path from the RCC source compatible in
devicetree. Existing CH32V00X, CH32V20X, and CH32V30X configurations
remain unaffected.

Signed-off-by: Liu Changjie <liucj1228@outlook.com>
2026-07-27 11:36:23 -07:00
Liu Changjie
16405ef6d9 soc: wch: add CH32H41X series (CH32H417 dual-core)
Add the CH32H41X SoC series under the ch32v family. The CH32H417 is
an asymmetric dual-core (AMP) RISC-V part with a QingKe V3F boot
core and a QingKe V5F application core.

Model the two cores as cpuclusters with separate CPU descriptions,
runtime-idle power states, interrupt entry, vector handling, and
non-overlapping memory. Keep the external HSE frequency
board-specific.

The optional SOC_CH32H417_BOOT_V5F setting lets the V3F early-init
hook wake the V5F image at its real flash address, 0x08010000, while
allowing standalone V3F applications to disable that behavior.

Signed-off-by: Liu Changjie <liucj1228@outlook.com>
2026-07-27 11:36:23 -07:00
Hongquan Li
c1c13f7715 dts: espressif: esp32p4: Add N32 variants and 32 MB partitions
Add SIP-level dtsi files for 32 MB flash ESP32-P4 variants:
esp32p4_n32r32.dtsi for the ESP32-P4NRW32 SIP (32 MB in-package
PSRAM and 32 MB external NOR flash) and esp32p4_lpcore_n32.dtsi
for the LP core on 32 MB flash parts.

Also add a default 32 MB partition layout with the 0x2000 boot
offset, mirroring the existing 0x1000 32 MB layout.

Signed-off-by: Hongquan Li <hongquan.li@processmission.com>
2026-07-25 17:09:02 +02:00
Tim Lin
591aebf3a7 mgmt: ec_host_cmd: shi_ite: Switch pinctrl states during device PM
Apply the default pinctrl state during PM_DEVICE_ACTION_RESUME to restore
normal SHI operation.
Apply the sleep pinctrl state during PM_DEVICE_ACTION_SUSPEND to disable
the SHI interface pins and prevent leakage.

This lets board/shim code control the pin state purely via
pm_device_runtime_get()/put().

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2026-07-24 14:10:12 +02:00
Dhanoo Surasarang
f7a3680399 dts: riscv: nordic: Fix nRF7120 cpuflpr_mram write-block-size
The MRAMC driver requires write-block-size to be a multiple of the
16-byte MRAM word size. Set write-block-size to 16 to match the
hardware constraint and the cpuapp_mram definition.

Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
2026-07-21 14:09:29 -04:00
Fin Maaß
8d2ad20b27 dts: qemu: riscv: move cpu common props to cpus
move the common cpu props to the
parent cpus node.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-07-20 17:30:37 -05:00
Perry Naseck
78ed82c414 wch: ch32v20x: Remove redundant HSE clock frequency
This commit removes a redundant HSE clock frequency definition for wch.
This value is really dependent on the component placed on a board, so
two layers of default are not necessary.

Signed-off-by: Perry Naseck <pnaseck@media.mit.edu>
2026-07-19 09:54:29 -05:00
Ren Chen
b5fb5c845b drivers: flash: it51xxx_m1k: support write/read protect op-code
Add op-code write/read protect support for it51xxx m1k driver.

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2026-07-16 10:45:54 -04:00
Vedant Malkar
33950c5c1b soc: shakti: add Ganga SoC
Adds SoC support for SHAKTI Ganga, a 64-bit
RISCV SoC from SHAKTI processor initiative at
RISE Lab, IIT Madras. Ganga is commonly ran as
soft core on FPGA boards.

This commit adds SoC family Kconfig and
the base devicetree.

Signed-off-by: Vedant Malkar <vedantitsme@gmail.com>
2026-07-15 10:44:27 +02:00
Sylvio Alves
1343660a91 soc: espressif: add esp32p4 nocache memory support
Add non-cacheable memory support on the esp32p4 by reserving a
power-of-two window at the top of HP SRAM and marking it
non-cacheable with a PMA NAPOT entry at boot. The window keeps its
normal cached address so it stays reachable by the DMA engine,
while CPU accesses bypass the cache, so both masters see coherent
data through one address.

The region size comes from the sramhp_nocache devicetree node and
the base is derived per silicon revision, whose SRAM and cache
layouts differ. The PMA entry is re-applied on wake from standby
because the PMA CSRs are volatile across CPU power-down sleep.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-07-14 20:07:22 -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
Adrian Śliwa
2150a55a0d dts: riscv: openisa: rv32m1: fix peripheral reg sizes
Several peripheral reg sizes in rv32m1.dtsi are too small and do not
cover their full documented register maps.

Update the affected ranges to match the actual peripheral layouts:

  gpio*:   0x14  -> 0x40    PDDR @ 0x14 ends at 0x18; 0x40 matches
                            the 0x40-aligned port slots and every
                            other Kinetis dtsi (nxp_kw41z, nxp_k6x,
                            nxp_k2x, nxp_k8x, nxp_ke1x*).
  lpuart*: 0x2C  -> 0x1000  WATER @ 0x2C ends at 0x30; 0x1000
                            matches nxp_k8x and nxp_k32l2b3.
  lpi2c*:  0x170 -> 0x1000  SRDR @ 0x170 ends at 0x174; 0x1000
                            matches the 0x1000-spaced layout.
  pcc*:    0x200 -> 0x1000  CLKCFG[130] runs to 0x208; 0x1000
                            matches nxp_ke1xf/nxp_ke1xz.
  intmux1: 0x20  -> 0x200   Typo - intmux0 (same IP, same struct)
                            is 0x200.

Signed-off-by: Adrian Śliwa <asliwa@internships.antmicro.com>
2026-07-10 11:31:47 +01:00
Sylvio Alves
f61a2d5440 drivers: udc_dwc2: add esp32p4 usb otg-hs device controller
Add the ESP32-P4 USB-OTG high-speed controller using the
espressif,esp32-usb-otg-hs binding and the internal UTMI PHY. The
high-speed PHY uses dedicated pins, so no pad configuration is
needed. Enable the controller on the function ev board.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-07-08 17:13:54 +01:00
Sylvio Alves
839b29c5b0 dts: espressif: esp32p4: add usb otg full-speed controller node
Add the ESP32-P4 USB-OTG full-speed controller node using the
espressif,esp32-usb-otg-fs binding, with the internal PHY D+/D- pad
numbers provided through the phy-dp-pin and phy-dm-pin properties.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-07-08 17:13:54 +01:00
Camille BAUD
1fa8bee594 dts: bflb: Add BL616CL DTS
Add BL616CL DTS tree with all working devices

Signed-off-by: Camille BAUD <mail@massdriver.space>
2026-07-08 10:01:48 +02:00
Camille BAUD
cda86a52c6 dts: bflb: Fix missing ranges in sf_ctrl node
The DTS should have a ranges property there.

Signed-off-by: Camille BAUD <mail@massdriver.space>
2026-07-08 10:01:48 +02:00
Omar Naffaa
adf2835224 boards: qemu: riscv32: Update QEMU AIA boards for SMAIA and SSAIA
Updated QEMU AIA board variants to implement the ISA extensions SMAIA
and SSAIA as defined in the AIA specification.

Signed-off-by: Omar Naffaa <onaffaa@qti.qualcomm.com>
2026-07-07 17:24:52 +01:00
William Markezana
28f7ea4b49 soc: bflb: bl61x: add WiFi RF calibration and platform support
Extend bflb_rf_init() to support WiFi mode (WL_API_MODE_ALL) with
TX power targets and country code configuration when CONFIG_BFLB_WIFI
is enabled.

Add WiFi platform glue: MAC ISR wiring, task creation, low-power
stubs, wl80211 RTOS primitives (heap, RNG, timers), and the linker
section for WiFi shared RAM.

Introduce CONFIG_BFLB_BL61X_WL_RMEM_SIZE for PHY/RF retention memory
sizing.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-07-07 13:34:51 +02:00
William Markezana
4e4b0406a0 dts: bflb: bl61x: add WiFi MAC node and shared-memory layout
Add the wifi0 node for the BL61x WiFi MAC peripheral at 0x24b08000
with its devicetree binding.

Introduce bl61x_em_32kb_wifi.dtsi which carves 128 KB from WRAM for
WiFi MAC shared structures (TX/RX descriptors, IPC) via the
non-cached bus-remap alias, and scales sram1 down to 32 KB.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-07-07 13:34:51 +02:00
Tiago Medicci
7d66ebe1f8 driver: input: update Espressif driver for the touch sensor
Update the driver used for ESP32, ESP32-S2 and ESP32-S3 to the
latest version and add support for ESP32-P4.

Signed-off-by: Tiago Medicci <tiago.medicci@espressif.com>
2026-07-06 15:09:21 -04:00
Lucy Wong
80aa6cddaa fix: address coding style and DTS review comments
- systick: split multi-statement lines into one per line (Zephyr style)
- ch32v103.dtsi: add missing reg property alongside ranges in flash0 node

Signed-off-by: Lucy Wong <mova845@outlook.com>
2026-07-06 14:47:28 +01:00
Lucy Wong
44562d3dd1 dts: riscv: wch: add CH32V10x device tree support
Add device tree include files for the CH32V10x SoC family:
- qingke-v3a.dtsi: CPU, PFIC, and systick nodes
- ch32v103.dtsi: peripherals (GPIO, UART, SPI, I2C, DMA, RCC, flash)
- ch32v103c8t6.dtsi: C8T6 variant (LQFP-48, 64K flash)
- ch32v103c8u6.dtsi: C8U6 variant (QFN-48, 64K flash)
- ch32v103c6t6.dtsi: C6T6 variant (LQFP-48, 32K flash)
- ch32v103r8t6.dtsi: R8T6 variant (LQFP-64, 64K flash)
- ch32v10x-clocks.h: clock binding definitions

Signed-off-by: Lucy Wong <mova845@outlook.com>
2026-07-06 14:47:28 +01:00
2bcb7bbff7 drivers: pwm: add support for the CH32V Advanced-control Timer (ADTM)
The ADTM is a superset of the GPTM and has the same core register
layout. See section 11.2.2 of the CH32V003RM for details on the
differences.

Use the same technique as the GD32 driver, i.e. use the same basic
driver with tweaks based on the features.

Add the common 3x GTPM and 1x ADTM Devicetree and pinctrl entries for
the 20x and 30x series and the extra 1x GPTM for the CH32V208 used in
linkw. I can follow up with the other chips in a separate PR.

Tested on the ch32v006evt and linkw by running
`samples/basic/blinky_pwm` and `tests/drivers/pwm/pwm_api` and
checking the output with a logic analyser.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2026-07-04 11:40:54 -04:00
Sylvio Alves
834f3197a5 drivers: dma: esp32: add esp32p4 axi and ahb dma support
Wire the gdma driver to the esp32p4 AXI and AHB DMA instances,
selecting the per-bus LL calls and 8-byte aligned descriptors so
both buses work through the common driver.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-07-03 19:25:47 -04:00
William Markezana
a8de134052 drivers: memc: add BL808 UHS PSRAM driver, enable on M1S Dock
Add a controller and PHY driver for the BL808 UHS PSRAM. The PHY read/write
eye is calibrated at boot by sweeping the DQS/DQ delay taps and latency, so
any supported rate works without per-rate constants. Add the devicetree
nodes and enable on the M1S Dock.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-07-02 12:58:45 -04:00
William Markezana
b1794b149b drivers: clock_control: add BL808 UHS PLL
Add the UHS PLL, a dedicated PLL that feeds only the UHS PSRAM PHY. It is
outside the system clock tree and brought up on demand; the output
frequency comes from the clk_uhspll devicetree node.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-07-02 12:58:45 -04:00
Egill Sigurdur
c846c433ac soc: gd32: add ranges property to flash regions, add F4xx flash sizes
- Adds the `ranges` property to flash regions.
- Addx missing flash region sizes for F4xx subvariant.

Signed-off-by: Egill Sigurdur <egill@egill.xyz>
2026-07-02 12:58:21 -04:00