Message ID | 1573591466-14296-1-git-send-email-jhugo@codeaurora.org (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | MSM8998 Multimedia Clock Controller | expand |
Hi Jeffrey, On 11/13/2019 2:14 AM, Jeffrey Hugo 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> > --- > .../devicetree/bindings/clock/qcom,gcc.yaml | 47 +++++++++++++++------- > 1 file changed, 33 insertions(+), 14 deletions(-) > > diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml > index e73a56f..2f3512b 100644 > --- a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml > +++ b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml > @@ -40,20 +40,38 @@ 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: 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 Would it be possible to add an example for MSM8998? > > 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 Not required for SC7180. > + #qcom,gcc-msm8998 > + - items: > + - const: xo > + - const: usb3_pipe > + - const: ufs_rx_symbol0 > + - const: ufs_rx_symbol1 > + - const: ufs_tx_symbol0 > + - const: pcie0_pipe > > '#clock-cells': > const: 1 > @@ -118,6 +136,7 @@ else: > compatible: > contains: > enum: > + - qcom,gcc-msm8998 > - qcom,gcc-sm8150 > - qcom,gcc-sc7180 > then: > @@ -179,8 +198,8 @@ 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"; SC7180 does not require a sleep clock. > #clock-cells = <1>; > #reset-cells = <1>; > #power-domain-cells = <1>; >
On 11/13/2019 4:20 AM, Taniya Das wrote: > Hi Jeffrey, > > On 11/13/2019 2:14 AM, Jeffrey Hugo 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> >> --- >> .../devicetree/bindings/clock/qcom,gcc.yaml | 47 >> +++++++++++++++------- >> 1 file changed, 33 insertions(+), 14 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml >> b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml >> index e73a56f..2f3512b 100644 >> --- a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml >> +++ b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml >> @@ -40,20 +40,38 @@ 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: 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 > > Would it be possible to add an example for MSM8998? It doesn't seem to be materially different that the existing examples, but sure, that's something that can be done. > >> 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 > > Not required for SC7180. How are you determining this? Per the earlier discussion with Stephen, if the hardware exists, it should be represented in DT. According to the documentation I see, the sleep clock is routed to the GCC on SC7180. The driver is not required to make use of it. Thus its required from the DT perspective. > >> + #qcom,gcc-msm8998 >> + - items: >> + - const: xo >> + - const: usb3_pipe >> + - const: ufs_rx_symbol0 >> + - const: ufs_rx_symbol1 >> + - const: ufs_tx_symbol0 >> + - const: pcie0_pipe >> '#clock-cells': >> const: 1 >> @@ -118,6 +136,7 @@ else: >> compatible: >> contains: >> enum: >> + - qcom,gcc-msm8998 >> - qcom,gcc-sm8150 >> - qcom,gcc-sc7180 >> then: >> @@ -179,8 +198,8 @@ 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"; > > SC7180 does not require a sleep clock. > >> #clock-cells = <1>; >> #reset-cells = <1>; >> #power-domain-cells = <1>; >> >
On Tue, Nov 12, 2019 at 01:44:26PM -0700, Jeffrey Hugo 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> > --- > .../devicetree/bindings/clock/qcom,gcc.yaml | 47 +++++++++++++++------- > 1 file changed, 33 insertions(+), 14 deletions(-) Reviewed-by: Rob Herring <robh@kernel.org>
diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml index e73a56f..2f3512b 100644 --- a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml +++ b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml @@ -40,20 +40,38 @@ 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: 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: usb3_pipe + - const: ufs_rx_symbol0 + - const: ufs_rx_symbol1 + - const: ufs_tx_symbol0 + - const: pcie0_pipe '#clock-cells': const: 1 @@ -118,6 +136,7 @@ else: compatible: contains: enum: + - qcom,gcc-msm8998 - qcom,gcc-sm8150 - qcom,gcc-sc7180 then: @@ -179,8 +198,8 @@ 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>;
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> --- .../devicetree/bindings/clock/qcom,gcc.yaml | 47 +++++++++++++++------- 1 file changed, 33 insertions(+), 14 deletions(-)