Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: clock: qcom,gcc: sort out power-domains support

On some of Qualcomm platforms the Global Clock Controller (GCC) doesn't
provide power domains. Move requirement for the '#power-domain-cells'
out of the common qcom,gcc.yaml into individual schema files. For the
platforms that do not provide power-domains, explicitly forbid having
the '#power-domain-cells' property.

Suggested-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240529-qcom-gdscs-v2-2-69c63d0ae1e7@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Dmitry Baryshkov and committed by
Bjorn Andersson
b0ef3434 d99c899d

+53 -9
+2 -1
Documentation/devicetree/bindings/clock/qcom,gcc-apq8064.yaml
··· 69 69 const: 1 70 70 deprecated: true 71 71 72 + '#power-domain-cells': false 73 + 72 74 required: 73 75 - compatible 74 76 ··· 83 81 reg = <0x00900000 0x4000>; 84 82 #clock-cells = <1>; 85 83 #reset-cells = <1>; 86 - #power-domain-cells = <1>; 87 84 88 85 thermal-sensor { 89 86 compatible = "qcom,msm8960-tsens";
+1
Documentation/devicetree/bindings/clock/qcom,gcc-apq8084.yaml
··· 51 51 52 52 required: 53 53 - compatible 54 + - '#power-domain-cells' 54 55 55 56 unevaluatedProperties: false 56 57
+2 -1
Documentation/devicetree/bindings/clock/qcom,gcc-ipq4019.yaml
··· 34 34 - const: xo 35 35 - const: sleep_clk 36 36 37 + '#power-domain-cells': false 38 + 37 39 required: 38 40 - compatible 39 41 ··· 47 45 compatible = "qcom,gcc-ipq4019"; 48 46 reg = <0x1800000 0x60000>; 49 47 #clock-cells = <1>; 50 - #power-domain-cells = <1>; 51 48 #reset-cells = <1>; 52 49 clocks = <&xo>, <&sleep_clk>; 53 50 clock-names = "xo", "sleep_clk";
+2 -1
Documentation/devicetree/bindings/clock/qcom,gcc-ipq6018.yaml
··· 36 36 - const: xo 37 37 - const: sleep_clk 38 38 39 + '#power-domain-cells': false 40 + 39 41 required: 40 42 - compatible 41 43 - clocks ··· 53 51 clocks = <&xo>, <&sleep_clk>; 54 52 clock-names = "xo", "sleep_clk"; 55 53 #clock-cells = <1>; 56 - #power-domain-cells = <1>; 57 54 #reset-cells = <1>; 58 55 }; 59 56 ...
+2 -1
Documentation/devicetree/bindings/clock/qcom,gcc-ipq8064.yaml
··· 46 46 allOf: 47 47 - $ref: /schemas/thermal/qcom-tsens.yaml# 48 48 49 + '#power-domain-cells': false 50 + 49 51 required: 50 52 - compatible 51 53 - clocks ··· 67 65 clock-names = "pxo", "cxo", "pll4"; 68 66 #clock-cells = <1>; 69 67 #reset-cells = <1>; 70 - #power-domain-cells = <1>; 71 68 72 69 tsens: thermal-sensor { 73 70 compatible = "qcom,ipq8064-tsens";
+1
Documentation/devicetree/bindings/clock/qcom,gcc-ipq8074.yaml
··· 39 39 40 40 required: 41 41 - compatible 42 + - '#power-domain-cells' 42 43 43 44 unevaluatedProperties: false 44 45
+1
Documentation/devicetree/bindings/clock/qcom,gcc-mdm9607.yaml
··· 27 27 28 28 required: 29 29 - compatible 30 + - '#power-domain-cells' 30 31 31 32 unevaluatedProperties: false 32 33
+2 -1
Documentation/devicetree/bindings/clock/qcom,gcc-msm8660.yaml
··· 34 34 - const: pxo 35 35 - const: cxo 36 36 37 + '#power-domain-cells': false 38 + 37 39 required: 38 40 - compatible 39 41 ··· 49 47 reg = <0x900000 0x4000>; 50 48 #clock-cells = <1>; 51 49 #reset-cells = <1>; 52 - #power-domain-cells = <1>; 53 50 clocks = <&pxo_board>, <&cxo_board>; 54 51 clock-names = "pxo", "cxo"; 55 52 };
+1
Documentation/devicetree/bindings/clock/qcom,gcc-msm8909.yaml
··· 42 42 - compatible 43 43 - clocks 44 44 - clock-names 45 + - '#power-domain-cells' 45 46 46 47 allOf: 47 48 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-msm8916.yaml
··· 48 48 49 49 required: 50 50 - compatible 51 + - '#power-domain-cells' 51 52 52 53 allOf: 53 54 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-msm8953.yaml
··· 42 42 - compatible 43 43 - clocks 44 44 - clock-names 45 + - '#power-domain-cells' 45 46 46 47 allOf: 47 48 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-msm8974.yaml
··· 41 41 42 42 required: 43 43 - compatible 44 + - '#power-domain-cells' 44 45 45 46 unevaluatedProperties: false 46 47
+1
Documentation/devicetree/bindings/clock/qcom,gcc-msm8976.yaml
··· 49 49 - clocks 50 50 - clock-names 51 51 - vdd_gfx-supply 52 + - '#power-domain-cells' 52 53 53 54 allOf: 54 55 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-msm8994.yaml
··· 35 35 - compatible 36 36 - clocks 37 37 - clock-names 38 + - '#power-domain-cells' 38 39 39 40 allOf: 40 41 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-msm8996.yaml
··· 50 50 51 51 required: 52 52 - compatible 53 + - '#power-domain-cells' 53 54 54 55 allOf: 55 56 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-msm8998.yaml
··· 38 38 - compatible 39 39 - clocks 40 40 - clock-names 41 + - '#power-domain-cells' 41 42 42 43 allOf: 43 44 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-qcm2290.yaml
··· 33 33 - compatible 34 34 - clocks 35 35 - clock-names 36 + - '#power-domain-cells' 36 37 37 38 allOf: 38 39 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-qcs404.yaml
··· 40 40 41 41 required: 42 42 - compatible 43 + - '#power-domain-cells' 43 44 44 45 allOf: 45 46 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sc7180.yaml
··· 40 40 - compatible 41 41 - clocks 42 42 - clock-names 43 + - '#power-domain-cells' 43 44 44 45 allOf: 45 46 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sc7280.yaml
··· 51 51 - compatible 52 52 - clocks 53 53 - clock-names 54 + - '#power-domain-cells' 54 55 55 56 allOf: 56 57 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sc8180x.yaml
··· 40 40 - clocks 41 41 - clock-names 42 42 - power-domains 43 + - '#power-domain-cells' 43 44 44 45 allOf: 45 46 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sc8280xp.yaml
··· 65 65 required: 66 66 - compatible 67 67 - clocks 68 + - '#power-domain-cells' 68 69 69 70 allOf: 70 71 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sdm660.yaml
··· 40 40 41 41 required: 42 42 - compatible 43 + - '#power-domain-cells' 43 44 44 45 unevaluatedProperties: false 45 46
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sdm845.yaml
··· 35 35 36 36 required: 37 37 - compatible 38 + - '#power-domain-cells' 38 39 39 40 allOf: 40 41 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sdx55.yaml
··· 34 34 - compatible 35 35 - clocks 36 36 - clock-names 37 + - '#power-domain-cells' 37 38 38 39 allOf: 39 40 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sdx65.yaml
··· 39 39 - compatible 40 40 - clocks 41 41 - clock-names 42 + - '#power-domain-cells' 42 43 43 44 allOf: 44 45 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sm6115.yaml
··· 33 33 - compatible 34 34 - clocks 35 35 - clock-names 36 + - '#power-domain-cells' 36 37 37 38 allOf: 38 39 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sm6125.yaml
··· 33 33 - compatible 34 34 - clocks 35 35 - clock-names 36 + - '#power-domain-cells' 36 37 37 38 allOf: 38 39 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sm6350.yaml
··· 35 35 - compatible 36 36 - clocks 37 37 - clock-names 38 + - '#power-domain-cells' 38 39 39 40 allOf: 40 41 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sm8150.yaml
··· 34 34 - compatible 35 35 - clocks 36 36 - clock-names 37 + - '#power-domain-cells' 37 38 38 39 allOf: 39 40 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sm8250.yaml
··· 36 36 - compatible 37 37 - clocks 38 38 - clock-names 39 + - '#power-domain-cells' 39 40 40 41 allOf: 41 42 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sm8350.yaml
··· 55 55 - compatible 56 56 - clocks 57 57 - clock-names 58 + - '#power-domain-cells' 58 59 59 60 allOf: 60 61 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,gcc-sm8450.yaml
··· 49 49 - compatible 50 50 - clocks 51 51 - clock-names 52 + - '#power-domain-cells' 52 53 53 54 allOf: 54 55 - $ref: qcom,gcc.yaml#
-1
Documentation/devicetree/bindings/clock/qcom,gcc.yaml
··· 35 35 - reg 36 36 - '#clock-cells' 37 37 - '#reset-cells' 38 - - '#power-domain-cells' 39 38 40 39 additionalProperties: true 41 40
+2 -1
Documentation/devicetree/bindings/clock/qcom,ipq5018-gcc.yaml
··· 33 33 - description: UNIPHY RX clock source 34 34 - description: UNIPHY TX clk source 35 35 36 + '#power-domain-cells': false 37 + 36 38 required: 37 39 - compatible 38 40 - clocks ··· 60 58 <&uniphy_tx_clk>; 61 59 #clock-cells = <1>; 62 60 #reset-cells = <1>; 63 - #power-domain-cells = <1>; 64 61 }; 65 62 ...
+2 -1
Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml
··· 30 30 - description: PCIE 2lane x1 PHY pipe clock source (For second lane) 31 31 - description: USB PCIE wrapper pipe clock source 32 32 33 + '#power-domain-cells': false 34 + 33 35 required: 34 36 - compatible 35 37 - clocks ··· 49 47 <&pcie_2lane_phy_pipe_clk_x1>, 50 48 <&usb_pcie_wrapper_pipe_clk>; 51 49 #clock-cells = <1>; 52 - #power-domain-cells = <1>; 53 50 #reset-cells = <1>; 54 51 }; 55 52 ...
+2 -1
Documentation/devicetree/bindings/clock/qcom,ipq9574-gcc.yaml
··· 33 33 - description: PCIE30 PHY3 pipe clock source 34 34 - description: USB3 PHY pipe clock source 35 35 36 + '#power-domain-cells': false 37 + 36 38 required: 37 39 - compatible 38 40 - clocks ··· 59 57 <&usb3phy_0_cc_pipe_clk>; 60 58 #clock-cells = <1>; 61 59 #reset-cells = <1>; 62 - #power-domain-cells = <1>; 63 60 }; 64 61 ...
+1
Documentation/devicetree/bindings/clock/qcom,qdu1000-gcc.yaml
··· 31 31 required: 32 32 - compatible 33 33 - clocks 34 + - '#power-domain-cells' 34 35 35 36 allOf: 36 37 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,sa8775p-gcc.yaml
··· 46 46 required: 47 47 - compatible 48 48 - clocks 49 + - '#power-domain-cells' 49 50 50 51 allOf: 51 52 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,sdx75-gcc.yaml
··· 41 41 required: 42 42 - compatible 43 43 - clocks 44 + - '#power-domain-cells' 44 45 45 46 allOf: 46 47 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,sm4450-gcc.yaml
··· 32 32 required: 33 33 - compatible 34 34 - clocks 35 + - '#power-domain-cells' 35 36 36 37 allOf: 37 38 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,sm6375-gcc.yaml
··· 31 31 required: 32 32 - compatible 33 33 - clocks 34 + - '#power-domain-cells' 34 35 35 36 unevaluatedProperties: false 36 37
+1
Documentation/devicetree/bindings/clock/qcom,sm7150-gcc.yaml
··· 30 30 required: 31 31 - compatible 32 32 - clocks 33 + - '#power-domain-cells' 33 34 34 35 allOf: 35 36 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,sm8550-gcc.yaml
··· 34 34 required: 35 35 - compatible 36 36 - clocks 37 + - '#power-domain-cells' 37 38 38 39 allOf: 39 40 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,sm8650-gcc.yaml
··· 35 35 required: 36 36 - compatible 37 37 - clocks 38 + - '#power-domain-cells' 38 39 39 40 allOf: 40 41 - $ref: qcom,gcc.yaml#
+1
Documentation/devicetree/bindings/clock/qcom,x1e80100-gcc.yaml
··· 41 41 - compatible 42 42 - clocks 43 43 - power-domains 44 + - '#power-domain-cells' 44 45 45 46 allOf: 46 47 - $ref: qcom,gcc.yaml#