diff mbox series

[4/5] dt-bindings: remoteproc: qcom,glink-rpm-edge: convert to DT schema

Message ID 20230207090852.28421-4-krzysztof.kozlowski@linaro.org (mailing list archive)
State Superseded
Headers show
Series [1/5] arm64: dts: qcom: ipq6018: align RPM G-Link node with bindings | expand

Commit Message

Krzysztof Kozlowski Feb. 7, 2023, 9:08 a.m. UTC
Convert Qualcomm G-Link RPM edge binding to DT schema.  Move it to
remoteproc as it better suits the purpose - communication channel with
remote processor.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../remoteproc/qcom,glink-rpm-edge.yaml       | 92 ++++++++++++++++++
 .../bindings/soc/qcom/qcom,glink.txt          | 94 -------------------
 2 files changed, 92 insertions(+), 94 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
 delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt

Comments

Krzysztof Kozlowski Feb. 7, 2023, 9:59 a.m. UTC | #1
On 07/02/2023 10:08, Krzysztof Kozlowski wrote:
> Convert Qualcomm G-Link RPM edge binding to DT schema.  Move it to
> remoteproc as it better suits the purpose - communication channel with
> remote processor.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  .../remoteproc/qcom,glink-rpm-edge.yaml       | 92 ++++++++++++++++++
>  .../bindings/soc/qcom/qcom,glink.txt          | 94 -------------------
>  2 files changed, 92 insertions(+), 94 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
>  delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt

This is expected to trigger warning in other bindings, being fixed here:
https://lore.kernel.org/linux-arm-msm/20230207095639.36537-1-krzysztof.kozlowski@linaro.org/T/#u

Best regards,
Krzysztof
Rob Herring (Arm) Feb. 7, 2023, 1 p.m. UTC | #2
On Tue, 07 Feb 2023 10:08:51 +0100, Krzysztof Kozlowski wrote:
> Convert Qualcomm G-Link RPM edge binding to DT schema.  Move it to
> remoteproc as it better suits the purpose - communication channel with
> remote processor.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  .../remoteproc/qcom,glink-rpm-edge.yaml       | 92 ++++++++++++++++++
>  .../bindings/soc/qcom/qcom,glink.txt          | 94 -------------------
>  2 files changed, 92 insertions(+), 94 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
>  delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.example.dtb: rpm-glink: 'mbox-names' does not match any of the regexes: 'pinctrl-[0-9]+'
	From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230207090852.28421-4-krzysztof.kozlowski@linaro.org

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
Rob Herring (Arm) Feb. 7, 2023, 6:42 p.m. UTC | #3
On Tue, Feb 07, 2023 at 10:08:51AM +0100, Krzysztof Kozlowski wrote:
> Convert Qualcomm G-Link RPM edge binding to DT schema.  Move it to
> remoteproc as it better suits the purpose - communication channel with
> remote processor.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  .../remoteproc/qcom,glink-rpm-edge.yaml       | 92 ++++++++++++++++++
>  .../bindings/soc/qcom/qcom,glink.txt          | 94 -------------------
>  2 files changed, 92 insertions(+), 94 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
>  delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt
> 
> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
> new file mode 100644
> index 000000000000..07cd67ec97c1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
> @@ -0,0 +1,92 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/remoteproc/qcom,glink-rpm-edge.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm G-Link RPM edge
> +
> +description: |
> +  Qualcomm G-Link edge, a FIFO based mechanism for communication with Resource
> +  Power Manager (RPM) on various Qualcomm platforms.
> +
> +maintainers:
> +  - Bjorn Andersson <andersson@kernel.org>
> +
> +properties:
> +  compatible:
> +    const: qcom,glink-rpm
> +
> +  label:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    description:
> +      Name of the edge, used for debugging and identification purposes. The
> +      node name will be used if this is not present.
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  mboxes:
> +    items:
> +      - description: rpm_hlos mailbox in APCS
> +
> +  qcom,remote-pid:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      The identifier for the remote processor as known by the rest of the
> +      system.
> +
> +  qcom,rpm-msg-ram:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description: |
> +      RPM message memory resource (compatible:: qcom,rpm-msg-ram).

'::' is not a thing in YAML.

> +
> +  rpm-requests:
> +    type: object
> +    $ref: /schemas/soc/qcom/qcom,smd-rpm.yaml#
> +    unevaluatedProperties: false
> +    description:
> +      Qualcomm Resource Power Manager (RPM) over G-Link
> +
> +    properties:
> +      qcom,intents:
> +        $ref: /schemas/types.yaml#/definitions/uint32-array
> +        description:
> +          List of (size, amount) pairs describing what intents should be

pairs? Sounds like a matrix then.

> +          preallocated for this virtual channel. This can be used to tweak the
> +          default intents available for the channel to meet expectations of the
> +          remote.
> +
> +    required:
> +      - qcom,glink-channels
> +
> +required:
> +  - compatible
> +  - interrupts
> +  - mboxes
> +
> +anyOf:
> +  - required:
> +      - qcom,remote-pid
> +  - required:
> +      - qcom,rpm-msg-ram
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +    rpm-glink {
> +        compatible = "qcom,glink-rpm";
> +        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
> +        mboxes = <&apcs_glb 0>;
> +        qcom,rpm-msg-ram = <&rpm_msg_ram>;
> +
> +        rpm-requests {
> +            compatible = "qcom,rpm-msm8996";
> +            qcom,glink-channels = "rpm_requests";
> +
> +            /* ... */
> +        };
> +    };
Krzysztof Kozlowski Feb. 8, 2023, 9:51 a.m. UTC | #4
On 07/02/2023 19:42, Rob Herring wrote:
> On Tue, Feb 07, 2023 at 10:08:51AM +0100, Krzysztof Kozlowski wrote:
>> Convert Qualcomm G-Link RPM edge binding to DT schema.  Move it to
>> remoteproc as it better suits the purpose - communication channel with
>> remote processor.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>> ---
>>  .../remoteproc/qcom,glink-rpm-edge.yaml       | 92 ++++++++++++++++++
>>  .../bindings/soc/qcom/qcom,glink.txt          | 94 -------------------
>>  2 files changed, 92 insertions(+), 94 deletions(-)
>>  create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
>>  delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt
>>
>> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
>> new file mode 100644
>> index 000000000000..07cd67ec97c1
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
>> @@ -0,0 +1,92 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/remoteproc/qcom,glink-rpm-edge.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm G-Link RPM edge
>> +
>> +description: |
>> +  Qualcomm G-Link edge, a FIFO based mechanism for communication with Resource
>> +  Power Manager (RPM) on various Qualcomm platforms.
>> +
>> +maintainers:
>> +  - Bjorn Andersson <andersson@kernel.org>
>> +
>> +properties:
>> +  compatible:
>> +    const: qcom,glink-rpm
>> +
>> +  label:
>> +    $ref: /schemas/types.yaml#/definitions/string
>> +    description:
>> +      Name of the edge, used for debugging and identification purposes. The
>> +      node name will be used if this is not present.
>> +
>> +  interrupts:
>> +    maxItems: 1
>> +
>> +  mboxes:
>> +    items:
>> +      - description: rpm_hlos mailbox in APCS
>> +
>> +  qcom,remote-pid:
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    description:
>> +      The identifier for the remote processor as known by the rest of the
>> +      system.
>> +
>> +  qcom,rpm-msg-ram:
>> +    $ref: /schemas/types.yaml#/definitions/phandle
>> +    description: |
>> +      RPM message memory resource (compatible:: qcom,rpm-msg-ram).
> 
> '::' is not a thing in YAML.

ack

> 
>> +
>> +  rpm-requests:
>> +    type: object
>> +    $ref: /schemas/soc/qcom/qcom,smd-rpm.yaml#
>> +    unevaluatedProperties: false
>> +    description:
>> +      Qualcomm Resource Power Manager (RPM) over G-Link
>> +
>> +    properties:
>> +      qcom,intents:
>> +        $ref: /schemas/types.yaml#/definitions/uint32-array
>> +        description:
>> +          List of (size, amount) pairs describing what intents should be
> 
> pairs? Sounds like a matrix then.

I'll fix also second appearance of this property
(bindings/soc/qcom/qcom,apr.yaml)

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
new file mode 100644
index 000000000000..07cd67ec97c1
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,glink-rpm-edge.yaml
@@ -0,0 +1,92 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/qcom,glink-rpm-edge.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm G-Link RPM edge
+
+description: |
+  Qualcomm G-Link edge, a FIFO based mechanism for communication with Resource
+  Power Manager (RPM) on various Qualcomm platforms.
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+
+properties:
+  compatible:
+    const: qcom,glink-rpm
+
+  label:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      Name of the edge, used for debugging and identification purposes. The
+      node name will be used if this is not present.
+
+  interrupts:
+    maxItems: 1
+
+  mboxes:
+    items:
+      - description: rpm_hlos mailbox in APCS
+
+  qcom,remote-pid:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The identifier for the remote processor as known by the rest of the
+      system.
+
+  qcom,rpm-msg-ram:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: |
+      RPM message memory resource (compatible:: qcom,rpm-msg-ram).
+
+  rpm-requests:
+    type: object
+    $ref: /schemas/soc/qcom/qcom,smd-rpm.yaml#
+    unevaluatedProperties: false
+    description:
+      Qualcomm Resource Power Manager (RPM) over G-Link
+
+    properties:
+      qcom,intents:
+        $ref: /schemas/types.yaml#/definitions/uint32-array
+        description:
+          List of (size, amount) pairs describing what intents should be
+          preallocated for this virtual channel. This can be used to tweak the
+          default intents available for the channel to meet expectations of the
+          remote.
+
+    required:
+      - qcom,glink-channels
+
+required:
+  - compatible
+  - interrupts
+  - mboxes
+
+anyOf:
+  - required:
+      - qcom,remote-pid
+  - required:
+      - qcom,rpm-msg-ram
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    rpm-glink {
+        compatible = "qcom,glink-rpm";
+        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+        mboxes = <&apcs_glb 0>;
+        qcom,rpm-msg-ram = <&rpm_msg_ram>;
+
+        rpm-requests {
+            compatible = "qcom,rpm-msm8996";
+            qcom,glink-channels = "rpm_requests";
+
+            /* ... */
+        };
+    };
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt
deleted file mode 100644
index 1214192847ac..000000000000
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt
+++ /dev/null
@@ -1,94 +0,0 @@ 
-Qualcomm GLINK edge binding
-
-This binding describes a Qualcomm GLINK edge, a fifo based mechanism for
-communication between subsystem-pairs on various Qualcomm platforms. Two types
-of edges can be described by the binding; the GLINK RPM edge and a SMEM based
-edge.
-
-- compatible:
-	Usage: required for glink-rpm
-	Value type: <stringlist>
-	Definition: must be "qcom,glink-rpm"
-
-- label:
-	Usage: optional
-	Value type: <string>
-	Definition: should specify the subsystem name this edge corresponds to.
-
-- interrupts:
-	Usage: required
-	Value type: <prop-encoded-array>
-	Definition: should specify the IRQ used by the remote processor to
-		    signal this processor about communication related events
-
-- qcom,remote-pid:
-	Usage: required for glink-smem
-	Value type: <u32>
-	Definition: specifies the identifier of the remote endpoint of this edge
-
-- qcom,rpm-msg-ram:
-	Usage: required for glink-rpm
-	Value type: <prop-encoded-array>
-	Definition: handle to RPM message memory resource
-
-- mboxes:
-	Usage: required
-	Value type: <prop-encoded-array>
-	Definition: reference to the "rpm_hlos" mailbox in APCS, as described
-		    in mailbox/mailbox.txt
-
-= GLINK DEVICES
-Each subnode of the GLINK node represent function tied to a virtual
-communication channel. The name of the nodes are not important. The properties
-of these nodes are defined by the individual bindings for the specific function
-- but must contain the following property:
-
-- qcom,glink-channels:
-	Usage: required
-	Value type: <stringlist>
-	Definition: a list of channels tied to this function, used for matching
-		    the function to a set of virtual channels
-
-- qcom,intents:
-	Usage: optional
-	Value type: <prop-encoded-array>
-	Definition: a list of size,amount pairs describing what intents should
-		    be preallocated for this virtual channel. This can be used
-		    to tweak the default intents available for the channel to
-		    meet expectations of the remote.
-
-= EXAMPLE
-The following example represents the GLINK RPM node on a MSM8996 device, with
-the function for the "rpm_request" channel defined, which is used for
-regulators and root clocks.
-
-	apcs_glb: mailbox@9820000 {
-		compatible = "qcom,msm8996-apcs-hmss-global";
-		reg = <0x9820000 0x1000>;
-
-		#mbox-cells = <1>;
-	};
-
-	rpm_msg_ram: memory@68000 {
-		compatible = "qcom,rpm-msg-ram";
-		reg = <0x68000 0x6000>;
-	};
-
-	rpm-glink {
-		compatible = "qcom,glink-rpm";
-
-		interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-
-		qcom,rpm-msg-ram = <&rpm_msg_ram>;
-
-		mboxes = <&apcs_glb 0>;
-
-		rpm-requests {
-			compatible = "qcom,rpm-msm8996";
-			qcom,glink-channels = "rpm_requests";
-
-			qcom,intents = <0x400 5
-					0x800 1>;
-			...
-		};
-	};