Re: [PATCH v11 1/4] dt-bindings: clock: Document external clocks for MSM8998 gcc

From: Rob Herring
Date: Tue Jan 07 2020 - 17:15:01 EST


On Tue, Dec 17, 2019 at 9:19 AM Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx>
> Reviewed-by: Rob Herring <robh@xxxxxxxxxx>
> ---
> .../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.
>