[PATCH v2 4/7] dt-bindings: remoteproc: add Allwinner sun55i-rproc schema

From: Tim Michals

Date: Sat Sep 26 2026 - 20:21:24 EST


Add Device Tree binding schema for the Allwinner XuanTie E907 RISC-V
remote processor subsystem integrated into Allwinner A523, A527, and
T527 (sun55i) SoCs.

The binding defines the memory resources (configuration registers,
SRAM Space 0, SRAM Space 1, and optional remap controller), clocks,
resets, reserved memory regions, and hardware mailbox channels.

Signed-off-by: Tim Michals <tcmichals@xxxxxxxxx>
---
.../remoteproc/allwinner,sun55i-rproc.yaml | 146 ++++++++++++++++++
1 file changed, 146 insertions(+)
create mode 100644 Documentation/devicetree/bindings/remoteproc/allwinner,sun55i-rproc.yaml

diff --git a/Documentation/devicetree/bindings/remoteproc/allwinner,sun55i-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/allwinner,sun55i-rproc.yaml
new file mode 100644
index 000000000000..53e3f4faaa76
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/allwinner,sun55i-rproc.yaml
@@ -0,0 +1,146 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/allwinner,sun55i-rproc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allwinner XuanTie E906/E907 RISC-V Remoteproc
+
+maintainers:
+ - Jernej Skrabec <jernej.skrabec@xxxxxxxxx>
+ - Samuel Holland <samuel@xxxxxxxxxxxx>
+ - Tim Michals <tcmichals@xxxxxxxxx>
+
+description:
+ The Allwinner T527, A527, and A523 (sun55i) SoCs integrate a T-Head
+ (XuanTie) E906 or E907 RISC-V co-processor alongside the ARM Cortex-A55
+ cluster. The co-processor runs bare-metal firmware loaded and lifecycle-
+ managed by the Linux remoteproc framework.
+
+ The driver controls CCU-integrated clocks (bus, core) and resets
+ (cfg, core), programs the hardware boot-vector register, maps
+ internal SRAM (SRAM_A3) windows, and connects to the Allwinner
+ hardware mailbox (CPUX_MSGBOX) for VirtIO RPMsg IPC.
+
+properties:
+ compatible:
+ const: allwinner,sun55i-a523-rproc
+
+ reg:
+ minItems: 1
+ maxItems: 4
+ description:
+ Memory-mapped register regions. The following named regions are
+ supported (all optional except at least one of r_sram or r_sram1) -
+ "cfg" for RISC-V core control and boot-vector registers,
+ "r_sram" for dedicated MCU SRAM Space 0,
+ "r_sram1" for switchable MCU SRAM Space 1,
+ "remap" for the hardware remap control register.
+
+ reg-names:
+ minItems: 1
+ maxItems: 4
+ items:
+ enum:
+ - cfg
+ - r_sram
+ - r_sram1
+ - remap
+
+ clocks:
+ minItems: 1
+ maxItems: 5
+
+ clock-names:
+ minItems: 1
+ items:
+ - const: bus
+ - const: core
+ - const: sram
+ - const: msgbox
+ - const: parent
+
+ resets:
+ minItems: 1
+ maxItems: 4
+
+ reset-names:
+ minItems: 1
+ items:
+ - const: cfg
+ - const: core
+ - const: sram
+ - const: msgbox
+
+ mboxes:
+ maxItems: 2
+ description:
+ Exactly two mailbox channels from the Allwinner CPUX_MSGBOX controller,
+ one receive channel (RISC-V-to-ARM) and one transmit channel
+ (ARM-to-RISC-V), used for VirtIO RPMsg kick notifications.
+
+ mbox-names:
+ items:
+ - const: rx
+ - const: tx
+
+ firmware-name:
+ maxItems: 1
+ description:
+ Name of the ELF firmware image to load from /lib/firmware/.
+ Defaults to "riscv-firmware.elf" if not specified.
+
+ memory-region:
+ minItems: 1
+ items:
+ - description: VirtIO vring buffer region (DDR carveout)
+ - description: DRAM firmware execution carveout
+ - description: RemoteProc trace buffer carveout
+
+ memory-region-names:
+ minItems: 1
+ items:
+ - const: vram
+ - const: dram
+ - const: trace
+
+ interrupts:
+ maxItems: 1
+ description:
+ Optional hardware crash-notification interrupt. When present the
+ driver calls rproc_report_crash() on assertion.
+
+ interrupt-names:
+ items:
+ - const: crash
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - clocks
+ - clock-names
+ - resets
+ - reset-names
+ - mboxes
+ - mbox-names
+
+additionalProperties: false
+
+examples:
+ - |
+ remoteproc@7130000 {
+ compatible = "allwinner,sun55i-a523-rproc";
+ reg = <0x07130000 0x1000>,
+ <0x07280000 0x40000>,
+ <0x072c0000 0x40000>,
+ <0x07010364 0x4>;
+ reg-names = "cfg", "r_sram", "r_sram1", "remap";
+ clocks = <&mcu_ccu 3>, <&mcu_ccu 4>;
+ clock-names = "bus", "core";
+ resets = <&mcu_ccu 0>, <&mcu_ccu 1>;
+ reset-names = "cfg", "core";
+ mboxes = <&msgbox 8>, <&msgbox 9>;
+ mbox-names = "rx", "tx";
+ firmware-name = "riscv-firmware.elf";
+ };
--
2.43.0