diff mbox series

[v5] dt-bindings: firmware: convert Qualcomm SCM binding to the yaml

Message ID 20220708090431.30437-1-david@ixit.cz
State Accepted
Commit 1c46589d4ec04c9691e984eab3a42f36788dced1
Headers show
Series [v5] dt-bindings: firmware: convert Qualcomm SCM binding to the yaml | expand

Commit Message

David Heidelberg July 8, 2022, 9:04 a.m. UTC
Convert Qualcomm SCM firmware binding to the yaml format.

This commit also:
 - adds qcom,scm-mdm9607 into list which has only core clock
 - adds qcom,scm-sm6125, qcom,scm-ipq6018
 - #reset-cells, because the property is already used

Signed-off-by: David Heidelberg <david@ixit.cz>
--
v5:
 - add qcom,scm-sdx65 from new commit to txt binding
 - add freshly merged qcom,scm-sc8280xp
 - add interconnects
 - add accidentally removed # from #include directive
 - move mdm9607 to 3 clocks (thx @Guru)
 - fix compatible string in example
v4:
 - added clocks minItems and maxItems
 - removed quotes from $id and $schema
 - adjusted description of TCSR HW block
v3:
 - add preceding patches for ARM and arm64 adding missing compatible strings
 - extended with missing compatible strings
 - added two additional maintainers, see https://lkml.org/lkml/2022/6/23/1969
v2:
 - changed maintainer to Bjorn
 - document #reset-cells

 .../devicetree/bindings/firmware/qcom,scm.txt |  61 --------
 .../bindings/firmware/qcom,scm.yaml           | 147 ++++++++++++++++++
 2 files changed, 147 insertions(+), 61 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.txt
 create mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.yaml

Comments

Rob Herring (Arm) July 11, 2022, 10:57 p.m. UTC | #1
On Fri, Jul 08, 2022 at 11:04:31AM +0200, David Heidelberg wrote:
> Convert Qualcomm SCM firmware binding to the yaml format.
> 
> This commit also:
>  - adds qcom,scm-mdm9607 into list which has only core clock
>  - adds qcom,scm-sm6125, qcom,scm-ipq6018
>  - #reset-cells, because the property is already used
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>
> --

Should be '---' in order to be removed automatically when applying.

> v5:
>  - add qcom,scm-sdx65 from new commit to txt binding
>  - add freshly merged qcom,scm-sc8280xp
>  - add interconnects
>  - add accidentally removed # from #include directive
>  - move mdm9607 to 3 clocks (thx @Guru)
>  - fix compatible string in example
> v4:
>  - added clocks minItems and maxItems
>  - removed quotes from $id and $schema
>  - adjusted description of TCSR HW block
> v3:
>  - add preceding patches for ARM and arm64 adding missing compatible strings
>  - extended with missing compatible strings
>  - added two additional maintainers, see https://lkml.org/lkml/2022/6/23/1969
> v2:
>  - changed maintainer to Bjorn
>  - document #reset-cells
> 
>  .../devicetree/bindings/firmware/qcom,scm.txt |  61 --------
>  .../bindings/firmware/qcom,scm.yaml           | 147 ++++++++++++++++++
>  2 files changed, 147 insertions(+), 61 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.txt
>  create mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.yaml

Doesn't apply for me, so I'm assuming this will go via QCom tree.

Reviewed-by: Rob Herring <robh@kernel.org>
Guru Das Srinagesh July 12, 2022, 6:17 p.m. UTC | #2
On Jul 08 2022 11:04, David Heidelberg wrote:
> Convert Qualcomm SCM firmware binding to the yaml format.
> 
> This commit also:
>  - adds qcom,scm-mdm9607 into list which has only core clock
>  - adds qcom,scm-sm6125, qcom,scm-ipq6018
>  - #reset-cells, because the property is already used
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>

Acked-by: Guru Das Srinagesh <quic_gurus@quicinc.com>
David Heidelberg July 22, 2022, 9:34 p.m. UTC | #3
On 12/07/2022 00:57, Rob Herring wrote:
> On Fri, Jul 08, 2022 at 11:04:31AM +0200, David Heidelberg wrote:
>> Convert Qualcomm SCM firmware binding to the yaml format.
>>
>> This commit also:
>>   - adds qcom,scm-mdm9607 into list which has only core clock
>>   - adds qcom,scm-sm6125, qcom,scm-ipq6018
>>   - #reset-cells, because the property is already used
>>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
>> --
> Should be '---' in order to be removed automatically when applying.
typo, sorry.
>
>> v5:
>>   - add qcom,scm-sdx65 from new commit to txt binding
>>   - add freshly merged qcom,scm-sc8280xp
>>   - add interconnects
>>   - add accidentally removed # from #include directive
>>   - move mdm9607 to 3 clocks (thx @Guru)
>>   - fix compatible string in example
>> v4:
>>   - added clocks minItems and maxItems
>>   - removed quotes from $id and $schema
>>   - adjusted description of TCSR HW block
>> v3:
>>   - add preceding patches for ARM and arm64 adding missing compatible strings
>>   - extended with missing compatible strings
>>   - added two additional maintainers, see https://lkml.org/lkml/2022/6/23/1969
>> v2:
>>   - changed maintainer to Bjorn
>>   - document #reset-cells
>>
>>   .../devicetree/bindings/firmware/qcom,scm.txt |  61 --------
>>   .../bindings/firmware/qcom,scm.yaml           | 147 ++++++++++++++++++
>>   2 files changed, 147 insertions(+), 61 deletions(-)
>>   delete mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.txt
>>   create mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.yaml
> Doesn't apply for me, so I'm assuming this will go via QCom tree.
if you want to merge it, I can rebase it against your tree?
>
> Reviewed-by: Rob Herring <robh@kernel.org>
Bjorn Andersson Aug. 10, 2022, 9:05 p.m. UTC | #4
On Fri 22 Jul 14:34 PDT 2022, David Heidelberg wrote:

> On 12/07/2022 00:57, Rob Herring wrote:
> > On Fri, Jul 08, 2022 at 11:04:31AM +0200, David Heidelberg wrote:
> > > Convert Qualcomm SCM firmware binding to the yaml format.
> > > 
> > > This commit also:
> > >   - adds qcom,scm-mdm9607 into list which has only core clock
> > >   - adds qcom,scm-sm6125, qcom,scm-ipq6018
> > >   - #reset-cells, because the property is already used
> > > 
> > > Signed-off-by: David Heidelberg <david@ixit.cz>
> > > --
> > Should be '---' in order to be removed automatically when applying.
> typo, sorry.

No worries, I fixed it up as I applied the patch.

Thanks for fixing up yet another binding David!

Regards,
Bjorn

> > 
> > > v5:
> > >   - add qcom,scm-sdx65 from new commit to txt binding
> > >   - add freshly merged qcom,scm-sc8280xp
> > >   - add interconnects
> > >   - add accidentally removed # from #include directive
> > >   - move mdm9607 to 3 clocks (thx @Guru)
> > >   - fix compatible string in example
> > > v4:
> > >   - added clocks minItems and maxItems
> > >   - removed quotes from $id and $schema
> > >   - adjusted description of TCSR HW block
> > > v3:
> > >   - add preceding patches for ARM and arm64 adding missing compatible strings
> > >   - extended with missing compatible strings
> > >   - added two additional maintainers, see https://lkml.org/lkml/2022/6/23/1969
> > > v2:
> > >   - changed maintainer to Bjorn
> > >   - document #reset-cells
> > > 
> > >   .../devicetree/bindings/firmware/qcom,scm.txt |  61 --------
> > >   .../bindings/firmware/qcom,scm.yaml           | 147 ++++++++++++++++++
> > >   2 files changed, 147 insertions(+), 61 deletions(-)
> > >   delete mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.txt
> > >   create mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.yaml
> > Doesn't apply for me, so I'm assuming this will go via QCom tree.
> if you want to merge it, I can rebase it against your tree?
> > 
> > Reviewed-by: Rob Herring <robh@kernel.org>
> 
> -- 
> David Heidelberg
> Consultant Software Engineer
> 
> Matrix: @okias:matrix.org
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.txt b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
deleted file mode 100644
index b3f702cbed87..000000000000
--- a/Documentation/devicetree/bindings/firmware/qcom,scm.txt
+++ /dev/null
@@ -1,61 +0,0 @@ 
-QCOM Secure Channel Manager (SCM)
-
-Qualcomm processors include an interface to communicate to the secure firmware.
-This interface allows for clients to request different types of actions.  These
-can include CPU power up/down, HDCP requests, loading of firmware, and other
-assorted actions.
-
-Required properties:
-- compatible: must contain one of the following:
- * "qcom,scm-apq8064"
- * "qcom,scm-apq8084"
- * "qcom,scm-ipq4019"
- * "qcom,scm-ipq806x"
- * "qcom,scm-ipq8074"
- * "qcom,scm-mdm9607"
- * "qcom,scm-msm8226"
- * "qcom,scm-msm8660"
- * "qcom,scm-msm8916"
- * "qcom,scm-msm8953"
- * "qcom,scm-msm8960"
- * "qcom,scm-msm8974"
- * "qcom,scm-msm8976"
- * "qcom,scm-msm8994"
- * "qcom,scm-msm8996"
- * "qcom,scm-msm8998"
- * "qcom,scm-qcs404"
- * "qcom,scm-sc7180"
- * "qcom,scm-sc7280"
- * "qcom,scm-sm6125"
- * "qcom,scm-sdm845"
- * "qcom,scm-sdx55"
- * "qcom,scm-sdx65"
- * "qcom,scm-sm6350"
- * "qcom,scm-sm8150"
- * "qcom,scm-sm8250"
- * "qcom,scm-sm8350"
- * "qcom,scm-sm8450"
- and:
- * "qcom,scm"
-- clocks: Specifies clocks needed by the SCM interface, if any:
- * core clock required for "qcom,scm-apq8064", "qcom,scm-msm8660" and
-   "qcom,scm-msm8960"
- * core, iface and bus clocks required for "qcom,scm-apq8084",
-   "qcom,scm-msm8916", "qcom,scm-msm8953", "qcom,scm-msm8974" and "qcom,scm-msm8976"
-- clock-names: Must contain "core" for the core clock, "iface" for the interface
-  clock and "bus" for the bus clock per the requirements of the compatible.
-- qcom,dload-mode: phandle to the TCSR hardware block and offset of the
-		   download mode control register (optional)
-- interconnects: Specifies the bandwidth requirements of the SCM interface (optional)
-
-Example for MSM8916:
-
-	firmware {
-		scm {
-			compatible = "qcom,msm8916", "qcom,scm";
-			clocks = <&gcc GCC_CRYPTO_CLK> ,
-				 <&gcc GCC_CRYPTO_AXI_CLK>,
-				 <&gcc GCC_CRYPTO_AHB_CLK>;
-			clock-names = "core", "bus", "iface";
-		};
-	};
diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
new file mode 100644
index 000000000000..9fdeee07702f
--- /dev/null
+++ b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
@@ -0,0 +1,147 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/firmware/qcom,scm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: QCOM Secure Channel Manager (SCM)
+
+description: |
+  Qualcomm processors include an interface to communicate to the secure firmware.
+  This interface allows for clients to request different types of actions.
+  These can include CPU power up/down, HDCP requests, loading of firmware,
+  and other assorted actions.
+
+maintainers:
+  - Bjorn Andersson <bjorn.andersson@linaro.org>
+  - Robert Marko <robimarko@gmail.com>
+  - Guru Das Srinagesh <quic_gurus@quicinc.com>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - qcom,scm-apq8064
+          - qcom,scm-apq8084
+          - qcom,scm-ipq4019
+          - qcom,scm-ipq6018
+          - qcom,scm-ipq806x
+          - qcom,scm-ipq8074
+          - qcom,scm-mdm9607
+          - qcom,scm-msm8226
+          - qcom,scm-msm8660
+          - qcom,scm-msm8916
+          - qcom,scm-msm8953
+          - qcom,scm-msm8960
+          - qcom,scm-msm8974
+          - qcom,scm-msm8976
+          - qcom,scm-msm8994
+          - qcom,scm-msm8996
+          - qcom,scm-msm8998
+          - qcom,scm-sc7180
+          - qcom,scm-sc7280
+          - qcom,scm-sc8280xp
+          - qcom,scm-sdm845
+          - qcom,scm-sdx55
+          - qcom,scm-sdx65
+          - qcom,scm-sm6125
+          - qcom,scm-sm6350
+          - qcom,scm-sm8150
+          - qcom,scm-sm8250
+          - qcom,scm-sm8350
+          - qcom,scm-sm8450
+          - qcom,scm-qcs404
+      - const: qcom,scm
+
+  clocks:
+    minItems: 1
+    maxItems: 3
+
+  clock-names:
+    minItems: 1
+    maxItems: 3
+
+  interconnects:
+    maxItems: 1
+
+  interconnect-names:
+    maxItems: 1
+
+  '#reset-cells':
+    const: 1
+
+  qcom,dload-mode:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to TCSR hardware block
+          - description: offset of the download mode control register
+    description: TCSR hardware block
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,scm-apq8064
+              - qcom,scm-msm8660
+              - qcom,scm-msm8960
+    then:
+      properties:
+        clock-names:
+          items:
+            - const: core
+
+        clocks:
+          maxItems: 1
+
+      required:
+        - clocks
+        - clock-names
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,scm-apq8084
+              - qcom,scm-mdm9607
+              - qcom,scm-msm8916
+              - qcom,scm-msm8953
+              - qcom,scm-msm8974
+              - qcom,scm-msm8976
+    then:
+      properties:
+        clock-names:
+          items:
+            - const: core
+            - const: bus
+            - const: iface
+
+        clocks:
+          minItems: 3
+          maxItems: 3
+
+      required:
+        - clocks
+        - clock-names
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
+
+    firmware {
+        scm {
+            compatible = "qcom,scm-msm8916", "qcom,scm";
+            clocks = <&gcc GCC_CRYPTO_CLK>,
+                     <&gcc GCC_CRYPTO_AXI_CLK>,
+                     <&gcc GCC_CRYPTO_AHB_CLK>;
+            clock-names = "core", "bus", "iface";
+        };
+    };