2022-07-08 09:34:53

by David Heidelberg

[permalink] [raw]
Subject: [PATCH v5] dt-bindings: firmware: convert Qualcomm SCM binding to the yaml

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

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 <[email protected]>
+ - Robert Marko <[email protected]>
+ - Guru Das Srinagesh <[email protected]>
+
+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";
+ };
+ };
--
2.35.1


2022-07-12 00:04:16

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v5] dt-bindings: firmware: convert Qualcomm SCM binding to the yaml

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

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

2022-07-12 18:21:43

by Guru Das Srinagesh

[permalink] [raw]
Subject: Re: [PATCH v5] dt-bindings: firmware: convert Qualcomm SCM binding to the yaml

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

Acked-by: Guru Das Srinagesh <[email protected]>

2022-07-22 21:48:47

by David Heidelberg

[permalink] [raw]
Subject: Re: [PATCH v5] dt-bindings: firmware: convert Qualcomm SCM binding to the yaml

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

--
David Heidelberg
Consultant Software Engineer

Matrix: @okias:matrix.org

2022-08-10 21:35:44

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH v5] dt-bindings: firmware: convert Qualcomm SCM binding to the yaml

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 <[email protected]>
> > > --
> > 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 <[email protected]>
>
> --
> David Heidelberg
> Consultant Software Engineer
>
> Matrix: @okias:matrix.org
>