blob: e5656950b3bd0ad44ba47f0ada84b558e71df590 [file] [log] [blame]
Tom Rini93743d22024-04-01 09:08:13 -04001# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/clock/brcm,kona-ccu.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Broadcom Kona family clock control units (CCU)
8
9maintainers:
10 - Florian Fainelli <florian.fainelli@broadcom.com>
11 - Ray Jui <rjui@broadcom.com>
12 - Scott Branden <sbranden@broadcom.com>
13
14description: |
15 Broadcom "Kona" style clock control unit (CCU) is a clock provider that
16 manages a set of clock signals.
17
18 All available clock IDs are defined in
19 - include/dt-bindings/clock/bcm281xx.h for BCM281XX family
20 - include/dt-bindings/clock/bcm21664.h for BCM21664 family
21
22properties:
23 compatible:
24 enum:
25 - brcm,bcm11351-aon-ccu
26 - brcm,bcm11351-hub-ccu
27 - brcm,bcm11351-master-ccu
28 - brcm,bcm11351-root-ccu
29 - brcm,bcm11351-slave-ccu
30 - brcm,bcm21664-aon-ccu
31 - brcm,bcm21664-master-ccu
32 - brcm,bcm21664-root-ccu
33 - brcm,bcm21664-slave-ccu
34
35 reg:
36 maxItems: 1
37
38 '#clock-cells':
39 const: 1
40
41 clock-output-names:
42 minItems: 1
43 maxItems: 10
44
45required:
46 - compatible
47 - reg
48 - '#clock-cells'
49 - clock-output-names
50
51allOf:
52 - if:
53 properties:
54 compatible:
55 contains:
56 const: brcm,bcm11351-aon-ccu
57 then:
58 properties:
59 clock-output-names:
60 items:
61 - const: hub_timer
62 - const: pmu_bsc
63 - const: pmu_bsc_var
64 - if:
65 properties:
66 compatible:
67 contains:
68 const: brcm,bcm11351-hub-ccu
69 then:
70 properties:
71 clock-output-names:
72 const: tmon_1m
73 - if:
74 properties:
75 compatible:
76 contains:
77 const: brcm,bcm11351-master-ccu
78 then:
79 properties:
80 clock-output-names:
81 items:
82 - const: sdio1
83 - const: sdio2
84 - const: sdio3
85 - const: sdio4
86 - const: usb_ic
87 - const: hsic2_48m
88 - const: hsic2_12m
89 - if:
90 properties:
91 compatible:
92 contains:
93 enum:
94 - brcm,bcm11351-root-ccu
95 - brcm,bcm21664-root-ccu
96 then:
97 properties:
98 clock-output-names:
99 const: frac_1m
100 - if:
101 properties:
102 compatible:
103 contains:
104 const: brcm,bcm11351-slave-ccu
105 then:
106 properties:
107 clock-output-names:
108 items:
109 - const: uartb
110 - const: uartb2
111 - const: uartb3
112 - const: uartb4
113 - const: ssp0
114 - const: ssp2
115 - const: bsc1
116 - const: bsc2
117 - const: bsc3
118 - const: pwm
119 - if:
120 properties:
121 compatible:
122 contains:
123 const: brcm,bcm21664-aon-ccu
124 then:
125 properties:
126 clock-output-names:
127 const: hub_timer
128 - if:
129 properties:
130 compatible:
131 contains:
132 const: brcm,bcm21664-master-ccu
133 then:
134 properties:
135 clock-output-names:
136 items:
137 - const: sdio1
138 - const: sdio2
139 - const: sdio3
140 - const: sdio4
141 - const: sdio1_sleep
142 - const: sdio2_sleep
143 - const: sdio3_sleep
144 - const: sdio4_sleep
145 - if:
146 properties:
147 compatible:
148 contains:
149 const: brcm,bcm21664-slave-ccu
150 then:
151 properties:
152 clock-output-names:
153 items:
154 - const: uartb
155 - const: uartb2
156 - const: uartb3
157 - const: bsc1
158 - const: bsc2
159 - const: bsc3
160 - const: bsc4
161
162additionalProperties: false
163
164examples:
165 - |
166 clock-controller@3e011000 {
167 compatible = "brcm,bcm11351-slave-ccu";
168 reg = <0x3e011000 0x0f00>;
169 #clock-cells = <1>;
170 clock-output-names = "uartb",
171 "uartb2",
172 "uartb3",
173 "uartb4",
174 "ssp0",
175 "ssp2",
176 "bsc1",
177 "bsc2",
178 "bsc3",
179 "pwm";
180 };
181...