2022-07-11 11:29:46

by Robert Marko

[permalink] [raw]
Subject: [PATCH v7 1/4] dt-bindings: mailbox: qcom: set correct #clock-cells

IPQ6018 and IPQ8074 require #clock-cells to be set to 1 as their APSS
clock driver provides multiple clock outputs.

So allow setting 1 as #clock-cells and check that its set to 1 for IPQ6018
and IPQ8074, check others for 0 as its currently.

Signed-off-by: Robert Marko <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
---
Changes in v3:
* Drop not needed blank line

Changes in v2:
* Correct subject name
---
.../bindings/mailbox/qcom,apcs-kpss-global.yaml | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml b/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
index 3b5ba7ecc19d..95ecb84e3278 100644
--- a/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
+++ b/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
@@ -50,7 +50,7 @@ properties:
const: 1

'#clock-cells':
- const: 0
+ enum: [0, 1]

clock-names:
minItems: 2
@@ -96,6 +96,21 @@ allOf:
properties:
clocks:
maxItems: 3
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,ipq6018-apcs-apps-global
+ - qcom,ipq8074-apcs-apps-global
+ then:
+ properties:
+ '#clock-cells':
+ const: 1
+ else:
+ properties:
+ '#clock-cells':
+ const: 0
+
examples:

# Example apcs with msm8996
--
2.36.1


2022-07-11 11:29:47

by Robert Marko

[permalink] [raw]
Subject: [PATCH v7 4/4] arm64: dts: ipq8074: add APCS support

APCS now has support for providing the APSS clocks as the child device
for IPQ8074.

So, add the required DT node for APCS and A53PLL which feeds it the PLL
clock for APSS, since APSS will be used for CPU frequency scaling.

Signed-off-by: Robert Marko <[email protected]>
---
Changes in v7:
* Drop review tag due to significant changes
* Add A53PLL node
* Add clocks to APCS node

Changes in v3:
* Node does not currently exist in the upstream kernel, so add it instead
of modifying.
---
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/ipq8074.dtsi b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
index 080796555809..6a13bd3ead55 100644
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
@@ -879,6 +879,23 @@ IRQ_TYPE_LEVEL_HIGH>, /* int_c */
"axi_m_sticky";
status = "disabled";
};
+
+ apcs_glb: mailbox@b111000 {
+ compatible = "qcom,ipq8074-apcs-apps-global";
+ reg = <0x0b111000 0x1000>;
+ #clock-cells = <1>;
+ clocks = <&a53pll>, <&xo>;
+ clock-names = "pll", "xo";
+ #mbox-cells = <1>;
+ };
+
+ a53pll: clock@b116000 {
+ compatible = "qcom,ipq8074-a53pll";
+ reg = <0x0b116000 0x40>;
+ #clock-cells = <0>;
+ clocks = <&xo>;
+ clock-names = "xo";
+ };
};

timer {
--
2.36.1

2022-07-11 11:40:58

by Robert Marko

[permalink] [raw]
Subject: [PATCH v7 2/4] dt-bindings: mailbox: qcom: correct clocks for IPQ6018 and IPQ8074

IPQ6018 APSS driver is registered by APCS as they share the same register
space, and it uses "pll" and "xo" as inputs.

Correct the allowed clocks for IPQ6018 and IPQ8074 as they share the same
driver to allow "pll" and "xo" as clock-names.

Signed-off-by: Robert Marko <[email protected]>
---
.../mailbox/qcom,apcs-kpss-global.yaml | 44 ++++++++++++++-----
1 file changed, 32 insertions(+), 12 deletions(-)

diff --git a/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml b/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
index 95ecb84e3278..939ce63fa824 100644
--- a/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
+++ b/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
@@ -41,10 +41,6 @@ properties:
clocks:
description: phandles to the parent clocks of the clock driver
minItems: 2
- items:
- - description: primary pll parent of the clock driver
- - description: auxiliary parent
- - description: reference clock

'#mbox-cells':
const: 1
@@ -54,10 +50,6 @@ properties:

clock-names:
minItems: 2
- items:
- - const: pll
- - const: aux
- - const: ref

required:
- compatible
@@ -71,8 +63,6 @@ allOf:
properties:
compatible:
enum:
- - qcom,ipq6018-apcs-apps-global
- - qcom,ipq8074-apcs-apps-global
- qcom,msm8916-apcs-kpss-global
- qcom,msm8994-apcs-kpss-global
- qcom,msm8996-apcs-hmss-global
@@ -86,7 +76,13 @@ allOf:
then:
properties:
clocks:
- maxItems: 2
+ items:
+ - description: primary pll parent of the clock driver
+ - description: auxiliary parent
+ clock-names:
+ items:
+ - const: pll
+ - const: aux
- if:
properties:
compatible:
@@ -95,7 +91,31 @@ allOf:
then:
properties:
clocks:
- maxItems: 3
+ items:
+ - description: primary pll parent of the clock driver
+ - description: auxiliary parent
+ - description: reference clock
+ clock-names:
+ items:
+ - const: pll
+ - const: aux
+ - const: ref
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,ipq6018-apcs-apps-global
+ - qcom,ipq8074-apcs-apps-global
+ then:
+ properties:
+ clocks:
+ items:
+ - description: primary pll parent of the clock driver
+ - description: XO clock
+ clock-names:
+ items:
+ - const: pll
+ - const: xo
- if:
properties:
compatible:
--
2.36.1

2022-07-12 09:02:02

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v7 2/4] dt-bindings: mailbox: qcom: correct clocks for IPQ6018 and IPQ8074

On 11/07/2022 12:59, Robert Marko wrote:
> IPQ6018 APSS driver is registered by APCS as they share the same register
> space, and it uses "pll" and "xo" as inputs.
>
> Correct the allowed clocks for IPQ6018 and IPQ8074 as they share the same
> driver to allow "pll" and "xo" as clock-names.
>
> Signed-off-by: Robert Marko <[email protected]>
> ---
> .../mailbox/qcom,apcs-kpss-global.yaml | 44 ++++++++++++++-----
> 1 file changed, 32 insertions(+), 12 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml b/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
> index 95ecb84e3278..939ce63fa824 100644
> --- a/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
> +++ b/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
> @@ -41,10 +41,6 @@ properties:
> clocks:
> description: phandles to the parent clocks of the clock driver
> minItems: 2

You need maxItems (widest) as well.

> - items:
> - - description: primary pll parent of the clock driver
> - - description: auxiliary parent
> - - description: reference clock
>
> '#mbox-cells':
> const: 1
> @@ -54,10 +50,6 @@ properties:
>
> clock-names:
> minItems: 2

You need maxItems as well.

> - items:
> - - const: pll
> - - const: aux
> - - const: ref

Best regards,
Krzysztof