xsk: Fix possible crash when multiple sockets are created
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / clock / samsung,exynos5433-clock.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/clock/samsung,exynos5433-clock.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Samsung Exynos5433 SoC clock controller
8
9 maintainers:
10   - Chanwoo Choi <cw00.choi@samsung.com>
11   - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
12   - Sylwester Nawrocki <s.nawrocki@samsung.com>
13   - Tomasz Figa <tomasz.figa@gmail.com>
14
15 description: |
16   Expected external clocks, defined in DTS as fixed-rate clocks with a matching
17   name::
18     - "oscclk" - PLL input clock from XXTI
19
20   All available clocks are defined as preprocessor macros in
21   include/dt-bindings/clock/exynos5433.h header.
22
23 properties:
24   compatible:
25     enum:
26         # CMU_TOP which generates clocks for
27         # IMEM/FSYS/G3D/GSCL/HEVC/MSCL/G2D/MFC/PERIC/PERIS domains and bus
28         # clocks
29       - samsung,exynos5433-cmu-top
30         # CMU_CPIF which generates clocks for LLI (Low Latency Interface) IP
31       - samsung,exynos5433-cmu-cpif
32         # CMU_MIF which generates clocks for DRAM Memory Controller domain
33       - samsung,exynos5433-cmu-mif
34         # CMU_PERIC which generates clocks for
35         # UART/I2C/SPI/I2S/PCM/SPDIF/PWM/SLIMBUS IPs
36       - samsung,exynos5433-cmu-peric
37         # CMU_PERIS which generates clocks for PMU/TMU/MCT/WDT/RTC/SECKEY/TZPC IPs
38       - samsung,exynos5433-cmu-peris
39         # CMU_FSYS which generates clocks for USB/UFS/SDMMC/TSI/PDMA IPs
40       - samsung,exynos5433-cmu-fsys
41       - samsung,exynos5433-cmu-g2d
42         # CMU_DISP which generates clocks for Display (DECON/HDMI/DSIM/MIXER) IPs
43       - samsung,exynos5433-cmu-disp
44       - samsung,exynos5433-cmu-aud
45       - samsung,exynos5433-cmu-bus0
46       - samsung,exynos5433-cmu-bus1
47       - samsung,exynos5433-cmu-bus2
48       - samsung,exynos5433-cmu-g3d
49       - samsung,exynos5433-cmu-gscl
50       - samsung,exynos5433-cmu-apollo
51         # CMU_ATLAS which generates clocks for Cortex-A57 Quad-core processor,
52         # CoreSight and  L2 cache controller
53       - samsung,exynos5433-cmu-atlas
54         # CMU_MSCL which generates clocks for M2M (Memory to Memory) scaler and
55         # JPEG IPs
56       - samsung,exynos5433-cmu-mscl
57       - samsung,exynos5433-cmu-mfc
58       - samsung,exynos5433-cmu-hevc
59         # CMU_ISP which generates clocks for FIMC-ISP/DRC/SCLC/DIS/3DNR IPs
60       - samsung,exynos5433-cmu-isp
61         # CMU_CAM0 which generates clocks for
62         # MIPI_CSIS{0|1}/FIMC_LITE_{A|B|D}/FIMC_3AA{0|1} IPs
63       - samsung,exynos5433-cmu-cam0
64         # CMU_CAM1 which generates clocks for
65         # Cortex-A5/MIPI_CSIS2/FIMC-LITE_C/FIMC-FD IPs
66       - samsung,exynos5433-cmu-cam1
67         # CMU_IMEM which generates clocks for SSS (Security SubSystem) and
68         # SlimSSS IPs
69       - samsung,exynos5433-cmu-imem
70
71   clocks:
72     minItems: 1
73     maxItems: 10
74
75   clock-names:
76     minItems: 1
77     maxItems: 10
78
79   "#clock-cells":
80     const: 1
81
82   power-domains:
83     maxItems: 1
84
85   reg:
86     maxItems: 1
87
88 required:
89   - compatible
90   - "#clock-cells"
91   - reg
92
93 allOf:
94   - if:
95       properties:
96         compatible:
97           contains:
98             const: samsung,exynos5433-cmu-top
99     then:
100       properties:
101         clocks:
102           minItems: 4
103           maxItems: 4
104         clock-names:
105           items:
106             - const: oscclk
107             - const: sclk_mphy_pll
108             - const: sclk_mfc_pll
109             - const: sclk_bus_pll
110       required:
111         - clock-names
112         - clocks
113
114   - if:
115       properties:
116         compatible:
117           contains:
118             const: samsung,exynos5433-cmu-cpif
119     then:
120       properties:
121         clocks:
122           minItems: 1
123           maxItems: 1
124         clock-names:
125           items:
126             - const: oscclk
127       required:
128         - clock-names
129         - clocks
130
131   - if:
132       properties:
133         compatible:
134           contains:
135             const: samsung,exynos5433-cmu-mif
136     then:
137       properties:
138         clocks:
139           minItems: 2
140           maxItems: 2
141         clock-names:
142           items:
143             - const: oscclk
144             - const: sclk_mphy_pll
145       required:
146         - clock-names
147         - clocks
148
149   - if:
150       properties:
151         compatible:
152           contains:
153             const: samsung,exynos5433-cmu-fsys
154     then:
155       properties:
156         clocks:
157           minItems: 10
158           maxItems: 10
159         clock-names:
160           items:
161             - const: oscclk
162             - const: sclk_ufs_mphy
163             - const: aclk_fsys_200
164             - const: sclk_pcie_100_fsys
165             - const: sclk_ufsunipro_fsys
166             - const: sclk_mmc2_fsys
167             - const: sclk_mmc1_fsys
168             - const: sclk_mmc0_fsys
169             - const: sclk_usbhost30_fsys
170             - const: sclk_usbdrd30_fsys
171       required:
172         - clock-names
173         - clocks
174
175   - if:
176       properties:
177         compatible:
178           contains:
179             const: samsung,exynos5433-cmu-g2d
180     then:
181       properties:
182         clocks:
183           minItems: 3
184           maxItems: 3
185         clock-names:
186           items:
187             - const: oscclk
188             - const: aclk_g2d_266
189             - const: aclk_g2d_400
190       required:
191         - clock-names
192         - clocks
193
194   - if:
195       properties:
196         compatible:
197           contains:
198             const: samsung,exynos5433-cmu-disp
199     then:
200       properties:
201         clocks:
202           minItems: 9
203           maxItems: 9
204         clock-names:
205           items:
206             - const: oscclk
207             - const: sclk_dsim1_disp
208             - const: sclk_dsim0_disp
209             - const: sclk_dsd_disp
210             - const: sclk_decon_tv_eclk_disp
211             - const: sclk_decon_vclk_disp
212             - const: sclk_decon_eclk_disp
213             - const: sclk_decon_tv_vclk_disp
214             - const: aclk_disp_333
215       required:
216         - clock-names
217         - clocks
218
219   - if:
220       properties:
221         compatible:
222           contains:
223             const: samsung,exynos5433-cmu-aud
224     then:
225       properties:
226         clocks:
227           minItems: 2
228           maxItems: 2
229         clock-names:
230           items:
231             - const: oscclk
232             - const: fout_aud_pll
233       required:
234         - clock-names
235         - clocks
236
237   - if:
238       properties:
239         compatible:
240           contains:
241             const: samsung,exynos5433-cmu-bus0
242     then:
243       properties:
244         clocks:
245           minItems: 1
246           maxItems: 1
247         clock-names:
248           items:
249             - const: aclk_bus0_400
250       required:
251         - clock-names
252         - clocks
253
254   - if:
255       properties:
256         compatible:
257           contains:
258             const: samsung,exynos5433-cmu-bus1
259     then:
260       properties:
261         clocks:
262           minItems: 1
263           maxItems: 1
264         clock-names:
265           items:
266             - const: aclk_bus1_400
267       required:
268         - clock-names
269         - clocks
270
271   - if:
272       properties:
273         compatible:
274           contains:
275             const: samsung,exynos5433-cmu-bus2
276     then:
277       properties:
278         clocks:
279           minItems: 2
280           maxItems: 2
281         clock-names:
282           items:
283             - const: oscclk
284             - const: aclk_bus2_400
285       required:
286         - clock-names
287         - clocks
288
289   - if:
290       properties:
291         compatible:
292           contains:
293             const: samsung,exynos5433-cmu-g3d
294     then:
295       properties:
296         clocks:
297           minItems: 2
298           maxItems: 2
299         clock-names:
300           items:
301             - const: oscclk
302             - const: aclk_g3d_400
303       required:
304         - clock-names
305         - clocks
306
307   - if:
308       properties:
309         compatible:
310           contains:
311             const: samsung,exynos5433-cmu-gscl
312     then:
313       properties:
314         clocks:
315           minItems: 3
316           maxItems: 3
317         clock-names:
318           items:
319             - const: oscclk
320             - const: aclk_gscl_111
321             - const: aclk_gscl_333
322       required:
323         - clock-names
324         - clocks
325
326   - if:
327       properties:
328         compatible:
329           contains:
330             const: samsung,exynos5433-cmu-apollo
331     then:
332       properties:
333         clocks:
334           minItems: 2
335           maxItems: 2
336         clock-names:
337           items:
338             - const: oscclk
339             - const: sclk_bus_pll_apollo
340       required:
341         - clock-names
342         - clocks
343
344   - if:
345       properties:
346         compatible:
347           contains:
348             const: samsung,exynos5433-cmu-atlas
349     then:
350       properties:
351         clocks:
352           minItems: 2
353           maxItems: 2
354         clock-names:
355           items:
356             - const: oscclk
357             - const: sclk_bus_pll_atlas
358       required:
359         - clock-names
360         - clocks
361
362   - if:
363       properties:
364         compatible:
365           contains:
366             const: samsung,exynos5433-cmu-mscl
367     then:
368       properties:
369         clocks:
370           minItems: 3
371           maxItems: 3
372         clock-names:
373           items:
374             - const: oscclk
375             - const: sclk_jpeg_mscl
376             - const: aclk_mscl_400
377       required:
378         - clock-names
379         - clocks
380
381   - if:
382       properties:
383         compatible:
384           contains:
385             const: samsung,exynos5433-cmu-mfc
386     then:
387       properties:
388         clocks:
389           minItems: 2
390           maxItems: 2
391         clock-names:
392           items:
393             - const: oscclk
394             - const: aclk_mfc_400
395       required:
396         - clock-names
397         - clocks
398
399   - if:
400       properties:
401         compatible:
402           contains:
403             const: samsung,exynos5433-cmu-hevc
404     then:
405       properties:
406         clocks:
407           minItems: 2
408           maxItems: 2
409         clock-names:
410           items:
411             - const: oscclk
412             - const: aclk_hevc_400
413       required:
414         - clock-names
415         - clocks
416
417   - if:
418       properties:
419         compatible:
420           contains:
421             const: samsung,exynos5433-cmu-isp
422     then:
423       properties:
424         clocks:
425           minItems: 3
426           maxItems: 3
427         clock-names:
428           items:
429             - const: oscclk
430             - const: aclk_isp_dis_400
431             - const: aclk_isp_400
432       required:
433         - clock-names
434         - clocks
435
436   - if:
437       properties:
438         compatible:
439           contains:
440             const: samsung,exynos5433-cmu-cam0
441     then:
442       properties:
443         clocks:
444           minItems: 4
445           maxItems: 4
446         clock-names:
447           items:
448             - const: oscclk
449             - const: aclk_cam0_333
450             - const: aclk_cam0_400
451             - const: aclk_cam0_552
452       required:
453         - clock-names
454         - clocks
455
456   - if:
457       properties:
458         compatible:
459           contains:
460             const: samsung,exynos5433-cmu-cam1
461     then:
462       properties:
463         clocks:
464           minItems: 7
465           maxItems: 7
466         clock-names:
467           items:
468             - const: oscclk
469             - const: sclk_isp_uart_cam1
470             - const: sclk_isp_spi1_cam1
471             - const: sclk_isp_spi0_cam1
472             - const: aclk_cam1_333
473             - const: aclk_cam1_400
474             - const: aclk_cam1_552
475       required:
476         - clock-names
477         - clocks
478
479   - if:
480       properties:
481         compatible:
482           contains:
483             const: samsung,exynos5433-cmu-imem
484     then:
485       properties:
486         clocks:
487           minItems: 4
488           maxItems: 4
489         clock-names:
490           items:
491             - const: oscclk
492             - const: aclk_imem_sssx_266
493             - const: aclk_imem_266
494             - const: aclk_imem_200
495       required:
496         - clock-names
497         - clocks
498
499 additionalProperties: false
500
501 examples:
502   - |
503     #include <dt-bindings/clock/exynos5433.h>
504     xxti: clock {
505         compatible = "fixed-clock";
506         clock-output-names = "oscclk";
507         #clock-cells = <0>;
508         clock-frequency = <24000000>;
509     };
510
511     clock-controller@10030000 {
512         compatible = "samsung,exynos5433-cmu-top";
513         reg = <0x10030000 0x1000>;
514         #clock-cells = <1>;
515
516         clock-names = "oscclk",
517                       "sclk_mphy_pll",
518                       "sclk_mfc_pll",
519                       "sclk_bus_pll";
520         clocks = <&xxti>,
521                  <&cmu_cpif CLK_SCLK_MPHY_PLL>,
522                  <&cmu_mif CLK_SCLK_MFC_PLL>,
523                  <&cmu_mif CLK_SCLK_BUS_PLL>;
524     };