Merge tag 'soc-drivers-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-block.git] / Documentation / devicetree / bindings / clock / google,gs101-clock.yaml
CommitLineData
0a910f16
PG
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/clock/google,gs101-clock.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Google GS101 SoC clock controller
8
9maintainers:
10 - Peter Griffin <peter.griffin@linaro.org>
11
12description: |
13 Google GS101 clock controller is comprised of several CMU units, generating
14 clocks for different domains. Those CMU units are modeled as separate device
15 tree nodes, and might depend on each other. The root clock in that clock tree
16 is OSCCLK (24.576 MHz). That external clock must be defined as a fixed-rate
17 clock in dts.
18
19 CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
20 dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP.
21
22 Each clock is assigned an identifier and client nodes can use this identifier
23 to specify the clock which they consume. All clocks available for usage
24 in clock consumer nodes are defined as preprocessor macros in
25 'dt-bindings/clock/gs101.h' header.
26
27properties:
28 compatible:
29 enum:
30 - google,gs101-cmu-top
31 - google,gs101-cmu-apm
32 - google,gs101-cmu-misc
f80c4388 33 - google,gs101-cmu-peric0
455061eb 34 - google,gs101-cmu-peric1
0a910f16
PG
35
36 clocks:
37 minItems: 1
f80c4388 38 maxItems: 3
0a910f16
PG
39
40 clock-names:
41 minItems: 1
f80c4388 42 maxItems: 3
0a910f16
PG
43
44 "#clock-cells":
45 const: 1
46
47 reg:
48 maxItems: 1
49
50required:
51 - compatible
52 - "#clock-cells"
53 - clocks
54 - clock-names
55 - reg
56
57allOf:
58 - if:
59 properties:
60 compatible:
61 contains:
62 enum:
63 - google,gs101-cmu-top
64 - google,gs101-cmu-apm
65 then:
66 properties:
67 clocks:
68 items:
69 - description: External reference clock (24.576 MHz)
70
71 clock-names:
72 items:
73 - const: oscclk
74
75 - if:
76 properties:
77 compatible:
78 contains:
79 const: google,gs101-cmu-misc
80
81 then:
82 properties:
83 clocks:
84 items:
85 - description: Misc bus clock (from CMU_TOP)
86 - description: Misc sss clock (from CMU_TOP)
87
88 clock-names:
89 items:
1755c4b0
TA
90 - const: bus
91 - const: sss
0a910f16 92
f80c4388
TA
93 - if:
94 properties:
95 compatible:
96 contains:
455061eb
AD
97 enum:
98 - google,gs101-cmu-peric0
99 - google,gs101-cmu-peric1
f80c4388
TA
100
101 then:
102 properties:
103 clocks:
104 items:
105 - description: External reference clock (24.576 MHz)
455061eb
AD
106 - description: Connectivity Peripheral 0/1 bus clock (from CMU_TOP)
107 - description: Connectivity Peripheral 0/1 IP clock (from CMU_TOP)
f80c4388
TA
108
109 clock-names:
110 items:
111 - const: oscclk
112 - const: bus
113 - const: ip
114
0a910f16
PG
115additionalProperties: false
116
117examples:
118 # Clock controller node for CMU_TOP
119 - |
120 #include <dt-bindings/clock/google,gs101.h>
121
122 cmu_top: clock-controller@1e080000 {
123 compatible = "google,gs101-cmu-top";
124 reg = <0x1e080000 0x8000>;
125 #clock-cells = <1>;
126 clocks = <&ext_24_5m>;
127 clock-names = "oscclk";
128 };
129
130...