xref: /linux/Documentation/devicetree/bindings/clock/qcom,videocc.yaml (revision db4a3f0fbedb0398f77b9047e8b8bb2b49f355bb)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/clock/qcom,videocc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Video Clock & Reset Controller
8
9maintainers:
10  - Taniya Das <quic_tdas@quicinc.com>
11
12description: |
13  Qualcomm video clock control module provides the clocks, resets and power
14  domains on Qualcomm SoCs.
15
16  See also::
17    include/dt-bindings/clock/qcom,sm6350-videocc.h
18    include/dt-bindings/clock/qcom,videocc-sc7180.h
19    include/dt-bindings/clock/qcom,videocc-sc7280.h
20    include/dt-bindings/clock/qcom,videocc-sdm845.h
21    include/dt-bindings/clock/qcom,videocc-sm8150.h
22    include/dt-bindings/clock/qcom,videocc-sm8250.h
23
24properties:
25  compatible:
26    oneOf:
27      - enum:
28          - qcom,sc7180-videocc
29          - qcom,sc7280-videocc
30          - qcom,sdm845-videocc
31          - qcom,sm6350-videocc
32          - qcom,sm8150-videocc
33          - qcom,sm8250-videocc
34      - items:
35          - const: qcom,sc8180x-videocc
36          - const: qcom,sm8150-videocc
37
38  clocks:
39    minItems: 1
40    maxItems: 3
41
42  clock-names:
43    minItems: 1
44    maxItems: 3
45
46  power-domains:
47    description:
48      A phandle and PM domain specifier for the MMCX power domain.
49    maxItems: 1
50
51  required-opps:
52    description:
53      A phandle to an OPP node describing required MMCX performance point.
54    maxItems: 1
55
56required:
57  - compatible
58  - clocks
59  - clock-names
60  - '#power-domain-cells'
61
62allOf:
63  - $ref: qcom,gcc.yaml#
64
65  - if:
66      properties:
67        compatible:
68          enum:
69            - qcom,sc7180-videocc
70            - qcom,sdm845-videocc
71    then:
72      properties:
73        clocks:
74          items:
75            - description: Board XO source
76        clock-names:
77          items:
78            - const: bi_tcxo
79
80  - if:
81      properties:
82        compatible:
83          enum:
84            - qcom,sc7280-videocc
85    then:
86      properties:
87        clocks:
88          items:
89            - description: Board XO source
90            - description: Board active XO source
91        clock-names:
92          items:
93            - const: bi_tcxo
94            - const: bi_tcxo_ao
95
96  - if:
97      properties:
98        compatible:
99          enum:
100            - qcom,sm6350-videocc
101    then:
102      properties:
103        clocks:
104          items:
105            - description: Video AHB clock from GCC
106            - description: Board XO source
107            - description: Sleep Clock source
108        clock-names:
109          items:
110            - const: iface
111            - const: bi_tcxo
112            - const: sleep_clk
113
114  - if:
115      properties:
116        compatible:
117          contains:
118            enum:
119              - qcom,sm8150-videocc
120    then:
121      properties:
122        clocks:
123          items:
124            - description: AHB
125            - description: Board XO source
126        clock-names:
127          items:
128            - const: iface
129            - const: bi_tcxo
130
131  - if:
132      properties:
133        compatible:
134          enum:
135            - qcom,sm8250-videocc
136    then:
137      properties:
138        clocks:
139          items:
140            - description: AHB
141            - description: Board XO source
142            - description: Board active XO source
143        clock-names:
144          items:
145            - const: iface
146            - const: bi_tcxo
147            - const: bi_tcxo_ao
148
149unevaluatedProperties: false
150
151examples:
152  - |
153    #include <dt-bindings/clock/qcom,rpmh.h>
154    #include <dt-bindings/power/qcom,rpmhpd.h>
155    clock-controller@ab00000 {
156      compatible = "qcom,sdm845-videocc";
157      reg = <0x0ab00000 0x10000>;
158      clocks = <&rpmhcc RPMH_CXO_CLK>;
159      clock-names = "bi_tcxo";
160      #clock-cells = <1>;
161      #reset-cells = <1>;
162      #power-domain-cells = <1>;
163      power-domains = <&rpmhpd RPMHPD_MMCX>;
164      required-opps = <&rpmhpd_opp_low_svs>;
165    };
166...
167