Krait Documentation conversion
v7 cover Krait Documentation conversion
This series convert the krait-cc and the kpps-acc/gcc Documentation to yaml.
This series comes form a split of a bigger series that got too big and now hard to review.
While they are still more or less wrong and doesn't really reflect real driver implementation, they are converted to prepare for a fixup later when dts and driver are finally fixed.
Minor changes are done to the kpss-gcc driver and minor fixes are done to the various affected dts to fix dtbs_check warning with the new introduced schema.
Also fix kpss-acc dtbs_check warning.
v7:
- Split dt patches to compatible and missing clock
- Add Review tag by Rob
- Rename from power-controller to power-manager and drop extra binding
- Add Review tag by Dmitry
- Rework some patch to better commit title and description v6:
- Split kpss-acc to separate v1 and v2 schema (thing changed from simple clock controller to a power domain in later SoCs)
- Fix whitespace error (extra new line at the end of the file)
- rebase on top of linux-next/master
v5:
- rebase on top of linux-next/master
v4:
- Fix error from kpss-acc schema
- Fix dtbs_check warning from kpss-acc
- Improve kpss-gcc for apq8064
v3:
- Update all Sob
- Rework kpss-gcc Documentation with the new finding
- Fix dtbs_check warning
v2:
- Fix bot error by adding missing #clock-cells
Changelog for previous series "Modernize rest of the krait drivers" that was split to smaller series (only Documentation changes):
v7:
- Rework kpss-gcc Documentation (split patch for pure conversion and tweaks)
v6:
- Address comments from Rob
- Fix warning from make dtbs_check
v5:
- Address comments from Krzysztof
v4:
- Fix more dt-bindings bug errors
v3:
- Split Documentation files for kpss and krait-cc
v2:
- fix missing new line on patch 16 (krait-cc patch)
Christian Marangi (7):
dt-bindings: clock: Convert qcom,krait-cc to yaml
dt-bindings: arm: msm: Convert and split kpss-acc driver Documentation
to yaml
dt-bindings: arm: msm: Rework kpss-gcc driver Documentation to yaml
ARM: dts: qcom: add per SoC compatible for qcom,kpss-gcc nodes
ARM: dts: qcom: add and fix clock configuration for kpss-gcc nodes
ARM: dts: qcom: add missing clock configuration for kpss-acc-v1
ARM: dts: qcom: rename kpss-acc-v2 nodes to power-manager nodes
.../bindings/arm/msm/qcom,kpss-acc.txt | 49 ----------- .../bindings/arm/msm/qcom,kpss-gcc.txt | 44 ---------- .../bindings/clock/qcom,kpss-acc-v1.yaml | 72 +++++++++++++++ .../bindings/clock/qcom,kpss-gcc.yaml | 88 +++++++++++++++++++ .../bindings/clock/qcom,krait-cc.txt | 34 ------- .../bindings/clock/qcom,krait-cc.yaml | 59 +++++++++++++ .../bindings/power/qcom,kpss-acc-v2.yaml | 42 +++++++++ arch/arm/boot/dts/qcom-apq8064.dtsi | 21 ++++- arch/arm/boot/dts/qcom-apq8084.dtsi | 8 +- arch/arm/boot/dts/qcom-ipq4019.dtsi | 8 +- arch/arm/boot/dts/qcom-ipq8064.dtsi | 12 ++- arch/arm/boot/dts/qcom-mdm9615.dtsi | 2 +- arch/arm/boot/dts/qcom-msm8660.dtsi | 2 +- arch/arm/boot/dts/qcom-msm8960.dtsi | 13 ++- arch/arm/boot/dts/qcom-msm8974.dtsi | 8 +- 15 files changed, 317 insertions(+), 145 deletions(-) delete mode 100644 Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt delete mode 100644 Documentation/devicetree/bindings/arm/msm/qcom,kpss-gcc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,kpss-acc-v1.yaml create mode 100644 Documentation/devicetree/bindings/clock/qcom,kpss-gcc.yaml delete mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml create mode 100644 Documentation/devicetree/bindings/power/qcom,kpss-acc-v2.yaml
Signature · 1 line
2.37.2
PATCH v7 1/7 dt-bindings: clock: Convert qcom,krait-cc to yaml
Convert qcom,krait-cc to yaml Documentation.
--- .../bindings/clock/qcom,krait-cc.txt | 34 ----------- .../bindings/clock/qcom,krait-cc.yaml | 59 +++++++++++++++++++ 2 files changed, 59 insertions(+), 34 deletions(-) delete mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml
Documentation/devicetree/bindings/clock/qcom,krait-cc.txt deleted +0 -34
@@ -1,34 +0,0 @@ -Krait Clock Controller - -PROPERTIES - -- compatible: - Usage: required - Value type: <string> - Definition: must be one of: - "qcom,krait-cc-v1" - "qcom,krait-cc-v2" - -- #clock-cells: - Usage: required - Value type: <u32> - Definition: must be 1 - -- clocks: - Usage: required - Value type: <prop-encoded-array> - Definition: reference to the clock parents of hfpll, secondary muxes. - -- clock-names: - Usage: required - Value type: <stringlist> - Definition: must be "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb". - -Example: - - kraitcc: clock-controller { - compatible = "qcom,krait-cc-v1"; - clocks = <&hfpll0>, <&hfpll1>, <&acpu0_aux>, <&acpu1_aux>, <qsb>; - clock-names = "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb"; - #clock-cells = <1>; - };
Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml new file +59 -0
59 lines not on this page · raw message
Signature · 1 line
2.37.2
Re: [PATCH v7 1/7] dt-bindings: clock: Convert qcom,krait-cc to yaml
Quoted 6 lines · Christian Marangi
Convert qcom,krait-cc to yaml Documentation.
Signed-off-by Christian Marangi <[email protected]>Reviewed-by Krzysztof Kozlowski <[email protected]>Acked-by Rob Herring <[email protected]>
I know this has been reviewed already. I checked again my apq8064 branch and noticed that the bindings are not compatible with the apq8064. The SoC in question is a 4-core device, so this is what I had in mind:
kraitcc: clock-controller {
compatible = "qcom,krait-cc-v1";
clocks = <&gcc PLL9>, /* hfpll0 */
<&gcc PLL10>, /* hfpll1 */
<&gcc PLL16>, /* hfpll2 */
<&gcc PLL17>, /* hfpll3 */
<&gcc PLL12>, /* hfpll_l2 */
<&acc0>,
<&acc1>,
<&acc2>,
<&acc3>,
<&l2cc>;
clock-names = "hfpll0",
"hfpll1",
"hfpll2",
"hfpll3",
"hfpll_l2",
"acpu0_aux",
"acpu1_aux",
"acpu2_aux",
"acpu3_aux",
"acpu_l2_aux";
#clock-cells = <1>;
};Quoted 115 lines
--- .../bindings/clock/qcom,krait-cc.txt | 34 ----------- .../bindings/clock/qcom,krait-cc.yaml | 59 +++++++++++++++++++ 2 files changed, 59 insertions(+), 34 deletions(-) delete mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.yamlDocumentation/devicetree/bindings/clock/qcom,krait-cc.txt deleted +0
-34@@ -1,34 +0,0 @@ -Krait Clock Controller - -PROPERTIES - -- compatible: - Usage: required - Value type: <string> - Definition: must be one of: - "qcom,krait-cc-v1" - "qcom,krait-cc-v2" - -- #clock-cells: - Usage: required - Value type: <u32> - Definition: must be 1 - -- clocks: - Usage: required - Value type: <prop-encoded-array> - Definition: reference to the clock parents of hfpll, secondary muxes. - -- clock-names: - Usage: required - Value type: <stringlist> - Definition: must be "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb". - -Example: - - kraitcc: clock-controller { - compatible = "qcom,krait-cc-v1"; - clocks = <&hfpll0>, <&hfpll1>, <&acpu0_aux>, <&acpu1_aux>, <qsb>; - clock-names = "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb"; - #clock-cells = <1>; - };Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml new file +59
-1@@ -0,0 +1,59 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/qcom,krait-cc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Krait Clock Controller + +maintainers: + - Christian Marangi <[email protected]> + +description: | + Qualcomm Krait Clock Controller used to correctly scale the CPU and the L2 + rates. + +properties: + compatible: + enum: + - qcom,krait-cc-v1 + - qcom,krait-cc-v2 + + clocks: + items: + - description: phandle to hfpll for CPU0 mux + - description: phandle to hfpll for CPU1 mux + - description: phandle to CPU0 aux clock + - description: phandle to CPU1 aux clock + - description: phandle to QSB fixed clk + + clock-names: + items: + - const: hfpll0 + - const: hfpll1 + - const: acpu0_aux + - const: acpu1_aux + - const: qsb + + '#clock-cells': + const: 1 + +required: + - compatible + - clocks + - clock-names + - '#clock-cells' + +additionalProperties: false + +examples: + - | + clock-controller { + compatible = "qcom,krait-cc-v1"; + clocks = <&hfpll0>, <&hfpll1>, + <&acpu0_aux>, <&acpu1_aux>, <&qsb>; + clock-names = "hfpll0", "hfpll1", + "acpu0_aux", "acpu1_aux", "qsb"; + #clock-cells = <1>; + }; +... --2.37.2
Signature · 2 lines
With best wishes Dmitry
Re: [PATCH v7 1/7] dt-bindings: clock: Convert qcom,krait-cc to yaml
Quoted 29 lines · Dmitry Baryshkov
Quoted 6 lines · Christian Marangi
Convert qcom,krait-cc to yaml Documentation.
Signed-off-by Christian Marangi <[email protected]>Reviewed-by Krzysztof Kozlowski <[email protected]>Acked-by Rob Herring <[email protected]>I know this has been reviewed already. I checked again my apq8064 branch and noticed that the bindings are not compatible with the apq8064. The SoC in question is a 4-core device, so this is what I had in mind:
kraitcc: clock-controller { compatible = "qcom,krait-cc-v1"; clocks = <&gcc PLL9>, /* hfpll0 */ <&gcc PLL10>, /* hfpll1 */ <&gcc PLL16>, /* hfpll2 */ <&gcc PLL17>, /* hfpll3 */ <&gcc PLL12>, /* hfpll_l2 */ <&acc0>, <&acc1>, <&acc2>, <&acc3>, <&l2cc>; clock-names = "hfpll0", "hfpll1", "hfpll2", "hfpll3",
Quoted 9 lines
"hfpll_l2",
"acpu0_aux",
"acpu1_aux",
"acpu2_aux",
"acpu3_aux",
"acpu_l2_aux";
#clock-cells = <1>;
};Oh wow... Wasn't aware, but I wonder if a good idea would be to patch the yaml if and when this series is merged? This is a direct conversion of the krait-cc txt...
If we really want I can send a v8 with adding these extra stuff to the just converted yaml in a different commit? (afaik conversion should not add more info if the documentation is not broken enough and can be converted)
Quoted 120 lines
Quoted 115 lines
--- .../bindings/clock/qcom,krait-cc.txt | 34 ----------- .../bindings/clock/qcom,krait-cc.yaml | 59 +++++++++++++++++++ 2 files changed, 59 insertions(+), 34 deletions(-) delete mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.yamlDocumentation/devicetree/bindings/clock/qcom,krait-cc.txt deleted +0
-34@@ -1,34 +0,0 @@ -Krait Clock Controller - -PROPERTIES - -- compatible: - Usage: required - Value type: <string> - Definition: must be one of: - "qcom,krait-cc-v1" - "qcom,krait-cc-v2" - -- #clock-cells: - Usage: required - Value type: <u32> - Definition: must be 1 - -- clocks: - Usage: required - Value type: <prop-encoded-array> - Definition: reference to the clock parents of hfpll, secondary muxes. - -- clock-names: - Usage: required - Value type: <stringlist> - Definition: must be "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb". - -Example: - - kraitcc: clock-controller { - compatible = "qcom,krait-cc-v1"; - clocks = <&hfpll0>, <&hfpll1>, <&acpu0_aux>, <&acpu1_aux>, <qsb>; - clock-names = "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb"; - #clock-cells = <1>; - };Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml new file +59
-1@@ -0,0 +1,59 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/qcom,krait-cc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Krait Clock Controller + +maintainers: + - Christian Marangi <[email protected]> + +description: | + Qualcomm Krait Clock Controller used to correctly scale the CPU and the L2 + rates. + +properties: + compatible: + enum: + - qcom,krait-cc-v1 + - qcom,krait-cc-v2 + + clocks: + items: + - description: phandle to hfpll for CPU0 mux + - description: phandle to hfpll for CPU1 mux + - description: phandle to CPU0 aux clock + - description: phandle to CPU1 aux clock + - description: phandle to QSB fixed clk + + clock-names: + items: + - const: hfpll0 + - const: hfpll1 + - const: acpu0_aux + - const: acpu1_aux + - const: qsb + + '#clock-cells': + const: 1 + +required: + - compatible + - clocks + - clock-names + - '#clock-cells' + +additionalProperties: false + +examples: + - | + clock-controller { + compatible = "qcom,krait-cc-v1"; + clocks = <&hfpll0>, <&hfpll1>, + <&acpu0_aux>, <&acpu1_aux>, <&qsb>; + clock-names = "hfpll0", "hfpll1", + "acpu0_aux", "acpu1_aux", "qsb"; + #clock-cells = <1>; + }; +... --2.37.2
Signature · 2 lines
With best wishes Dmitry
Signature · 1 line
Ansuel
Re: [PATCH v7 1/7] dt-bindings: clock: Convert qcom,krait-cc to yaml
16 января 2023 г. 23:20:17 GMT+02:00, Christian Marangi <[email protected]> пишет:
Quoted 40 lines · Dmitry Baryshkov
Quoted 29 lines · Christian Marangi
Quoted 6 lines
Convert qcom,krait-cc to yaml Documentation.
Signed-off-by Christian Marangi <[email protected]>Reviewed-by Krzysztof Kozlowski <[email protected]>Acked-by Rob Herring <[email protected]>I know this has been reviewed already. I checked again my apq8064 branch and noticed that the bindings are not compatible with the apq8064. The SoC in question is a 4-core device, so this is what I had in mind:
kraitcc: clock-controller { compatible = "qcom,krait-cc-v1"; clocks = <&gcc PLL9>, /* hfpll0 */ <&gcc PLL10>, /* hfpll1 */ <&gcc PLL16>, /* hfpll2 */ <&gcc PLL17>, /* hfpll3 */ <&gcc PLL12>, /* hfpll_l2 */ <&acc0>, <&acc1>, <&acc2>, <&acc3>, <&l2cc>; clock-names = "hfpll0", "hfpll1", "hfpll2", "hfpll3",Quoted 9 lines
"hfpll_l2", "acpu0_aux", "acpu1_aux", "acpu2_aux", "acpu3_aux", "acpu_l2_aux"; #clock-cells = <1>; };
Quoted 8 lines
Oh wow... Wasn't aware, but I wonder if a good idea would be to patch the yaml if and when this series is merged? This is a direct conversion of the krait-cc txt...
If we really want I can send a v8 with adding these extra stuff to the just converted yaml in a different commit? (afaik conversion should not add more info if the documentation is not broken enough and can be converted)
I think we can ask Bjorn to pick the rest of the patches (if they are acked/reviewed, they look good to me) and work on this one. It might make sense to add per-SoC compatibles. Also note, the qsb clock. Which block generates it on ipq8064?
Quoted 122 lines
Quoted 121 lines
Quoted 116 lines
--- .../bindings/clock/qcom,krait-cc.txt | 34 ----------- .../bindings/clock/qcom,krait-cc.yaml | 59 +++++++++++++++++++ 2 files changed, 59 insertions(+), 34 deletions(-) delete mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.yamlDocumentation/devicetree/bindings/clock/qcom,krait-cc.txt deleted +0
-34@@ -1,34 +0,0 @@ -Krait Clock Controller - -PROPERTIES - -- compatible: - Usage: required - Value type: <string> - Definition: must be one of: - "qcom,krait-cc-v1" - "qcom,krait-cc-v2" - -- #clock-cells: - Usage: required - Value type: <u32> - Definition: must be 1 - -- clocks: - Usage: required - Value type: <prop-encoded-array> - Definition: reference to the clock parents of hfpll, secondary muxes. - -- clock-names: - Usage: required - Value type: <stringlist> - Definition: must be "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb". - -Example: - - kraitcc: clock-controller { - compatible = "qcom,krait-cc-v1"; - clocks = <&hfpll0>, <&hfpll1>, <&acpu0_aux>, <&acpu1_aux>, <qsb>; - clock-names = "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb"; - #clock-cells = <1>; - };Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml new file +59
-1@@ -0,0 +1,59 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/qcom,krait-cc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Krait Clock Controller + +maintainers: + - Christian Marangi <[email protected]> + +description: | + Qualcomm Krait Clock Controller used to correctly scale the CPU and the L2 + rates. + +properties: + compatible: + enum: + - qcom,krait-cc-v1 + - qcom,krait-cc-v2 + + clocks: + items: + - description: phandle to hfpll for CPU0 mux + - description: phandle to hfpll for CPU1 mux + - description: phandle to CPU0 aux clock + - description: phandle to CPU1 aux clock + - description: phandle to QSB fixed clk + + clock-names: + items: + - const: hfpll0 + - const: hfpll1 + - const: acpu0_aux + - const: acpu1_aux + - const: qsb + + '#clock-cells': + const: 1 + +required: + - compatible + - clocks + - clock-names + - '#clock-cells' + +additionalProperties: false + +examples: + - | + clock-controller { + compatible = "qcom,krait-cc-v1"; + clocks = <&hfpll0>, <&hfpll1>, + <&acpu0_aux>, <&acpu1_aux>, <&qsb>; + clock-names = "hfpll0", "hfpll1", + "acpu0_aux", "acpu1_aux", "qsb"; + #clock-cells = <1>; + }; +... --2.37.2
Signature · 2 lines
With best wishes Dmitry
Re: [PATCH v7 1/7] dt-bindings: clock: Convert qcom,krait-cc to yaml
Quoted 45 lines · Dmitry Baryshkov
16 января 2023 г. 23:20:17 GMT+02:00, Christian Marangi <[email protected]> пишет:
Quoted 44 lines · Dmitry Baryshkov
Quoted 29 lines · Christian Marangi
Quoted 6 lines
Convert qcom,krait-cc to yaml Documentation.
Signed-off-by Christian Marangi <[email protected]>Reviewed-by Krzysztof Kozlowski <[email protected]>Acked-by Rob Herring <[email protected]>I know this has been reviewed already. I checked again my apq8064 branch and noticed that the bindings are not compatible with the apq8064. The SoC in question is a 4-core device, so this is what I had in mind:
kraitcc: clock-controller { compatible = "qcom,krait-cc-v1"; clocks = <&gcc PLL9>, /* hfpll0 */ <&gcc PLL10>, /* hfpll1 */ <&gcc PLL16>, /* hfpll2 */ <&gcc PLL17>, /* hfpll3 */ <&gcc PLL12>, /* hfpll_l2 */ <&acc0>, <&acc1>, <&acc2>, <&acc3>, <&l2cc>; clock-names = "hfpll0", "hfpll1", "hfpll2", "hfpll3",Quoted 9 lines
"hfpll_l2", "acpu0_aux", "acpu1_aux", "acpu2_aux", "acpu3_aux", "acpu_l2_aux"; #clock-cells = <1>; };Oh wow... Wasn't aware, but I wonder if a good idea would be to patch the yaml if and when this series is merged? This is a direct conversion of the krait-cc txt...
Quoted 7 lines
Quoted 4 lines
If we really want I can send a v8 with adding these extra stuff to the just converted yaml in a different commit? (afaik conversion should not add more info if the documentation is not broken enough and can be converted)
I think we can ask Bjorn to pick the rest of the patches (if they are acked/reviewed, they look good to me) and work on this one. It might make sense to add per-SoC compatibles. Also note, the qsb clock. Which block generates it on ipq8064?
The krait-cc driver is really very generic and modular so IMHO it doesn't require different compatibiles... But now that I think about it... It may be problematic to differentiate them for the clock configuration...
Btw the qsb clk from krait-cc driver is still a fixed clock set to 1. In hw side it's the bus clk and it's driven by rpm... (this link is totally lacking from krait-cc and I think nobody was aware of this (except old qcom)... To find out this I had to resurrect a pre-DT migration driver that use the cxo clk to perform hw measurement of the clk and I discovered that. (cpu and l2 clk can be measured and by setting the mux to sourcing out of qsb you can notice that the freq will always match the bus frequency)
But I got sidetracked by too much discoveries... ipq806x simply don't have a krait-cc driver currently so the qsb doesn't apply...
My idea is to push kriat-cc node + opp node.
Quoted 123 lines
Quoted 122 lines
Quoted 121 lines
Quoted 116 lines
--- .../bindings/clock/qcom,krait-cc.txt | 34 ----------- .../bindings/clock/qcom,krait-cc.yaml | 59 +++++++++++++++++++ 2 files changed, 59 insertions(+), 34 deletions(-) delete mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,krait-cc.yamlDocumentation/devicetree/bindings/clock/qcom,krait-cc.txt deleted +0
-34@@ -1,34 +0,0 @@ -Krait Clock Controller - -PROPERTIES - -- compatible: - Usage: required - Value type: <string> - Definition: must be one of: - "qcom,krait-cc-v1" - "qcom,krait-cc-v2" - -- #clock-cells: - Usage: required - Value type: <u32> - Definition: must be 1 - -- clocks: - Usage: required - Value type: <prop-encoded-array> - Definition: reference to the clock parents of hfpll, secondary muxes. - -- clock-names: - Usage: required - Value type: <stringlist> - Definition: must be "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb". - -Example: - - kraitcc: clock-controller { - compatible = "qcom,krait-cc-v1"; - clocks = <&hfpll0>, <&hfpll1>, <&acpu0_aux>, <&acpu1_aux>, <qsb>; - clock-names = "hfpll0", "hfpll1", "acpu0_aux", "acpu1_aux", "qsb"; - #clock-cells = <1>; - };Documentation/devicetree/bindings/clock/qcom,krait-cc.yaml new file +59
-1@@ -0,0 +1,59 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/qcom,krait-cc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Krait Clock Controller + +maintainers: + - Christian Marangi <[email protected]> + +description: | + Qualcomm Krait Clock Controller used to correctly scale the CPU and the L2 + rates. + +properties: + compatible: + enum: + - qcom,krait-cc-v1 + - qcom,krait-cc-v2 + + clocks: + items: + - description: phandle to hfpll for CPU0 mux + - description: phandle to hfpll for CPU1 mux + - description: phandle to CPU0 aux clock + - description: phandle to CPU1 aux clock + - description: phandle to QSB fixed clk + + clock-names: + items: + - const: hfpll0 + - const: hfpll1 + - const: acpu0_aux + - const: acpu1_aux + - const: qsb + + '#clock-cells': + const: 1 + +required: + - compatible + - clocks + - clock-names + - '#clock-cells' + +additionalProperties: false + +examples: + - | + clock-controller { + compatible = "qcom,krait-cc-v1"; + clocks = <&hfpll0>, <&hfpll1>, + <&acpu0_aux>, <&acpu1_aux>, <&qsb>; + clock-names = "hfpll0", "hfpll1", + "acpu0_aux", "acpu1_aux", "qsb"; + #clock-cells = <1>; + }; +... --2.37.2
Signature · 2 lines
With best wishes Dmitry
Signature · 1 line
Ansuel
PATCH v7 2/7 dt-bindings: arm: msm: Convert and split kpss-acc driver Documentation to yaml
In reply to Christian MarangiConvert kpss-acc driver Documentation to yaml.
The original Documentation was wrong all along. Fix it while we are converting it.
The example was wrong as kpss-acc-v2 should only expose the regs but we don't have any driver that expose additional clocks. The kpss-acc driver is only specific to v1. For this exact reason, split the Documentation to 2 different schema, v1 as clock-controller and v2 for power-manager as per msm-3.10 specification, the exposed regs handle power manager.
--- .../bindings/arm/msm/qcom,kpss-acc.txt | 49 ------------- .../bindings/clock/qcom,kpss-acc-v1.yaml | 72 +++++++++++++++++++ .../bindings/power/qcom,kpss-acc-v2.yaml | 42 +++++++++++ 3 files changed, 114 insertions(+), 49 deletions(-) delete mode 100644 Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,kpss-acc-v1.yaml create mode 100644 Documentation/devicetree/bindings/power/qcom,kpss-acc-v2.yaml
Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt deleted +0 -49
@@ -1,49 +0,0 @@ -Krait Processor Sub-system (KPSS) Application Clock Controller (ACC) - -The KPSS ACC provides clock, power domain, and reset control to a Krait CPU. -There is one ACC register region per CPU within the KPSS remapped region as -well as an alias register region that remaps accesses to the ACC associated -with the CPU accessing the region. - -PROPERTIES - -- compatible: - Usage: required - Value type: <string> - Definition: should be one of: - "qcom,kpss-acc-v1" - "qcom,kpss-acc-v2" - -- reg: - Usage: required - Value type: <prop-encoded-array> - Definition: the first element specifies the base address and size of - the register region. An optional second element specifies - the base address and size of the alias register region. - -- clocks: - Usage: required - Value type: <prop-encoded-array> - Definition: reference to the pll parents. - -- clock-names: - Usage: required - Value type: <stringlist> - Definition: must be "pll8_vote", "pxo". - -- clock-output-names: - Usage: optional - Value type: <string> - Definition: Name of the output clock. Typically acpuX_aux where X is a - CPU number starting at 0. - -Example: - - clock-controller@2088000 { - compatible = "qcom,kpss-acc-v2"; - reg = <0x02088000 0x1000>, - <0x02008000 0x1000>; - clocks = <&gcc PLL8_VOTE>, <&gcc PXO_SRC>; - clock-names = "pll8_vote", "pxo"; - clock-output-names = "acpu0_aux"; - };
Documentation/devicetree/bindings/clock/qcom,kpss-acc-v1.yaml new file +72 -0
72 lines not on this page · raw message
Documentation/devicetree/bindings/power/qcom,kpss-acc-v2.yaml new file +42 -0
42 lines not on this page · raw message
Signature · 1 line
2.37.2
Re: [PATCH v7 2/7] dt-bindings: arm: msm: Convert and split kpss-acc driver Documentation to yaml
Quoted 11 lines · Christian Marangi
Convert kpss-acc driver Documentation to yaml.
The original Documentation was wrong all along. Fix it while we are converting it.
The example was wrong as kpss-acc-v2 should only expose the regs but we don't have any driver that expose additional clocks. The kpss-acc driver is only specific to v1. For this exact reason, split the Documentation to 2 different schema, v1 as clock-controller and v2 for power-manager as per msm-3.10 specification, the exposed regs handle power manager.Signed-off-by Christian Marangi <[email protected]>
Quoted 9 lines
--- .../bindings/arm/msm/qcom,kpss-acc.txt | 49 ------------- .../bindings/clock/qcom,kpss-acc-v1.yaml | 72 +++++++++++++++++++ .../bindings/power/qcom,kpss-acc-v2.yaml | 42 +++++++++++ 3 files changed, 114 insertions(+), 49 deletions(-) delete mode 100644 Documentation/devicetree/bindings/arm/msm/qcom,kpss-acc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,kpss-acc-v1.yaml create mode 100644 Documentation/devicetree/bindings/power/qcom,kpss-acc-v2.yaml
PATCH v7 3/7 dt-bindings: arm: msm: Rework kpss-gcc driver Documentation to yaml
In reply to Christian MarangiRework kpss-gcc driver Documentation to yaml Documentation and move it to clock as it's a clock-controller.
The current kpss-gcc Documentation have major problems and can't be converted directly. Introduce various changes to the original Documentation.
Add #clock-cells additional binding as this clock outputs a static clk named acpu_l2_aux with supported compatible.
Only some compatible require and outputs a clock, for the others, set only the reg as a required binding to correctly export the kpss-gcc registers. As the reg is shared also add the required syscon compatible.
--- .../bindings/arm/msm/qcom,kpss-gcc.txt | 44 ---------- .../bindings/clock/qcom,kpss-gcc.yaml | 88 +++++++++++++++++++ 2 files changed, 88 insertions(+), 44 deletions(-) delete mode 100644 Documentation/devicetree/bindings/arm/msm/qcom,kpss-gcc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,kpss-gcc.yaml
Documentation/devicetree/bindings/arm/msm/qcom,kpss-gcc.txt deleted +0 -44
@@ -1,44 +0,0 @@ -Krait Processor Sub-system (KPSS) Global Clock Controller (GCC) - -PROPERTIES - -- compatible: - Usage: required - Value type: <string> - Definition: should be one of the following. The generic compatible - "qcom,kpss-gcc" should also be included. - "qcom,kpss-gcc-ipq8064", "qcom,kpss-gcc" - "qcom,kpss-gcc-apq8064", "qcom,kpss-gcc" - "qcom,kpss-gcc-msm8974", "qcom,kpss-gcc" - "qcom,kpss-gcc-msm8960", "qcom,kpss-gcc" - -- reg: - Usage: required - Value type: <prop-encoded-array> - Definition: base address and size of the register region - -- clocks: - Usage: required - Value type: <prop-encoded-array> - Definition: reference to the pll parents. - -- clock-names: - Usage: required - Value type: <stringlist> - Definition: must be "pll8_vote", "pxo". - -- clock-output-names: - Usage: required - Value type: <string> - Definition: Name of the output clock. Typically acpu_l2_aux indicating - an L2 cache auxiliary clock. - -Example: - - l2cc: clock-controller@2011000 { - compatible = "qcom,kpss-gcc-ipq8064", "qcom,kpss-gcc"; - reg = <0x2011000 0x1000>; - clocks = <&gcc PLL8_VOTE>, <&gcc PXO_SRC>; - clock-names = "pll8_vote", "pxo"; - clock-output-names = "acpu_l2_aux"; - };
Documentation/devicetree/bindings/clock/qcom,kpss-gcc.yaml new file +88 -0
88 lines not on this page · raw message
Signature · 1 line
2.37.2
PATCH v7 4/7 ARM: dts: qcom: add per SoC compatible for qcom,kpss-gcc nodes
In reply to Christian MarangiAdd per Soc compatible for qcom,kpss-gcc nodes. While currently not used by the kpss driver they can serve further customization and they are required to be defined per Documentation schema.
--- arch/arm/boot/dts/qcom-apq8064.dtsi | 2 +- arch/arm/boot/dts/qcom-ipq8064.dtsi | 2 +- arch/arm/boot/dts/qcom-mdm9615.dtsi | 2 +- arch/arm/boot/dts/qcom-msm8660.dtsi | 2 +- arch/arm/boot/dts/qcom-msm8960.dtsi | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-)
arch/arm/boot/dts/qcom-apq8064.dtsi +1 -1
@@ -880,7 +880,7 @@ mmcc: clock-controller@4000000 { }; l2cc: clock-controller@2011000 { - compatible = "qcom,kpss-gcc", "syscon"; + compatible = "qcom,kpss-gcc-apq8064", "qcom,kpss-gcc", "syscon"; reg = <0x2011000 0x1000>; };
arch/arm/boot/dts/qcom-ipq8064.dtsi +1 -1
@@ -570,7 +570,7 @@ IRQ_TYPE_EDGE_RISING)>, }; l2cc: clock-controller@2011000 { - compatible = "qcom,kpss-gcc", "syscon"; + compatible = "qcom,kpss-gcc-ipq8064", "qcom,kpss-gcc", "syscon"; reg = <0x02011000 0x1000>; clocks = <&gcc PLL8_VOTE>, <&pxo_board>; clock-names = "pll8_vote", "pxo";
arch/arm/boot/dts/qcom-mdm9615.dtsi +1 -1
@@ -116,7 +116,7 @@ lcc: clock-controller@28000000 { }; l2cc: clock-controller@2011000 { - compatible = "qcom,kpss-gcc", "syscon"; + compatible = "qcom,kpss-gcc-mdm9615", "qcom,kpss-gcc", "syscon"; reg = <0x02011000 0x1000>; };
arch/arm/boot/dts/qcom-msm8660.dtsi +1 -1
@@ -473,7 +473,7 @@ pm8058_led133: led@133 { }; l2cc: clock-controller@2082000 { - compatible = "qcom,kpss-gcc", "syscon"; + compatible = "qcom,kpss-gcc-msm8660", "qcom,kpss-gcc", "syscon"; reg = <0x02082000 0x1000>; };
arch/arm/boot/dts/qcom-msm8960.dtsi +1 -1
@@ -183,7 +183,7 @@ clock-controller@4000000 { }; l2cc: clock-controller@2011000 { - compatible = "qcom,kpss-gcc", "syscon"; + compatible = "qcom,kpss-gcc-msm8960", "qcom,kpss-gcc", "syscon"; reg = <0x2011000 0x1000>; };
Signature · 1 line
2.37.2
PATCH v7 5/7 ARM: dts: qcom: add and fix clock configuration for kpss-gcc nodes
In reply to Christian MarangiAdd missing clock configuration by adding clocks, clock-names and #clock-cells bindings for each kpss-acc-v1 clock-controller node for apq8064 and msm8960 to reflect Documentation schema. Add missing #clock-cells binding and remove useless clock-output-names for ipq806x dtsi.
--- arch/arm/boot/dts/qcom-apq8064.dtsi | 3 +++ arch/arm/boot/dts/qcom-ipq8064.dtsi | 2 +- arch/arm/boot/dts/qcom-msm8960.dtsi | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-)
arch/arm/boot/dts/qcom-apq8064.dtsi +3 -0
@@ -882,6 +882,9 @@ mmcc: clock-controller@4000000 { l2cc: clock-controller@2011000 { compatible = "qcom,kpss-gcc-apq8064", "qcom,kpss-gcc", "syscon"; reg = <0x2011000 0x1000>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; + clock-names = "pll8_vote", "pxo"; + #clock-cells = <0>; }; rpm: rpm@108000 {
arch/arm/boot/dts/qcom-ipq8064.dtsi +1 -1
@@ -574,7 +574,7 @@ l2cc: clock-controller@2011000 { reg = <0x02011000 0x1000>; clocks = <&gcc PLL8_VOTE>, <&pxo_board>; clock-names = "pll8_vote", "pxo"; - clock-output-names = "acpu_l2_aux"; + #clock-cells = <0>; }; acc0: clock-controller@2088000 {
arch/arm/boot/dts/qcom-msm8960.dtsi +3 -0
@@ -185,6 +185,9 @@ clock-controller@4000000 { l2cc: clock-controller@2011000 { compatible = "qcom,kpss-gcc-msm8960", "qcom,kpss-gcc", "syscon"; reg = <0x2011000 0x1000>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; + clock-names = "pll8_vote", "pxo"; + #clock-cells = <0>; }; rpm: rpm@108000 {
Signature · 1 line
2.37.2
Re: [PATCH v7 5/7] ARM: dts: qcom: add and fix clock configuration for kpss-gcc nodes
Quoted 8 lines · Christian Marangi
Add missing clock configuration by adding clocks, clock-names and #clock-cells bindings for each kpss-acc-v1 clock-controller node for apq8064 and msm8960 to reflect Documentation schema. Add missing #clock-cells binding and remove useless clock-output-names for ipq806x dtsi.
Signed-off-by Christian Marangi <[email protected]>
Signature · 2 lines
With best wishes Dmitry
PATCH v7 6/7 ARM: dts: qcom: add missing clock configuration for kpss-acc-v1
In reply to Christian MarangiAdd missing clock configuration by adding clocks, clock-names, clock-output-names and #clock-cells bindings for each kpss-acc-v1 clock-controller to reflect Documentation schema.
--- arch/arm/boot/dts/qcom-apq8064.dtsi | 16 ++++++++++++++++ arch/arm/boot/dts/qcom-ipq8064.dtsi | 8 ++++++++ arch/arm/boot/dts/qcom-msm8960.dtsi | 8 ++++++++ 3 files changed, 32 insertions(+)
arch/arm/boot/dts/qcom-apq8064.dtsi +16 -0
@@ -389,21 +389,37 @@ timer@200a000 { acc0: clock-controller@2088000 { compatible = "qcom,kpss-acc-v1"; reg = <0x02088000 0x1000>, <0x02008000 0x1000>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; + clock-names = "pll8_vote", "pxo"; + clock-output-names = "acpu0_aux"; + #clock-cells = <0>; }; acc1: clock-controller@2098000 { compatible = "qcom,kpss-acc-v1"; reg = <0x02098000 0x1000>, <0x02008000 0x1000>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; + clock-names = "pll8_vote", "pxo"; + clock-output-names = "acpu1_aux"; + #clock-cells = <0>; }; acc2: clock-controller@20a8000 { compatible = "qcom,kpss-acc-v1"; reg = <0x020a8000 0x1000>, <0x02008000 0x1000>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; + clock-names = "pll8_vote", "pxo"; + clock-output-names = "acpu2_aux"; + #clock-cells = <0>; }; acc3: clock-controller@20b8000 { compatible = "qcom,kpss-acc-v1"; reg = <0x020b8000 0x1000>, <0x02008000 0x1000>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; + clock-names = "pll8_vote", "pxo"; + clock-output-names = "acpu3_aux"; + #clock-cells = <0>; }; saw0: power-controller@2089000 {
arch/arm/boot/dts/qcom-ipq8064.dtsi +8 -0
@@ -580,6 +580,10 @@ l2cc: clock-controller@2011000 { acc0: clock-controller@2088000 { compatible = "qcom,kpss-acc-v1"; reg = <0x02088000 0x1000>, <0x02008000 0x1000>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; + clock-names = "pll8_vote", "pxo"; + clock-output-names = "acpu0_aux"; + #clock-cells = <0>; }; saw0: regulator@2089000 {
@@ -591,6 +595,10 @@ saw0: regulator@2089000 { acc1: clock-controller@2098000 { compatible = "qcom,kpss-acc-v1"; reg = <0x02098000 0x1000>, <0x02008000 0x1000>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; + clock-names = "pll8_vote", "pxo"; + clock-output-names = "acpu1_aux"; + #clock-cells = <0>; }; saw1: regulator@2099000 {
arch/arm/boot/dts/qcom-msm8960.dtsi +8 -0
@@ -208,11 +208,19 @@ regulators { acc0: clock-controller@2088000 { compatible = "qcom,kpss-acc-v1"; reg = <0x02088000 0x1000>, <0x02008000 0x1000>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; + clock-names = "pll8_vote", "pxo"; + clock-output-names = "acpu0_aux"; + #clock-cells = <0>; }; acc1: clock-controller@2098000 { compatible = "qcom,kpss-acc-v1"; reg = <0x02098000 0x1000>, <0x02008000 0x1000>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; + clock-names = "pll8_vote", "pxo"; + clock-output-names = "acpu1_aux"; + #clock-cells = <0>; }; saw0: regulator@2089000 {
Signature · 1 line
2.37.2
PATCH v7 7/7 ARM: dts: qcom: rename kpss-acc-v2 nodes to power-manager nodes
In reply to Christian MarangiChange kpss-acc-v2 nodes naming to power-manager to reflect Documentation schema.
--- arch/arm/boot/dts/qcom-apq8084.dtsi | 8 ++++---- arch/arm/boot/dts/qcom-ipq4019.dtsi | 8 ++++---- arch/arm/boot/dts/qcom-msm8974.dtsi | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-)
arch/arm/boot/dts/qcom-apq8084.dtsi +4 -4
@@ -353,25 +353,25 @@ saw_l2: power-controller@f9012000 { regulator; }; - acc0: clock-controller@f9088000 { + acc0: power-manager@f9088000 { compatible = "qcom,kpss-acc-v2"; reg = <0xf9088000 0x1000>, <0xf9008000 0x1000>; }; - acc1: clock-controller@f9098000 { + acc1: power-manager@f9098000 { compatible = "qcom,kpss-acc-v2"; reg = <0xf9098000 0x1000>, <0xf9008000 0x1000>; }; - acc2: clock-controller@f90a8000 { + acc2: power-manager@f90a8000 { compatible = "qcom,kpss-acc-v2"; reg = <0xf90a8000 0x1000>, <0xf9008000 0x1000>; }; - acc3: clock-controller@f90b8000 { + acc3: power-manager@f90b8000 { compatible = "qcom,kpss-acc-v2"; reg = <0xf90b8000 0x1000>, <0xf9008000 0x1000>;
arch/arm/boot/dts/qcom-ipq4019.dtsi +4 -4
@@ -325,22 +325,22 @@ crypto: crypto@8e3a000 { status = "disabled"; }; - acc0: clock-controller@b088000 { + acc0: power-manager@b088000 { compatible = "qcom,kpss-acc-v2"; reg = <0x0b088000 0x1000>, <0xb008000 0x1000>; }; - acc1: clock-controller@b098000 { + acc1: power-manager@b098000 { compatible = "qcom,kpss-acc-v2"; reg = <0x0b098000 0x1000>, <0xb008000 0x1000>; }; - acc2: clock-controller@b0a8000 { + acc2: power-manager@b0a8000 { compatible = "qcom,kpss-acc-v2"; reg = <0x0b0a8000 0x1000>, <0xb008000 0x1000>; }; - acc3: clock-controller@b0b8000 { + acc3: power-manager@b0b8000 { compatible = "qcom,kpss-acc-v2"; reg = <0x0b0b8000 0x1000>, <0xb008000 0x1000>; };
arch/arm/boot/dts/qcom-msm8974.dtsi +4 -4
@@ -416,22 +416,22 @@ saw_l2: power-controller@f9012000 { regulator; }; - acc0: clock-controller@f9088000 { + acc0: power-manager@f9088000 { compatible = "qcom,kpss-acc-v2"; reg = <0xf9088000 0x1000>, <0xf9008000 0x1000>; }; - acc1: clock-controller@f9098000 { + acc1: power-manager@f9098000 { compatible = "qcom,kpss-acc-v2"; reg = <0xf9098000 0x1000>, <0xf9008000 0x1000>; }; - acc2: clock-controller@f90a8000 { + acc2: power-manager@f90a8000 { compatible = "qcom,kpss-acc-v2"; reg = <0xf90a8000 0x1000>, <0xf9008000 0x1000>; }; - acc3: clock-controller@f90b8000 { + acc3: power-manager@f90b8000 { compatible = "qcom,kpss-acc-v2"; reg = <0xf90b8000 0x1000>, <0xf9008000 0x1000>; };
Signature · 1 line
2.37.2
Re: [PATCH v7 7/7] ARM: dts: qcom: rename kpss-acc-v2 nodes to power-manager nodes
Quoted 10 lines · Christian Marangi
Change kpss-acc-v2 nodes naming to power-manager to reflect Documentation schema.
Signed-off-by Christian Marangi <[email protected]>--- arch/arm/boot/dts/qcom-apq8084.dtsi | 8 ++++---- arch/arm/boot/dts/qcom-ipq4019.dtsi | 8 ++++---- arch/arm/boot/dts/qcom-msm8974.dtsi | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-)
Signature · 2 lines
With best wishes Dmitry
Re: (subset) [PATCH v7 0/7] Krait Documentation conversion
In reply to Christian MarangiQuoted 11 lines · Christian Marangi
This series convert the krait-cc and the kpps-acc/gcc Documentation to yaml.
This series comes form a split of a bigger series that got too big and now hard to review.
While they are still more or less wrong and doesn't really reflect real driver implementation, they are converted to prepare for a fixup later when dts and driver are finally fixed.
[...]
Applied, thanks!
[4/7] ARM: dts: qcom: add per SoC compatible for qcom,kpss-gcc nodes
commit: b74ca4a0e3043af06819905306e05189f337466a
[5/7] ARM: dts: qcom: add and fix clock configuration for kpss-gcc nodes
commit: a9e6d16ad493529da4a48d7ae474ecdc399ee884
[6/7] ARM: dts: qcom: add missing clock configuration for kpss-acc-v1
commit: 6b20edd72930d83e9c2c2017df883b3c5c1502fd
[7/7] ARM: dts: qcom: rename kpss-acc-v2 nodes to power-manager nodes
commit: 158ce4b3e1dfcf3e38c0dbfd626aee0f1bbfa3d1Best regards,
Signature · 1 line
Bjorn Andersson <[email protected]>