[PATCH] dt-bindings: remoteproc: ti,keystone-rproc: Convert to DT schema
From: Bhargav Joshi
Date: Mon Oct 05 2026 - 15:15:19 EST
Convert TI Keystone DSP remoteproc binding from legacy text format to DT
schema. No functional changes are introduced during conversion.
Signed-off-by: Bhargav Joshi <j.bhargav.u@xxxxxxxxx>
---
.../bindings/remoteproc/ti,keystone-rproc.txt | 182 ---------------------
.../bindings/remoteproc/ti,keystone-rproc.yaml | 140 ++++++++++++++++
2 files changed, 140 insertions(+), 182 deletions(-)
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.txt b/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.txt
deleted file mode 100644
index 8475521336333..0000000000000
--- a/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.txt
+++ /dev/null
@@ -1,182 +0,0 @@
-TI Keystone DSP devices
-=======================
-
-The TI Keystone 2 family of SoCs usually have one or more (upto 8) TI DSP Core
-sub-systems that are used to offload some of the processor-intensive tasks or
-algorithms, for achieving various system level goals.
-
-These processor sub-systems usually contain additional sub-modules like L1
-and/or L2 caches/SRAMs, an Interrupt Controller, an external memory controller,
-a dedicated local power/sleep controller etc. The DSP processor core in
-Keystone 2 SoCs is usually a TMS320C66x CorePac processor.
-
-DSP Device Node:
-================
-Each DSP Core sub-system is represented as a single DT node, and should also
-have an alias with the stem 'rproc' defined. Each node has a number of required
-or optional properties that enable the OS running on the host processor (ARM
-CorePac) to perform the device management of the remote processor and to
-communicate with the remote processor.
-
-Required properties:
---------------------
-The following are the mandatory properties:
-
-- compatible: Should be one of the following,
- "ti,k2hk-dsp" for DSPs on Keystone 2 66AK2H/K SoCs
- "ti,k2l-dsp" for DSPs on Keystone 2 66AK2L SoCs
- "ti,k2e-dsp" for DSPs on Keystone 2 66AK2E SoCs
- "ti,k2g-dsp" for DSPs on Keystone 2 66AK2G SoCs
-
-- reg: Should contain an entry for each value in 'reg-names'.
- Each entry should have the memory region's start address
- and the size of the region, the representation matching
- the parent node's '#address-cells' and '#size-cells' values.
-
-- reg-names: Should contain strings with the following names, each
- representing a specific internal memory region, and
- should be defined in this order,
- "l2sram", "l1pram", "l1dram"
-
-- ti,syscon-dev: Should be a pair of the phandle to the Keystone Device
- State Control node, and the register offset of the DSP
- boot address register within that node's address space.
-
-- resets: Should contain the phandle to the reset controller node
- managing the resets for this device, and a reset
- specifier. Please refer to either of the following reset
- bindings for the reset argument specifier as per SoC,
- Documentation/devicetree/bindings/reset/ti-syscon-reset.txt
- for 66AK2HK/66AK2L/66AK2E SoCs or,
- Documentation/devicetree/bindings/reset/ti,sci-reset.yaml
- for 66AK2G SoCs
-
-- interrupts: Should contain an entry for each value in 'interrupt-names'.
- Each entry should have the interrupt source number used by
- the remote processor to the host processor. The values should
- follow the interrupt-specifier format as dictated by the
- 'interrupt-parent' node. The purpose of each is as per the
- description in the 'interrupt-names' property.
-
-- interrupt-names: Should contain strings with the following names, each
- representing a specific interrupt,
- "vring" - interrupt for virtio based IPC
- "exception" - interrupt for exception notification
-
-- kick-gpios: Should specify the gpio device needed for the virtio IPC
- stack. This will be used to interrupt the remote processor.
- The gpio device to be used is as per the bindings in,
- Documentation/devicetree/bindings/gpio/ti,keystone-dsp-gpio.yaml
-
-SoC-specific Required properties:
----------------------------------
-The following are mandatory properties for Keystone 2 66AK2HK, 66AK2L and 66AK2E
-SoCs only:
-
-- clocks: Should contain the device's input clock, and should be
- defined as per the bindings in,
- Documentation/devicetree/bindings/clock/ti,keystone,psc-clock.yaml
-
-The following are mandatory properties for Keystone 2 66AK2G SoCs only:
-
-- power-domains: Should contain a phandle to a PM domain provider node
- and an args specifier containing the DSP device id
- value. This property is as per the binding,
- Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
-
-Optional properties:
---------------------
-
-- memory-region: phandle to the reserved memory node to be associated
- with the remoteproc device. The reserved memory node
- can be a CMA memory node, and should be defined as
- per the bindings in
- Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
-
-
-Examples:
----------
-
-1.
- /* 66AK2H/K DSP aliases */
- aliases {
- rproc0 = &dsp0;
- rproc1 = &dsp1;
- rproc2 = &dsp2;
- rproc3 = &dsp3;
- rproc4 = &dsp4;
- rproc5 = &dsp5;
- rproc6 = &dsp6;
- rproc7 = &dsp7;
- };
-
- /* 66AK2H/K DSP memory node */
- reserved-memory {
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
-
- dsp_common_memory: dsp-common-memory@81f800000 {
- compatible = "shared-dma-pool";
- reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
- reusable;
- };
- };
-
- /* 66AK2H/K DSP node */
- soc {
- dsp0: dsp@10800000 {
- compatible = "ti,k2hk-dsp";
- reg = <0x10800000 0x00100000>,
- <0x10e00000 0x00008000>,
- <0x10f00000 0x00008000>;
- reg-names = "l2sram", "l1pram", "l1dram";
- clocks = <&clkgem0>;
- ti,syscon-dev = <&devctrl 0x40>;
- resets = <&pscrst 0>;
- interrupt-parent = <&kirq0>;
- interrupts = <0 8>;
- interrupt-names = "vring", "exception";
- kick-gpios = <&dspgpio0 27 0>;
- memory-region = <&dsp_common_memory>;
- };
-
- };
-
-2.
- /* 66AK2G DSP alias */
- aliases {
- rproc0 = &dsp0;
- };
-
- /* 66AK2G DSP memory node */
- reserved-memory {
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
-
- dsp_common_memory: dsp-common-memory@81f800000 {
- compatible = "shared-dma-pool";
- reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
- reusable;
- };
- };
-
- /* 66AK2G DSP node */
- soc {
- dsp0: dsp@10800000 {
- compatible = "ti,k2g-dsp";
- reg = <0x10800000 0x00100000>,
- <0x10e00000 0x00008000>,
- <0x10f00000 0x00008000>;
- reg-names = "l2sram", "l1pram", "l1dram";
- power-domains = <&k2g_pds 0x0046>;
- ti,syscon-dev = <&devctrl 0x40>;
- resets = <&k2g_reset 0x0046 0x1>;
- interrupt-parent = <&kirq0>;
- interrupts = <0 8>;
- interrupt-names = "vring", "exception";
- kick-gpios = <&dspgpio0 27 0>;
- memory-region = <&dsp_common_memory>;
- };
- };
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.yaml
new file mode 100644
index 0000000000000..3117cfb2b3e07
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.yaml
@@ -0,0 +1,140 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/ti,keystone-rproc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI Keystone DSP devices
+
+maintainers:
+ - Suman Anna <s-anna@xxxxxx>
+
+description: >
+ The TI Keystone 2 family of SoCs usually have one or more (up to 8) TI DSP
+ Core sub-systems that are used to offload some of the processor-intensive
+ tasks or algorithms, for achieving various system level goals.
+
+ These processor sub-systems usually contain additional sub-modules like L1
+ and/or L2 caches/SRAMs, an Interrupt Controller, an external memory
+ controller, a dedicated local power/sleep controller etc. The DSP processor
+ core in Keystone 2 SoCs is usually a TMS320C66x CorePac processor.
+
+ Each DSP Core sub-system is represented as a single DT node, and should also
+ have an alias with the stem 'rproc' defined. Each node has a number of
+ required or optional properties that enable the OS running on the host
+ processor (ARM CorePac) to perform the device management of the remote
+ processor and to communicate with the remote processor.
+
+properties:
+ compatible:
+ enum:
+ - ti,k2hk-dsp
+ - ti,k2l-dsp
+ - ti,k2e-dsp
+ - ti,k2g-dsp
+
+ reg:
+ minItems: 3
+ maxItems: 3
+
+ reg-names:
+ items:
+ - const: l2sram
+ - const: l1pram
+ - const: l1dram
+
+ interrupts:
+ minItems: 2
+ maxItems: 2
+
+ interrupt-names:
+ items:
+ - const: vring
+ - const: exception
+
+ ti,syscon-dev:
+ description: Phandle and offset to syscon device
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: Phandle to Keystone Device State Control node
+ - description: offset of the DSP boot address register
+
+ resets:
+ maxItems: 1
+ description:
+ refer to either of the following reset bindings for the reset argument
+ specifier as per SoC,
+ Documentation/devicetree/bindings/reset/ti-syscon-reset.txt for
+ 66AK2HK/66AK2L/66AK2E SoCs or,
+ Documentation/devicetree/bindings/reset/ti,sci-reset.yaml for 66AK2G SoCs
+
+ kick-gpios:
+ maxItems: 1
+ description:
+ GPIO used by the virtio IPC stack to interrupt the remote processor. See
+ Documentation/devicetree/bindings/gpio/ti,keystone-dsp-gpio.yaml
+
+ memory-region:
+ maxItems: 1
+ description:
+ Reserved memory node can be CMA memory node, and should be defined as per
+ Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
+
+ clocks:
+ maxItems: 1
+ description:
+ Input clock (66AK2HK/66AK2L/66AK2E only), see
+ Documentation/devicetree/bindings/clock/ti,keystone,psc-clock.yaml
+
+ power-domains:
+ maxItems: 1
+ description:
+ PM domain provider phandle and DSP device id (66AK2G only), see
+ Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - interrupts
+ - interrupt-names
+ - ti,syscon-dev
+ - resets
+ - kick-gpios
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: ti,k2g-dsp
+ then:
+ properties:
+ clocks: false
+ required:
+ - power-domains
+ else:
+ properties:
+ power-domains: false
+ required:
+ - clocks
+
+additionalProperties: false
+
+examples:
+ - |
+ dsp@10800000 {
+ compatible = "ti,k2g-dsp";
+ reg = <0x10800000 0x00100000>,
+ <0x10e00000 0x00008000>,
+ <0x10f00000 0x00008000>;
+ reg-names = "l2sram", "l1pram", "l1dram";
+ power-domains = <&k2g_pds 0x0046>;
+ ti,syscon-dev = <&devctrl 0x844>;
+ resets = <&k2g_reset 0x0046 0x1>;
+ interrupts = <0>, <8>;
+ interrupt-names = "vring", "exception";
+ kick-gpios = <&dspgpio0 27 0>;
+ memory-region = <&dsp_common_memory>;
+ };
---
base-commit: 67f0943b394d920b6c142aad8c6af94340342ae7
change-id: 20261006-ti-keystone-rproc-4e3b8f328662
Best regards,
--
Bhargav