1# 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...
182