diff mbox series

[1/2] dt-bindings: clock: qcom,mmcc: fix clocks/clock-names definitions

Message ID 20220704155350.812319-2-dmitry.baryshkov@linaro.org (mailing list archive)
State Superseded
Headers show
Series dt-bindings: clock: update qcom,mmcc bindings for MSM8996 | expand

Commit Message

Dmitry Baryshkov July 4, 2022, 3:53 p.m. UTC
Rather than defining (incorrect) global clocks and clock-names lists,
define them per platform using conditionals. Also, while we are at it,
mark these properties as required for all platforms for which DT files
contained clocks/clock-names for the MMCC nodes from the beginning (in
addition to existing MSM8998 this adds MSM8994, SDM630 and SDM660).

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 .../devicetree/bindings/clock/qcom,mmcc.yaml  | 133 ++++++++++++++----
 1 file changed, 109 insertions(+), 24 deletions(-)

Comments

Krzysztof Kozlowski July 5, 2022, 9:58 a.m. UTC | #1
On 04/07/2022 17:53, Dmitry Baryshkov wrote:
> Rather than defining (incorrect) global clocks and clock-names lists,
> define them per platform using conditionals. Also, while we are at it,
> mark these properties as required for all platforms for which DT files
> contained clocks/clock-names for the MMCC nodes from the beginning (in
> addition to existing MSM8998 this adds MSM8994, SDM630 and SDM660).
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>  .../devicetree/bindings/clock/qcom,mmcc.yaml  | 133 ++++++++++++++----
>  1 file changed, 109 insertions(+), 24 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml b/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml
> index 32e87014bb55..d02fe6dc79b5 100644
> --- a/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml
> +++ b/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml
> @@ -31,30 +31,12 @@ properties:
>        - qcom,mmcc-sdm660
>  
>    clocks:
> -    items:
> -      - description: Board XO source
> -      - description: Board sleep source
> -      - description: Global PLL 0 clock
> -      - description: DSI phy instance 0 dsi clock
> -      - description: DSI phy instance 0 byte clock
> -      - description: DSI phy instance 1 dsi clock
> -      - description: DSI phy instance 1 byte clock
> -      - description: HDMI phy PLL clock
> -      - description: DisplayPort phy PLL vco clock
> -      - description: DisplayPort phy PLL link clock
> +    minItems: 9
> +    maxItems: 10
>  
>    clock-names:
> -    items:
> -      - const: xo
> -      - const: sleep
> -      - const: gpll0
> -      - const: dsi0dsi
> -      - const: dsi0byte
> -      - const: dsi1dsi
> -      - const: dsi1byte
> -      - const: hdmipll
> -      - const: dpvco
> -      - const: dplink
> +    minItems: 9
> +    maxItems: 10
>  
>    '#clock-cells':
>      const: 1
> @@ -89,13 +71,116 @@ if:
>    properties:
>      compatible:
>        contains:
> -        const: qcom,mmcc-msm8998
> -
> +        enum:
> +          - qcom,mmcc-msm8994
> +          - qcom,mmcc-msm8998
> +          - qcom,mmcc-sdm630
> +          - qcom,mmcc-sdm660
>  then:
>    required:
>      - clocks
>      - clock-names
>  
> +allOf:

Earlier if should be put under allOf as well.



Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml b/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml
index 32e87014bb55..d02fe6dc79b5 100644
--- a/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml
@@ -31,30 +31,12 @@  properties:
       - qcom,mmcc-sdm660
 
   clocks:
-    items:
-      - description: Board XO source
-      - description: Board sleep source
-      - description: Global PLL 0 clock
-      - description: DSI phy instance 0 dsi clock
-      - description: DSI phy instance 0 byte clock
-      - description: DSI phy instance 1 dsi clock
-      - description: DSI phy instance 1 byte clock
-      - description: HDMI phy PLL clock
-      - description: DisplayPort phy PLL vco clock
-      - description: DisplayPort phy PLL link clock
+    minItems: 9
+    maxItems: 10
 
   clock-names:
-    items:
-      - const: xo
-      - const: sleep
-      - const: gpll0
-      - const: dsi0dsi
-      - const: dsi0byte
-      - const: dsi1dsi
-      - const: dsi1byte
-      - const: hdmipll
-      - const: dpvco
-      - const: dplink
+    minItems: 9
+    maxItems: 10
 
   '#clock-cells':
     const: 1
@@ -89,13 +71,116 @@  if:
   properties:
     compatible:
       contains:
-        const: qcom,mmcc-msm8998
-
+        enum:
+          - qcom,mmcc-msm8994
+          - qcom,mmcc-msm8998
+          - qcom,mmcc-sdm630
+          - qcom,mmcc-sdm660
 then:
   required:
     - clocks
     - clock-names
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: qcom,mmcc-msm8994
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Board XO source
+            - description: Global PLL 0 clock
+            - description: MMSS NoC AHB clock
+            - description: GFX3D clock
+            - description: DSI phy instance 0 dsi clock
+            - description: DSI phy instance 0 byte clock
+            - description: DSI phy instance 1 dsi clock
+            - description: DSI phy instance 1 byte clock
+            - description: HDMI phy PLL clock
+
+        clock-names:
+          items:
+            - const: xo
+            - const: gpll0
+            - const: mmssnoc_ahb
+            - const: oxili_gfx3d_clk_src
+            - const: dsi0pll
+            - const: dsi0pllbyte
+            - const: dsi1pll
+            - const: dsi1pllbyte
+            - const: hdmipll
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: qcom,mmcc-msm8998
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Board XO source
+            - description: Global PLL 0 clock
+            - description: DSI phy instance 0 dsi clock
+            - description: DSI phy instance 0 byte clock
+            - description: DSI phy instance 1 dsi clock
+            - description: DSI phy instance 1 byte clock
+            - description: HDMI phy PLL clock
+            - description: DisplayPort phy PLL link clock
+            - description: DisplayPort phy PLL vco clock
+            - description: Test clock
+
+        clock-names:
+          items:
+            - const: xo
+            - const: gpll0
+            - const: dsi0dsi
+            - const: dsi0byte
+            - const: dsi1dsi
+            - const: dsi1byte
+            - const: hdmipll
+            - const: dplink
+            - const: dpvco
+            - const: core_bi_pll_test_se
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,mmcc-sdm630
+              - qcom,mmcc-sdm660
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Board XO source
+            - description: Board sleep source
+            - description: Global PLL 0 clock
+            - description: Global PLL 0 DIV clock
+            - description: DSI phy instance 0 dsi clock
+            - description: DSI phy instance 0 byte clock
+            - description: DSI phy instance 1 dsi clock
+            - description: DSI phy instance 1 byte clock
+            - description: DisplayPort phy PLL link clock
+            - description: DisplayPort phy PLL vco clock
+
+        clock-names:
+          items:
+            - const: xo
+            - const: sleep_clk
+            - const: gpll0
+            - const: gpll0_div
+            - const: dsi0pll
+            - const: dsi0pllbyte
+            - const: dsi1pll
+            - const: dsi1pllbyte
+            - const: dp_link_2x_clk_divsel_five
+            - const: dp_vco_divided_clk_src_mux
+
 examples:
   # Example for MMCC for MSM8960:
   - |