@@ -49,6 +49,7 @@ properties:
49
49
- qcom,qcs615-apss-shared
50
50
- qcom,sc7180-apss-shared
51
51
- qcom,sc8180x-apss-shared
52
+ - qcom,sm7150-apss-shared
52
53
- qcom,sm8150-apss-shared
53
54
- const : qcom,sdm845-apss-shared
54
55
- items :
@@ -72,6 +73,7 @@ properties:
72
73
description : phandles to the parent clocks of the clock driver
73
74
minItems : 2
74
75
maxItems : 3
76
+ deprecated : true
75
77
76
78
' #mbox-cells ' :
77
79
const : 1
@@ -82,6 +84,23 @@ properties:
82
84
clock-names :
83
85
minItems : 2
84
86
maxItems : 3
87
+ deprecated : true
88
+
89
+ clock-controller :
90
+ type : object
91
+ additionalProperties : false
92
+ properties :
93
+ clocks :
94
+ description : phandles to the parent clocks of the clock driver
95
+ minItems : 2
96
+ maxItems : 3
97
+
98
+ ' #clock-cells ' :
99
+ enum : [0, 1]
100
+
101
+ clock-names :
102
+ minItems : 2
103
+ maxItems : 3
85
104
86
105
required :
87
106
- compatible
@@ -90,6 +109,76 @@ required:
90
109
91
110
additionalProperties : false
92
111
112
+ # Clocks should be specified either on the parent node or on the child node
113
+ oneOf :
114
+ - required :
115
+ - clock-controller
116
+ properties :
117
+ clocks : false
118
+ clock-names : false
119
+ ' #clock-cells ' : false
120
+ - properties :
121
+ clock-controller : false
122
+
123
+ $defs :
124
+ msm8916-apcs-clock-controller :
125
+ properties :
126
+ clocks :
127
+ items :
128
+ - description : primary pll parent of the clock driver
129
+ - description : auxiliary parent
130
+ clock-names :
131
+ items :
132
+ - const : pll
133
+ - const : aux
134
+ ' #clock-cells ' :
135
+ const : 0
136
+
137
+ msm8939-apcs-clock-controller :
138
+ properties :
139
+ clocks :
140
+ items :
141
+ - description : primary pll parent of the clock driver
142
+ - description : auxiliary parent
143
+ - description : reference clock
144
+ clock-names :
145
+ items :
146
+ - const : pll
147
+ - const : aux
148
+ - const : ref
149
+ ' #clock-cells ' :
150
+ const : 0
151
+
152
+ sdx55-apcs-clock-controller :
153
+ properties :
154
+ clocks :
155
+ items :
156
+ - description : reference clock
157
+ - description : primary pll parent of the clock driver
158
+ - description : auxiliary parent
159
+ clock-names :
160
+ items :
161
+ - const : ref
162
+ - const : pll
163
+ - const : aux
164
+ ' #clock-cells ' :
165
+ const : 0
166
+
167
+ ipq6018-apcs-clock-controller :
168
+ properties :
169
+ clocks :
170
+ items :
171
+ - description : primary pll parent of the clock driver
172
+ - description : XO clock
173
+ - description : GCC GPLL0 clock source
174
+ clock-names :
175
+ items :
176
+ - const : pll
177
+ - const : xo
178
+ - const : gpll0
179
+ ' #clock-cells ' :
180
+ const : 1
181
+
93
182
allOf :
94
183
- if :
95
184
properties :
@@ -98,15 +187,10 @@ allOf:
98
187
enum :
99
188
- qcom,msm8916-apcs-kpss-global
100
189
then :
190
+ $ref : " #/$defs/msm8916-apcs-clock-controller"
101
191
properties :
102
- clocks :
103
- items :
104
- - description : primary pll parent of the clock driver
105
- - description : auxiliary parent
106
- clock-names :
107
- items :
108
- - const : pll
109
- - const : aux
192
+ clock-controller :
193
+ $ref : " #/$defs/msm8916-apcs-clock-controller"
110
194
111
195
- if :
112
196
properties :
@@ -115,17 +199,10 @@ allOf:
115
199
enum :
116
200
- qcom,msm8939-apcs-kpss-global
117
201
then :
202
+ $ref : " #/$defs/msm8939-apcs-clock-controller"
118
203
properties :
119
- clocks :
120
- items :
121
- - description : primary pll parent of the clock driver
122
- - description : auxiliary parent
123
- - description : reference clock
124
- clock-names :
125
- items :
126
- - const : pll
127
- - const : aux
128
- - const : ref
204
+ clock-controller :
205
+ $ref : " #/$defs/msm8939-apcs-clock-controller"
129
206
130
207
- if :
131
208
properties :
@@ -134,17 +211,10 @@ allOf:
134
211
enum :
135
212
- qcom,sdx55-apcs-gcc
136
213
then :
214
+ $ref : " #/$defs/sdx55-apcs-clock-controller"
137
215
properties :
138
- clocks :
139
- items :
140
- - description : reference clock
141
- - description : primary pll parent of the clock driver
142
- - description : auxiliary parent
143
- clock-names :
144
- items :
145
- - const : ref
146
- - const : pll
147
- - const : aux
216
+ clock-controller :
217
+ $ref : " #/$defs/sdx55-apcs-clock-controller"
148
218
149
219
- if :
150
220
properties :
@@ -153,17 +223,10 @@ allOf:
153
223
enum :
154
224
- qcom,ipq6018-apcs-apps-global
155
225
then :
226
+ $ref : " #/$defs/ipq6018-apcs-clock-controller"
156
227
properties :
157
- clocks :
158
- items :
159
- - description : primary pll parent of the clock driver
160
- - description : XO clock
161
- - description : GCC GPLL0 clock source
162
- clock-names :
163
- items :
164
- - const : pll
165
- - const : xo
166
- - const : gpll0
228
+ clock-controller :
229
+ $ref : " #/$defs/ipq6018-apcs-clock-controller"
167
230
168
231
- if :
169
232
properties :
@@ -179,19 +242,7 @@ allOf:
179
242
properties :
180
243
clocks : false
181
244
clock-names : false
182
-
183
- - if :
184
- properties :
185
- compatible :
186
- contains :
187
- enum :
188
- - qcom,ipq6018-apcs-apps-global
189
- then :
190
- properties :
191
- ' #clock-cells ' :
192
- const : 1
193
- else :
194
- properties :
245
+ clock-controller : false
195
246
' #clock-cells ' :
196
247
const : 0
197
248
@@ -216,6 +267,23 @@ examples:
216
267
};
217
268
218
269
# Example apcs with qcs404
270
+ - |
271
+ #define GCC_APSS_AHB_CLK_SRC 1
272
+ #define GCC_GPLL0_AO_OUT_MAIN 123
273
+ mailbox@b011000 {
274
+ compatible = "qcom,qcs404-apcs-apps-global",
275
+ "qcom,msm8916-apcs-kpss-global", "syscon";
276
+ reg = <0x0b011000 0x1000>;
277
+ #mbox-cells = <1>;
278
+
279
+ apcs_clk: clock-controller {
280
+ clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
281
+ clock-names = "pll", "aux";
282
+ #clock-cells = <0>;
283
+ };
284
+ };
285
+
286
+ # Example apcs with qcs404 (deprecated: use clock-controller subnode)
219
287
- |
220
288
#define GCC_APSS_AHB_CLK_SRC 1
221
289
#define GCC_GPLL0_AO_OUT_MAIN 123
0 commit comments