Commit graph zephyr/dts/riscv
Author SHA1 Message Date
Sylvio Alves
d9c07c9912 soc: esp32h2: fix pmp handling with userspace
Unlike the esp32c6, the esp32h2 did not select RISCV_PMP. Its
linker script also lacked the PMP alignment, userspace, kobject
and rom-section includes, and no PMP region covered the ROM, IRAM
text or flash rodata, so user mode could not be used.

Select RISCV_PMP with 16 slots and unlocked global entries, as on
the esp32c6. Describe the 128 KB ROM as a soc_rom memory region,
map it, the IRAM text and the flash rodata as regions shared by
both modes, and add the missing linker script includes.

Assisted-by: Claude:opus-5
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-10-02 17:43:49 -05:00
84f699ce9b dts: wch: add the missing reset property for the ch32v203f8u
A previous PR added reset support for the UART but missed the 203f8u
variant. Fix.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2026-10-02 17:41:24 -05:00
Fin Maaß
dfa08eff2c soc: telink: take SYS_CLOCK_HW_CYCLES_PER_SEC from devicetree
Move the fixed SYS_CLOCK_HW_CYCLES_PER_SEC values of the SoC and board
Kconfig files into the timebase-frequency property of the cpus node,
which the kernel uses as default for SYS_CLOCK_HW_CYCLES_PER_SEC.

The value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC is unchanged for every
board target, checked by comparing the generated .config of all board
targets before and after the change.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-29 15:51:27 +02:00
Fin Maaß
21c88c1c86 soc: sensry: take SYS_CLOCK_HW_CYCLES_PER_SEC from devicetree
Move the fixed SYS_CLOCK_HW_CYCLES_PER_SEC values of the SoC and board
Kconfig files into the timebase-frequency property of the cpus node,
which the kernel uses as default for SYS_CLOCK_HW_CYCLES_PER_SEC.

The value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC is unchanged for every
board target, checked by comparing the generated .config of all board
targets before and after the change.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-29 15:51:27 +02:00
Fin Maaß
44a303ae24 soc: renode: take SYS_CLOCK_HW_CYCLES_PER_SEC from devicetree
Move the fixed SYS_CLOCK_HW_CYCLES_PER_SEC values of the SoC and board
Kconfig files into the timebase-frequency property of the cpus node,
which the kernel uses as default for SYS_CLOCK_HW_CYCLES_PER_SEC.

The value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC is unchanged for every
board target, checked by comparing the generated .config of all board
targets before and after the change.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-29 15:51:27 +02:00
Fin Maaß
6446ebfdb5 soc: qemu: take SYS_CLOCK_HW_CYCLES_PER_SEC from devicetree
Move the fixed SYS_CLOCK_HW_CYCLES_PER_SEC values of the SoC and board
Kconfig files into the timebase-frequency property of the cpus node,
which the kernel uses as default for SYS_CLOCK_HW_CYCLES_PER_SEC.

The value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC is unchanged for every
board target, checked by comparing the generated .config of all board
targets before and after the change.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-29 15:51:27 +02:00
Fin Maaß
a3d08417d8 soc: microchip: take SYS_CLOCK_HW_CYCLES_PER_SEC from devicetree
Move the fixed SYS_CLOCK_HW_CYCLES_PER_SEC values of the SoC and board
Kconfig files into the timebase-frequency property of the cpus node,
which the kernel uses as default for SYS_CLOCK_HW_CYCLES_PER_SEC.

The value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC is unchanged for every
board target, checked by comparing the generated .config of all board
targets before and after the change.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-29 15:51:27 +02:00
Fin Maaß
5a5aa20234 soc: lowrisc: take SYS_CLOCK_HW_CYCLES_PER_SEC from devicetree
Move the fixed SYS_CLOCK_HW_CYCLES_PER_SEC values of the SoC and board
Kconfig files into the timebase-frequency property of the cpus node,
which the kernel uses as default for SYS_CLOCK_HW_CYCLES_PER_SEC.

The value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC is unchanged for every
board target, checked by comparing the generated .config of all board
targets before and after the change.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-29 15:51:27 +02:00
Fin Maaß
b04f9a7f18 soc: ite: take SYS_CLOCK_HW_CYCLES_PER_SEC from devicetree
Move the fixed SYS_CLOCK_HW_CYCLES_PER_SEC values of the SoC and board
Kconfig files into the timebase-frequency property of the cpus node,
which the kernel uses as default for SYS_CLOCK_HW_CYCLES_PER_SEC.

The value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC is unchanged for every
board target, checked by comparing the generated .config of all board
targets before and after the change.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-29 15:51:27 +02:00
Fin Maaß
8d7335cbf5 soc: gd: take SYS_CLOCK_HW_CYCLES_PER_SEC from devicetree
Move the fixed SYS_CLOCK_HW_CYCLES_PER_SEC values of the SoC and board
Kconfig files into the timebase-frequency property of the cpus node,
which the kernel uses as default for SYS_CLOCK_HW_CYCLES_PER_SEC.

The value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC is unchanged for every
board target, checked by comparing the generated .config of all board
targets before and after the change.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-29 15:51:27 +02:00
Fin Maaß
278c608832 soc: efinix: take SYS_CLOCK_HW_CYCLES_PER_SEC from devicetree
Move the fixed SYS_CLOCK_HW_CYCLES_PER_SEC values of the SoC and board
Kconfig files into the timebase-frequency property of the cpus node,
which the kernel uses as default for SYS_CLOCK_HW_CYCLES_PER_SEC.

The value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC is unchanged for every
board target, checked by comparing the generated .config of all board
targets before and after the change.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-29 15:51:27 +02:00
William Markezana
ff92d02c68 soc: bflb: bl70x: add IEEE 802.15.4 support
Enable the IEEE 802.15.4 radio on the BL70x (BL702) series: add the
ieee802154 devicetree node, compile the RF/platform shim, link the
lmac154/RF blobs, and place the timing-critical lmac154 .tcm_code in ITCM
(otherwise those input sections become orphans at an unloaded address).
Provide CONFIG_BT_HCI_DRIVER_LOG_LEVEL for 802.15.4-only builds so the
shared BLE/802.15.4 platform shim compiles without Bluetooth enabled.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-09-29 15:49:54 +02:00
William Markezana
9ecdab44ae soc: bflb: bl70xl: add IEEE 802.15.4 support
Enable the IEEE 802.15.4 radio on the BL70xL (BL702L) series: add the
ieee802154 devicetree node, compile the RF/platform shim, place the
timing-critical lmac154 code in ITCM, and link the lmac154/RF blobs.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-09-29 15:49:54 +02:00
William Markezana
92a7e51369 soc: bflb: bl61x: add IEEE 802.15.4 support
Enable the IEEE 802.15.4 radio on the BL61x (BL616) series: add the
ieee802154 devicetree node, RF/PHY init via the shared wl_api blobs, the
TCM code section, and link the lmac154 blob. The GLB reset / memcpy shims
required by the BL616 blobs live with the other HAL shims.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-09-29 15:49:54 +02:00
William Markezana
11be30b801 soc: bflb: bl60x: add WiFi platform support
Add the SoC-side glue for the BL602 wifi4 firmware blob: AON RF
power-on, PHY power tables fed from devicetree, the firmware scheduler
task with the wifi_main bring-up wrap, MAC HW DMA-dead recovery, the
WIFI_RAM linker sections, and the IPC glue the wifi4 driver core hooks
into (shared-environment seeding, the E2A mailbox ISR, firmware quirk
workarounds and the TX path with the txl_cntrl_push redirect the blob
needs to put frames on air).

The bl60x_em_8kb_wifi.dtsi snippet enables the WiFi MAC alongside the
8 KB BLE exchange memory: EM keeps the top 8 KB of RAM and WIFI_RAM
covers the 32 KB below it at the vendor ram_wifi origin (0x42042000),
with all_ram/sram0 scaled down so the linker enforces the boundary.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-09-29 07:45:19 +02:00
William Markezana
2344034685 dts: riscv: bflb: bl60x: drop the A extension from the CPU ISA
The SiFive E24 implements the A extension but only supports atomic
operations in its tightly-integrated memories; an AMO issued to OCRAM
bus-faults.  Drop "a" from riscv,isa-extensions so RISCV_ISA_EXT_A is
not enabled from devicetree and the toolchain links the AMO-free
multilib (the kernel already uses ATOMIC_OPERATIONS_C on this SoC).

This replaces the RISCV_ISA_EXT_A override previously carried in
soc/bflb/bl60x/Kconfig.defconfig.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-09-29 07:45:19 +02:00
William Markezana
409d2f3501 dts: riscv: bflb: bl808: add BLE controller node
Add the bflb,bt-hci controller node (disabled by default) and a
bl808_em_32kb.dtsi include that trims 32 KB of WRAM off system RAM for
the BLE Exchange Memory, mirroring the bl60x and bl61x EM includes.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-09-28 14:31:01 -04:00
Tomasz Moń
6af101988c dts: bindings: usb: Specify fifo sizes in devicetree
Add g-rx-fifo-size, g-np-tx-fifo-size and g-tx-fifo-size required
properties to snps,dwc2 compatible. Property names are the same as used
in Linux because Zephyr aims for devicetree source compatibility with
other operating systems.

Specifying fifo sizes in devicetree greatly reduces necessary driver
complexity and allows application developer to adjust the sizes if
necessary to best utilize underlying hardware.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2026-09-25 11:01:47 -05:00
Fin Maaß
ac5613e9bc dts: riscv: qemu: enable Zkr on the virt machines
Add zkr to the ISA extensions of the 32-bit, 32-bit E and 64-bit QEMU
virt machines, including the AIA variant which overrides the list. The
-cpu argument of QEMU is derived from this property, so QEMU implements
the seed CSR and the qemu_riscv32, qemu_riscv32e and qemu_riscv64
boards get an entropy driver.

Tested with tests/drivers/entropy/api on qemu_riscv32, qemu_riscv32e,
qemu_riscv64 and their smp, aia-imsic, aia-direct, smode and opensbi
variants.

Assisted-by: Claude:claude-fable-5-1
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-24 17:12:58 +02:00
Ren Chen
3d193e6f57 drivers: crypto: it51xxx_sha: add interrupt support
This commit introduces SHA completion interrupt handling
instead of disabling global interrupts and polling the status
register. It also stores the register base and synchronization
state (semaphore) in the device configuration and device
data structures, respectively.

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2026-09-24 10:04:09 +02:00
Benjamin Cabé
e879c38612 dts: riscv: esp32p4: add a v3.x soc dtsi with the extra ISA extensions
The hp cores only implement the Zb extensions and Zcb from silicon
revision v3.0 on, so declaring them in esp32p4_common.dtsi would emit
instructions the v1.3 boards cannot execute. Add an esp32p4_rev3.dtsi
next to esp32p4.dtsi for v3.x boards to include instead; the Kconfig
symbols that build -march default from these properties.

Move the base and extension lists up to the cpus node, where the
devicetree spec puts properties identical on every hart, so the v3.x
dtsi overrides one node instead of two.

Zcmp and Zcmt stay out. The cores reverse cm.push and mis-execute
cm.popret, and the workaround is -mno-cm-push-reverse/-mno-cm-popret,
which only the Espressif toolchain has; Zcmt is unknown to the SDK
binutils.

Assisted-by: Claude:opus-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-09-23 10:41:04 +01:00
Sylvio Alves
4460723350 dts: espressif: describe the esp32p4 ppa
The pixel processing accelerator scales, rotates, mirrors and
blends blocks of pixels, and moves them with its own 2D DMA.

It is driven from graphics code rather than through a device, so
the node describes the registers and the transfer done interrupt
it needs and nothing more. Boards that use it enable it.

Assisted-by: Claude:opus-5
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-09-22 17:57:58 +02:00
Daniel Schultz
544e996f0e soc: aesc: hydrogen: Add Clock Controller to ElemRV-H
Add the clock controller and syscon to the Hydrogen platform.
Enable both by default and reduce the syscon priority to load
this driver before the clock controller.

Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
2026-09-22 08:57:27 +03:00
Anuj Deshpande
7abe2f8851 soc: cdac: add C-DAC THEJAS32 SoC support
Add support for the C-DAC THEJAS32 SoC, based on the VEGA ET1031 32-bit
(RV32IM) single-core, in-order RISC-V processor developed under India's
Digital India RISC-V (DIR-V) programme.

The image is loaded into and executed from the 256 KB internal SRAM,
which is mapped at 0x00200000, so execute-in-place is not used. The
kernel system clock is driven by the CLINT machine timer.

THEJAS32 follows the RISC-V privileged specification for trap handling
but uses a custom (non-PLIC) interrupt controller, so the SoC does not
select RISCV_PRIVILEGED. Instead it provides its own reset entry, machine
trap acknowledge and interrupt-management code that routes second-level
interrupts to the THEJAS32 interrupt controller driver and first-level
interrupts to the mie CSR.

The memory map and register definitions were cross-checked against the
C-DAC VEGA board support package.

Signed-off-by: Anuj Deshpande <anuj@makerville.io>
2026-09-18 13:51:15 +01:00
Ren Chen
55d5c598bf drivers: udc: add it51xxx udc driver support
Add usb device driver for it51xxx SoCs.

Tested with:
- USB20CV ch9 test
- cdc-acm/console/hid-mouse/hid-keyboard/dfu/testusb

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2026-09-16 16:13:22 +01:00
TOKITA Hiroshi
605ca63445 soc: andestech: ae350: derive system clock freq from dts
Derive SYS_CLOCK_HW_CYCLES_PER_SEC from devicetree.
This allows to override the system clock frequency.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2026-09-16 07:37:21 +02:00
Krzysztof Chruściński
3bc85babc0 dts: vendor: nordic: nrf54lv10: Add default IPC configuration
If flpr is used on nRF54L series, it will most likely use
IPC service to communicate with the cpuapp. Having the default
configuration simplifies the setup in tests and applications.
ICBMSG backend is used which has the smallest code and the most
features.

Add setting of IPC node to nordic-flpr snippet. After this change
when nordic-flpr is used then only CONFIG_IPC_SERVICE=y is needed
to have IPC communication up and ready.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-09-16 05:59:12 +02:00
Krzysztof Chruściński
891817fe66 dts: vendor: nordic: nrf54l: Add default IPC configuration
If flpr is used on nRF54L series, it will most likely use
IPC service to communicate with the cpuapp. Having the default
configuration simplifies the setup in tests and applications.
ICBMSG backend is used which has the smallest code and the most
features.

Remove ipc node from bsim targets as they do not support VPR.

Add setting of IPC node to nordic-flpr snippet. After this change
when nordic-flpr is used then only CONFIG_IPC_SERVICE=y is needed
to have IPC communication up and ready.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-09-16 05:59:12 +02:00
Adrian Śliwa
e7bad3d41e dts: riscv: sifive: declare zicntr on FU540 and FU740
All five harts on each SoC implement the cycle, time and instret
counters, but the SoC manuals predate the Zicntr name and so never use
it. The devicetree inherited that gap and left the extension
undeclared.

Declaring it enables CONFIG_RISCV_ISA_EXT_ZICNTR, which the arch code
uses to decide whether the counters can be exposed to user mode.

Signed-off-by: Adrian Śliwa <asliwa@internships.antmicro.com>
2026-09-16 05:58:39 +02:00
Michał Stasiak
548b496846 dts: add nRF54LV10A
Added dts for nRF54LV10A SoC.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2026-09-15 14:30:46 +02:00
Marek Matej
8094e61297 dts: espressif: remove the per-module SoC dtsi and Kconfig symbols
Drop the espressif/<soc>/<soc>_<module>.dtsi files in favor of one
<soc>.dtsi per SoC, and matching SOC_ESP32*_<MODULE> symbols in
favor of the plain SoC symbol. SOC_PART_NUMBER now reports the SoC.
Each board instead states its own flash, giving both reg and ranges
because the SoC dtsi no longer sets either, and its own psram size where
it has one.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Marek Matej <marek.matej@espressif.com>
2026-09-14 08:42:20 -04:00
Sylvio Alves
597f9e1125 drivers: bluetooth: hci: add esp32c61 support
Enable the esp32 HCI driver on the ESP32-C61: extend the
controller Kconfig gates, report the C61 vendor hardware
variant id, add the hci devicetree node and enable it on the
esp32c61_devkitc board. The C61 BLE controller reuses the C6
controller sources and blobs through the hal.

Assisted-by: Claude:opus-4-8
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-09-09 18:14:06 -04:00
Sylvio Alves
491fa7b322 drivers: wifi: esp32: add esp32c61 support
Enable the esp32 Wi-Fi driver on the ESP32-C61: extend the FTM
and mesh Kconfig gates, add the wifi devicetree node and enable
it on the esp32c61_devkitc board.

Assisted-by: Claude:opus-4-8
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-09-09 10:41:29 -04:00
Raffael Rostagno
c6eae4b66c soc: esp32: pm: Improve sleep path timing
Rework the sleep path timing calculation to improve precision by
calculating sleep time and wakeup margins with the right time
references.

When CONFIG_ESP32_PM_SLP_IRAM_OPT is enabled, the early wake path
(RTC timer re-enable, GPIO restore, and post-exit ops) is also
placed in IRAM so resume does not refill from flash after CPU
power down.

Light sleep DT exit-latency-us is 0 so PM does not shorten the
budget; the RTC lead is applied in power.c. C5 keeps flash powered
in light sleep via SOC_ESP32_PM_FLASH_KEEP_POWER_IN_LSLP.

Assisted-by: Grok:4.6
Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2026-09-08 16:04:39 +02:00
Adrian Śliwa
7ef9191c72 lowrisc: opentitan: fix rv_timer base address
RV_TIMER_BASE is derived from the mtimer devicetree node but the
register offsets used with it are relative to the rv_timer base at
0x40100000. Since commit f11f68eade that node describes only the
mtime and mtimecmp registers, so DT_REG_ADDR() returns 0x40100110
rather than the timer's base. The function soc_early_init_hook()
therefore writes CTRL to 0x40100114 and INTR_ENABLE0 to 0x40100210,
instead of 0x40100004 and 0x40100100.

Signed-off-by: Adrian Śliwa <asliwa@internships.antmicro.com>
2026-09-07 17:56:28 +02:00
Elie Carrot
9709a1ae7d drivers: comparator: add WCH CH5xx comparator driver support
Add support for the comparator peripheral found in WCH CH5xx SoCs.
This commit also extends the comparator API with a child API to allow
dynamic configuration of the negative reference voltage. This feature
is intended to enable software-based ADC implementations using the
comparator peripheral.

Signed-off-by: Elie Carrot <elie.carrot@smile.fr>
2026-09-04 06:19:22 -04:00
53be6f9321 drivers: hwinfo: add a WCH ESIG hardware ID driver
The WCH ESIG unit holds a 96 bit unique ID. Expose via the hwinfo
driver.

The WCH RCC unit accumulates the recent reset causes. Expose via the
hwinfo APIs.

Tested on the `bluepillplus_ch32v203` by running
`tests/drivers/hwinfo/api` and verifying the ID matches minichlink, and
that pressing the reset button makes the cause change.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2026-09-03 09:37:56 +02:00
5f2536ba15 drivers: flash: add a CH32V on-chip flash controller
The CH32V series has between 16 KiB and 480 KiB of in-place
programmable program flash. Add a driver that implements the Zephyr
flash API, the appropriate Devicetree nodes, and overlays for the
`flash_shell` sample.

For the sample, trim back the default settings to fit within the ~64
KiB of flash and 8 to 20 K of RAM and add test partitions.

Use Devicetree to define the erase value. For the 003 and 006, this is
the common 0xFF but for the 20x/30x this is 0xE339. The flash API
works correctly on the 20x/30x but systems that require the erase
value to be a single byte, or assume that it is 0xFF, will not. This
can be addressed in future PRs.

Tested on the ch32v00x_core and bluepillplus_ch32v203 board by loading
the sample and running `flash test ...`. The
tests/drivers/flash/common test passes on the bluepillplus except for
the erase test which fails due to the ch32v203's half word erase
pattern.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2026-09-02 19:17:32 +01:00
Fin Maaß
37d9bd2360 dts: microchip: drop GPIO interrupt-controller properties
GPIO controllers in the PIC64GX and SmartFusion2 DTS files still
declare interrupt-controller properties even though Zephyr does not
model GPIO controllers as interrupt controllers.

Drop interrupt-controller, #interrupt-cells, and the related
#address-cells property from those GPIO nodes while keeping their
interrupt lines intact for the driver.

Tested with:
- git diff --check
- west build -d /tmp/zephyr-dtapi -p always -b native_sim
  zephyr/tests/lib/devicetree/api
- cmake --build /tmp/zephyr-dtapi -t run

Assisted-by: Codex:GPT-5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-09-01 11:05:21 +01:00
Sylvio Alves
8a46234e74 dts: espressif: describe the esp32p4 mipi-dsi peripheral
Add bindings for the ESP32-P4 MIPI DSI host and for the DPI
scanout controller behind it, and the nodes describing them.

The bridge streams a framebuffer to the host DPI port rather
than being a peripheral of its own, so it is a child of the
host and carries no registers.

Assisted-by: Claude:opus-4-8
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-08-28 06:47:38 -04:00
Sylvio Alves
b1e7a0d408 dts: riscv: espressif: add esp32c61 devicetree
Add the ESP32-C61 devicetree, dt-bindings headers and the
wroom-1 module dtsi files. The devkitc module is a wroom-1
n8r2, so its dtsi carries 8 MB flash and 2 MB psram. UART0
uses GPIO11/GPIO10, the ROM console pins. GPIO15-21 are the
MSPI flash pads and are marked reserved.

Assisted-by: Claude:opus-4-8
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-08-27 21:23:34 +01:00
Alexandra Covaci
5fbfe2f96a dts: riscv: microchip: fix GPIO build warning
During build, we are presented with a warning from the devicetree compiler
<Warning (interrupt_provider): /soc/gpio@20120000: Missing #address-cells
in interrupt provider>. This patch strips the interrupt-controller
property from GPIO banks.

Signed-off-by: Alexandra Covaci <Alexandra.Covaci@microchip.com>
2026-08-27 12:11:26 +01:00
Sylvio Alves
eb3d30e26b dts: riscv: esp32p4: add missing lp core isa extensions
The lp core is an rv32imac processor with the zicsr and
zifencei extensions, but the devicetree only declared i, m, c
and zicsr. Add the missing a and zifencei extensions so the lp
core image builds with native atomic instructions and fence.i
support, matching the esp32c5 and esp32c6 definitions.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-08-27 12:10:10 +01:00
Ayush Singh
aa17c16d11 dts: riscv: microchip: mpfs: Add s-mode
- Add property to allow using all u54 cores in S-mode in Zephyr.
- Tested using beaglev_fire.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2026-08-25 11:24:09 +02:00
Fin Maaß
39a9edc0b2 dts: ethernet: wch: describe multicast filter capabilities
Add the snps,multicast-filter-bins and snps,perfect-filter-entries
properties to the ethernet nodes. The CH32V307 and CH32V317 have a
64 bin hash table and 4 MAC address entries.

Assisted-by: Claude Code:claude-fable-5
Signed-off-by: Fin Maaß <info@finmaass.de>
2026-08-22 19:19:05 -04:00
Fin Maaß
b5e767e8fa dts: ethernet: esp32: describe multicast filter capabilities
Add the snps,perfect-filter-entries property to the ethernet nodes.
The EMAC of the ESP32 and ESP32-P4 does not implement the multicast
hash table, but has 8 MAC address entries besides the station
address.

Assisted-by: Claude Code:claude-fable-5
Signed-off-by: Fin Maaß <info@finmaass.de>
2026-08-22 19:19:05 -04:00
Hongquan Li
400e39aad4 dts: riscv: espressif: esp32p4: add rtc_timer node
The light sleep path in soc/espressif/common/power.c requires the
rtc_timer (LP timer) counter device as its wakeup timer. Without the
node, light sleep is silently skipped at runtime.

Add the node disabled, matching the layout used by esp32c5/c6/h2;
users enable it and set wakeup-source via overlay.

Signed-off-by: Hongquan Li <hongquan.li@processmission.com>
2026-08-21 13:38:03 -07:00
Sylvio Alves
b5566f0149 dts: riscv: esp32p4: add the required unit property to i2s nodes
The i2s binding marks unit as required, so any build enabling one
of the esp32p4 i2s nodes failed devicetree validation. Number the
three controllers and add the i2s_api loopback overlay for the
function ev board that surfaced it.

Declare i2s in the board yaml as well, otherwise twister filters
the suite out before the overlay is ever consulted.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-08-21 17:51:58 +02:00
Joel Guittet
adeeb46e94 dts: espressif: add rmt node to esp32 socs
Add the RMT peripheral node to ESP32, ESP32-S2, ESP32-S3,
ESP32-C3, ESP32-C5, ESP32-C6 and ESP32-H2 devicetrees, with a
pulse_io controller binding. Channels are selected through
pinctrl and consumers reference the controller with a single
channel cell. The ESP32-P4 node already exists and only gains
the pulse_io channel cells property.

Assisted-by: Claude Code:opus-4-8
Signed-off-by: Joel Guittet <joelguittet@gmail.com>
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-08-21 17:51:13 +02:00
Anas Nashif
849f67e6af dts: riscv: wch: fix reset binding include for ch32h417
Commit a36a77e9b8 ("drivers: reset: add ch32 reset controller")
added reset-controller nodes to the WCH dtsi files, but the include
added to ch32h417.dtsi names the binding header ch32_20x_30x-reset.h
while the header introduced by that commit is ch32v20x_30x-reset.h.
This breaks devicetree preprocessing for every ch32h417evt build.

Fix the include to use the correct header name.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-08-20 08:51:48 +02:00