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,sc7280-lpasscorecc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm LPASS Core & Audio Clock Controller Binding for SC7280
8
9maintainers:
10  - Taniya Das <tdas@codeaurora.org>
11
12description: |
13  Qualcomm LPASS core and audio clock control module which supports the
14  clocks and power domains on SC7280.
15
16  See also:
17  - dt-bindings/clock/qcom,lpasscorecc-sc7280.h
18  - dt-bindings/clock/qcom,lpassaudiocc-sc7280.h
19
20properties:
21  clocks: true
22
23  clock-names: true
24
25  compatible:
26    enum:
27      - qcom,sc7280-lpassaoncc
28      - qcom,sc7280-lpassaudiocc
29      - qcom,sc7280-lpasscorecc
30      - qcom,sc7280-lpasshm
31
32  power-domains:
33    maxItems: 1
34
35  '#clock-cells':
36    const: 1
37
38  '#power-domain-cells':
39    const: 1
40
41  reg:
42    maxItems: 1
43
44required:
45  - compatible
46  - reg
47  - clocks
48  - clock-names
49  - '#clock-cells'
50  - '#power-domain-cells'
51
52additionalProperties: false
53
54allOf:
55  - if:
56      properties:
57        compatible:
58          contains:
59            const: qcom,sc7280-lpassaudiocc
60
61    then:
62      properties:
63        clocks:
64          items:
65            - description: Board XO source
66            - description: LPASS_AON_CC_MAIN_RCG_CLK_SRC
67
68        clock-names:
69          items:
70            - const: bi_tcxo
71            - const: lpass_aon_cc_main_rcg_clk_src
72  - if:
73      properties:
74        compatible:
75          contains:
76            enum:
77              - qcom,sc7280-lpassaoncc
78
79    then:
80      properties:
81        clocks:
82          items:
83            - description: Board XO source
84            - description: Board XO active only source
85            - description: LPASS_AON_CC_MAIN_RCG_CLK_SRC
86
87        clock-names:
88          items:
89            - const: bi_tcxo
90            - const: bi_tcxo_ao
91            - const: iface
92
93  - if:
94      properties:
95        compatible:
96          contains:
97            enum:
98              - qcom,sc7280-lpasshm
99              - qcom,sc7280-lpasscorecc
100
101    then:
102      properties:
103        clocks:
104          items:
105            - description: Board XO source
106
107        clock-names:
108          items:
109            - const: bi_tcxo
110
111examples:
112  - |
113    #include <dt-bindings/clock/qcom,rpmh.h>
114    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
115    #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
116    #include <dt-bindings/clock/qcom,lpasscorecc-sc7280.h>
117    lpass_audiocc: clock-controller@3300000 {
118      compatible = "qcom,sc7280-lpassaudiocc";
119      reg = <0x3300000 0x30000>;
120      clocks = <&rpmhcc RPMH_CXO_CLK>,
121               <&lpass_aon LPASS_AON_CC_MAIN_RCG_CLK_SRC>;
122      clock-names = "bi_tcxo", "lpass_aon_cc_main_rcg_clk_src";
123      power-domains = <&lpass_aon LPASS_AON_CC_LPASS_AUDIO_HM_GDSC>;
124      #clock-cells = <1>;
125      #power-domain-cells = <1>;
126    };
127
128  - |
129    #include <dt-bindings/clock/qcom,rpmh.h>
130    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
131    #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
132    #include <dt-bindings/clock/qcom,lpasscorecc-sc7280.h>
133    lpass_hm: clock-controller@3c00000 {
134      compatible = "qcom,sc7280-lpasshm";
135      reg = <0x3c00000 0x28>;
136      clocks = <&rpmhcc RPMH_CXO_CLK>;
137      clock-names = "bi_tcxo";
138      #clock-cells = <1>;
139      #power-domain-cells = <1>;
140    };
141
142  - |
143    #include <dt-bindings/clock/qcom,rpmh.h>
144    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
145    #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
146    #include <dt-bindings/clock/qcom,lpasscorecc-sc7280.h>
147    lpasscore: clock-controller@3900000 {
148      compatible = "qcom,sc7280-lpasscorecc";
149      reg = <0x3900000 0x50000>;
150      clocks = <&rpmhcc RPMH_CXO_CLK>;
151      clock-names = "bi_tcxo";
152      power-domains = <&lpass_hm LPASS_CORE_CC_LPASS_CORE_HM_GDSC>;
153      #clock-cells = <1>;
154      #power-domain-cells = <1>;
155    };
156
157  - |
158    #include <dt-bindings/clock/qcom,rpmh.h>
159    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
160    #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
161    #include <dt-bindings/clock/qcom,lpasscorecc-sc7280.h>
162    lpass_aon: clock-controller@3380000 {
163      compatible = "qcom,sc7280-lpassaoncc";
164      reg = <0x3380000 0x30000>;
165      clocks = <&rpmhcc RPMH_CXO_CLK>, <&rpmhcc RPMH_CXO_CLK_A>,
166               <&lpasscore LPASS_CORE_CC_CORE_CLK>;
167      clock-names = "bi_tcxo", "bi_tcxo_ao","iface";
168      #clock-cells = <1>;
169      #power-domain-cells = <1>;
170    };
171
172...
173