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 <[email protected]>
---
 .../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 <[email protected]>
+
+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


Reply via email to