dt-bindings: remoteproc: convert stm32-rproc to json-schema
authorArnaud Pouliquen <arnaud.pouliquen@st.com>
Thu, 21 Nov 2019 09:52:25 +0000 (10:52 +0100)
committerRob Herring <robh@kernel.org>
Thu, 21 Nov 2019 16:33:37 +0000 (10:33 -0600)
Convert the STM32 remoteproc bindings to DT schema format using
json-schema

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
[robh: Drop mbox-consumer.yaml reference]
Signed-off-by: Rob Herring <robh@kernel.org>
Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt [deleted file]

diff --git a/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml
new file mode 100644 (file)
index 0000000..acf18d1
--- /dev/null
@@ -0,0 +1,128 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/remoteproc/st,stm32-rproc.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: STMicroelectronics STM32 remote processor controller bindings
+
+description:
+  This document defines the binding for the remoteproc component that loads and
+  boots firmwares on the ST32MP family chipset.
+
+maintainers:
+  - Fabien Dessenne <fabien.dessenne@st.com>
+  - Arnaud Pouliquen <arnaud.pouliquen@st.com>
+
+properties:
+  compatible:
+    const: st,stm32mp1-m4
+
+  reg:
+    description:
+      Address ranges of the RETRAM and MCU SRAM memories used by the remote
+      processor.
+    maxItems: 3
+
+  resets:
+     maxItems: 1
+
+  st,syscfg-holdboot:
+    allOf:
+      - $ref: "/schemas/types.yaml#/definitions/phandle-array"
+    description: remote processor reset hold boot
+      - Phandle of syscon block.
+      - The offset of the hold boot setting register.
+      - The field mask of the hold boot.
+    maxItems: 1
+
+  st,syscfg-tz:
+    allOf:
+      - $ref: "/schemas/types.yaml#/definitions/phandle-array"
+    description:
+      Reference to the system configuration which holds the RCC trust zone mode
+      - Phandle of syscon block.
+      - The offset of the RCC trust zone mode register.
+      - The field mask of the RCC trust zone mode.
+    maxItems: 1
+
+  interrupts:
+    description: Should contain the WWDG1 watchdog reset interrupt
+    maxItems: 1
+
+  mboxes:
+    description:
+      This property is required only if the rpmsg/virtio functionality is used.
+    items:
+      - description: |
+          A channel (a) used to communicate through virtqueues with the
+          remote proc.
+          Bi-directional channel:
+            - from local to remote = send message
+            - from remote to local = send message ack
+      - description: |
+          A channel (b) working the opposite direction of channel (a)
+      - description: |
+          A channel (c) used by the local proc to notify the remote proc that it
+          is about to be shut down.
+          Unidirectional channel:
+            - from local to remote, where ACK from the remote means that it is
+              ready for shutdown
+    minItems: 1
+    maxItems: 3
+
+  mbox-names:
+    items:
+      - const: vq0
+      - const: vq1
+      - const: shutdown
+    minItems: 1
+    maxItems: 3
+
+  memory-region:
+    description:
+      List of phandles to the reserved memory regions associated with the
+      remoteproc device. This is variable and describes the memories shared with
+      the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
+      vrings, ...).
+      (see ../reserved-memory/reserved-memory.txt)
+
+  st,syscfg-pdds:
+    allOf:
+      - $ref: "/schemas/types.yaml#/definitions/phandle-array"
+    description: |
+      Reference to the system configuration which holds the remote
+        1st cell: phandle to syscon block
+        2nd cell: register offset containing the deep sleep setting
+        3rd cell: register bitmask for the deep sleep bit
+    maxItems: 1
+
+  st,auto-boot:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      If defined, when remoteproc is probed, it loads the default firmware and
+      starts the remote processor.
+
+required:
+  - compatible
+  - reg
+  - resets
+  - st,syscfg-holdboot
+  - st,syscfg-tz
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/reset/stm32mp1-resets.h>
+    m4_rproc: m4@10000000 {
+      compatible = "st,stm32mp1-m4";
+      reg = <0x10000000 0x40000>,
+            <0x30000000 0x40000>,
+            <0x38000000 0x10000>;
+      resets = <&rcc MCU_R>;
+      st,syscfg-holdboot = <&rcc 0x10C 0x1>;
+      st,syscfg-tz = <&rcc 0x000 0x1>;
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt b/Documentation/devicetree/bindings/remoteproc/stm32-rproc.txt
deleted file mode 100644 (file)
index 5fa915a..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-STMicroelectronics STM32 Remoteproc
------------------------------------
-This document defines the binding for the remoteproc component that loads and
-boots firmwares on the ST32MP family chipset.
-
-Required properties:
-- compatible:  Must be "st,stm32mp1-m4"
-- reg:         Address ranges of the RETRAM and MCU SRAM memories used by the
-               remote processor.
-- resets:      Reference to a reset controller asserting the remote processor.
-- st,syscfg-holdboot: Reference to the system configuration which holds the
-               remote processor reset hold boot
-       1st cell: phandle of syscon block
-       2nd cell: register offset containing the hold boot setting
-       3rd cell: register bitmask for the hold boot field
-- st,syscfg-tz: Reference to the system configuration which holds the RCC trust
-               zone mode
-       1st cell: phandle to syscon block
-       2nd cell: register offset containing the RCC trust zone mode setting
-       3rd cell: register bitmask for the RCC trust zone mode bit
-
-Optional properties:
-- interrupts:  Should contain the watchdog interrupt
-- mboxes:      This property is required only if the rpmsg/virtio functionality
-               is used. List of phandle and mailbox channel specifiers:
-               - a channel (a) used to communicate through virtqueues with the
-                 remote proc.
-                 Bi-directional channel:
-                     - from local to remote = send message
-                     - from remote to local = send message ack
-               - a channel (b) working the opposite direction of channel (a)
-               - a channel (c) used by the local proc to notify the remote proc
-                 that it is about to be shut down.
-                 Unidirectional channel:
-                     - from local to remote, where ACK from the remote means
-                       that it is ready for shutdown
-- mbox-names:  This property is required if the mboxes property is used.
-               - must be "vq0" for channel (a)
-               - must be "vq1" for channel (b)
-               - must be "shutdown" for channel (c)
-- memory-region: List of phandles to the reserved memory regions associated with
-               the remoteproc device. This is variable and describes the
-               memories shared with the remote processor (eg: remoteproc
-               firmware and carveouts, rpmsg vrings, ...).
-               (see ../reserved-memory/reserved-memory.txt)
-- st,syscfg-pdds: Reference to the system configuration which holds the remote
-               processor deep sleep setting
-       1st cell: phandle to syscon block
-       2nd cell: register offset containing the deep sleep setting
-       3rd cell: register bitmask for the deep sleep bit
-- st,auto-boot:        If defined, when remoteproc is probed, it loads the default
-               firmware and starts the remote processor.
-
-Example:
-       m4_rproc: m4@10000000 {
-               compatible = "st,stm32mp1-m4";
-               reg = <0x10000000 0x40000>,
-                     <0x30000000 0x40000>,
-                     <0x38000000 0x10000>;
-               resets = <&rcc MCU_R>;
-               st,syscfg-holdboot = <&rcc 0x10C 0x1>;
-               st,syscfg-tz = <&rcc 0x000 0x1>;
-       };