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@xxxxxxxxxxxxxx>
---
.../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>;
--
Jeffrey Hugo
Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.