Message ID | 1576595987-10043-1-git-send-email-jhugo@codeaurora.org (mailing list archive) |
---|---|
State | Accepted |
Commit | d109ea0970cfca28c4ab1c0d6295551434ca2a7a |
Headers | show |
Series | MSM8998 Multimedia Clock Controller | expand |
Quoting Jeffrey Hugo (2019-12-17 07:19:47) > The global clock controller on MSM8998 can consume a number of external > clocks. Document them. > > For 7180 and 8150, the hardware always exists, so no clocks are truly > optional. Therefore, simplify the binding by removing the min/max > qualifiers to clocks. Also, fixup an example so that dt_binding_check > passes. > > Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org> > Reviewed-by: Rob Herring <robh@kernel.org> > --- Applied to clk-next
On Tue, Dec 17, 2019 at 9:19 AM Jeffrey Hugo <jhugo@codeaurora.org> wrote: > > The global clock controller on MSM8998 can consume a number of external > clocks. Document them. > > For 7180 and 8150, the hardware always exists, so no clocks are truly > optional. Therefore, simplify the binding by removing the min/max > qualifiers to clocks. Also, fixup an example so that dt_binding_check > passes. > > Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org> > Reviewed-by: Rob Herring <robh@kernel.org> > --- > .../devicetree/bindings/clock/qcom,gcc.yaml | 73 +++++++++++++++++----- > 1 file changed, 59 insertions(+), 14 deletions(-) This breaks 'make dt_binding_check'... > > diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml > index e73a56f..f2b5cd6 100644 > --- a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml > +++ b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml > @@ -40,20 +40,40 @@ properties: > - qcom,gcc-sm8150 > > clocks: > - minItems: 1 > - maxItems: 3 > - items: > - - description: Board XO source > - - description: Board active XO source > - - description: Sleep clock source > + oneOf: > + #qcom,gcc-sm8150 > + #qcom,gcc-sc7180 > + - items: > + - description: Board XO source > + - description: Board active XO source > + - description: Sleep clock source > + #qcom,gcc-msm8998 > + - items: > + - description: Board XO source > + - description: Sleep clock source > + - description: USB 3.0 phy pipe clock > + - description: UFS phy rx symbol clock for pipe 0 > + - description: UFS phy rx symbol clock for pipe 1 > + - description: UFS phy tx symbol clock > + - description: PCIE phy pipe clock > > clock-names: > - minItems: 1 > - maxItems: 3 > - items: > - - const: bi_tcxo > - - const: bi_tcxo_ao > - - const: sleep_clk > + oneOf: > + #qcom,gcc-sm8150 > + #qcom,gcc-sc7180 > + - items: > + - const: bi_tcxo > + - const: bi_tcxo_ao > + - const: sleep_clk > + #qcom,gcc-msm8998 > + - items: > + - const: xo > + - const: sleep_clk > + - const: usb3_pipe > + - const: ufs_rx_symbol0 > + - const: ufs_rx_symbol1 > + - const: ufs_tx_symbol0 > + - const: pcie0_pipe > > '#clock-cells': > const: 1 > @@ -118,6 +138,7 @@ else: > compatible: > contains: > enum: > + - qcom,gcc-msm8998 > - qcom,gcc-sm8150 > - qcom,gcc-sc7180 > then: > @@ -179,10 +200,34 @@ examples: > clock-controller@100000 { > compatible = "qcom,gcc-sc7180"; > reg = <0x100000 0x1f0000>; > - clocks = <&rpmhcc 0>, <&rpmhcc 1>; > - clock-names = "bi_tcxo", "bi_tcxo_ao"; > + clocks = <&rpmhcc 0>, <&rpmhcc 1>, <0>; > + clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk"; > + #clock-cells = <1>; > + #reset-cells = <1>; > + #power-domain-cells = <1>; > + }; > + > + # Example of MSM8998 GCC: > + - | > + clock-controller@100000 { > + compatible = "qcom,gcc-msm8998"; > #clock-cells = <1>; > #reset-cells = <1>; > #power-domain-cells = <1>; > + reg = <0x00100000 0xb0000>; > + clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, Probably because of this define. > + <&sleep>, > + <0>, > + <0>, > + <0>, > + <0>, > + <0>; Why are these all 0? > + clock-names = "xo", > + "sleep", > + "usb3_pipe", > + "ufs_rx_symbol0", > + "ufs_rx_symbol1", > + "ufs_tx_symbol0", > + "pcie0_pipe"; > }; > ... > -- > Qualcomm Technologies, Inc. is a member of the > Code Aurora Forum, a Linux Foundation Collaborative Project. >
diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml index e73a56f..f2b5cd6 100644 --- a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml +++ b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml @@ -40,20 +40,40 @@ properties: - qcom,gcc-sm8150 clocks: - minItems: 1 - maxItems: 3 - items: - - description: Board XO source - - description: Board active XO source - - description: Sleep clock source + oneOf: + #qcom,gcc-sm8150 + #qcom,gcc-sc7180 + - items: + - description: Board XO source + - description: Board active XO source + - description: Sleep clock source + #qcom,gcc-msm8998 + - items: + - description: Board XO source + - description: Sleep clock source + - description: USB 3.0 phy pipe clock + - description: UFS phy rx symbol clock for pipe 0 + - description: UFS phy rx symbol clock for pipe 1 + - description: UFS phy tx symbol clock + - description: PCIE phy pipe clock clock-names: - minItems: 1 - maxItems: 3 - items: - - const: bi_tcxo - - const: bi_tcxo_ao - - const: sleep_clk + oneOf: + #qcom,gcc-sm8150 + #qcom,gcc-sc7180 + - items: + - const: bi_tcxo + - const: bi_tcxo_ao + - const: sleep_clk + #qcom,gcc-msm8998 + - items: + - const: xo + - const: sleep_clk + - const: usb3_pipe + - const: ufs_rx_symbol0 + - const: ufs_rx_symbol1 + - const: ufs_tx_symbol0 + - const: pcie0_pipe '#clock-cells': const: 1 @@ -118,6 +138,7 @@ else: compatible: contains: enum: + - qcom,gcc-msm8998 - qcom,gcc-sm8150 - qcom,gcc-sc7180 then: @@ -179,10 +200,34 @@ examples: clock-controller@100000 { compatible = "qcom,gcc-sc7180"; reg = <0x100000 0x1f0000>; - clocks = <&rpmhcc 0>, <&rpmhcc 1>; - clock-names = "bi_tcxo", "bi_tcxo_ao"; + clocks = <&rpmhcc 0>, <&rpmhcc 1>, <0>; + clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk"; + #clock-cells = <1>; + #reset-cells = <1>; + #power-domain-cells = <1>; + }; + + # Example of MSM8998 GCC: + - | + clock-controller@100000 { + compatible = "qcom,gcc-msm8998"; #clock-cells = <1>; #reset-cells = <1>; #power-domain-cells = <1>; + reg = <0x00100000 0xb0000>; + clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, + <&sleep>, + <0>, + <0>, + <0>, + <0>, + <0>; + clock-names = "xo", + "sleep", + "usb3_pipe", + "ufs_rx_symbol0", + "ufs_rx_symbol1", + "ufs_tx_symbol0", + "pcie0_pipe"; }; ...