Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / clock / ingenic,cgu.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/ingenic,cgu.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Ingenic SoCs CGU devicetree bindings
8
9 description: |
10   The CGU in an Ingenic SoC provides all the clocks generated on-chip. It
11   typically includes a variety of PLLs, multiplexers, dividers & gates in order
12   to provide many different clock signals derived from only 2 external source
13   clocks.
14
15 maintainers:
16   - Paul Cercueil <paul@crapouillou.net>
17
18 select:
19   properties:
20     compatible:
21       contains:
22         enum:
23           - ingenic,jz4740-cgu
24           - ingenic,jz4725b-cgu
25           - ingenic,jz4760-cgu
26           - ingenic,jz4760b-cgu
27           - ingenic,jz4770-cgu
28           - ingenic,jz4780-cgu
29           - ingenic,x1000-cgu
30           - ingenic,x1830-cgu
31   required:
32     - compatible
33
34 properties:
35   $nodename:
36     pattern: "^clock-controller@[0-9a-f]+$"
37
38   "#address-cells":
39     const: 1
40
41   "#size-cells":
42     const: 1
43
44   "#clock-cells":
45     const: 1
46
47   ranges: true
48
49   compatible:
50     items:
51       - enum:
52           - ingenic,jz4740-cgu
53           - ingenic,jz4725b-cgu
54           - ingenic,jz4760-cgu
55           - ingenic,jz4760b-cgu
56           - ingenic,jz4770-cgu
57           - ingenic,jz4780-cgu
58           - ingenic,x1000-cgu
59           - ingenic,x1830-cgu
60       - const: simple-mfd
61     minItems: 1
62
63   reg:
64     maxItems: 1
65
66   clocks:
67     items:
68       - description: External oscillator clock
69       - description: Internal 32 kHz RTC clock
70
71   clock-names:
72     items:
73       - const: ext
74       - enum:
75           - rtc
76           - osc32k # Different name, same clock
77
78   assigned-clocks:
79     minItems: 1
80     maxItems: 64
81
82   assigned-clock-parents:
83     minItems: 1
84     maxItems: 64
85
86   assigned-clock-rates:
87     minItems: 1
88     maxItems: 64
89
90 required:
91   - "#clock-cells"
92   - compatible
93   - reg
94   - clocks
95   - clock-names
96
97 patternProperties:
98   "^usb-phy@[a-f0-9]+$":
99     allOf: [ $ref: "../phy/ingenic,phy-usb.yaml#" ]
100   "^mac-phy-ctrl@[a-f0-9]+$":
101     allOf: [ $ref: "../net/ingenic,mac.yaml#" ]
102
103 additionalProperties: false
104
105 examples:
106   - |
107     #include <dt-bindings/clock/jz4770-cgu.h>
108     cgu: clock-controller@10000000 {
109       compatible = "ingenic,jz4770-cgu", "simple-mfd";
110       reg = <0x10000000 0x100>;
111       #address-cells = <1>;
112       #size-cells = <1>;
113       ranges = <0x0 0x10000000 0x100>;
114
115       clocks = <&ext>, <&osc32k>;
116       clock-names = "ext", "osc32k";
117
118       #clock-cells = <1>;
119
120       otg_phy: usb-phy@3c {
121         compatible = "ingenic,jz4770-phy";
122         reg = <0x3c 0x10>;
123
124         clocks = <&cgu JZ4770_CLK_OTG_PHY>;
125
126         vcc-supply = <&ldo5>;
127
128         #phy-cells = <0>;
129       };
130     };