blob: 509df06b9c9d8dd5d33973b050fe23a0667fc94e [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: Ingenic SoCs CGU
8
9description: |
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
15maintainers:
16 - Paul Cercueil <paul@crapouillou.net>
17
18select:
19 properties:
20 compatible:
21 contains:
22 enum:
23 - ingenic,jz4740-cgu
24 - ingenic,jz4725b-cgu
25 - ingenic,jz4755-cgu
26 - ingenic,jz4760-cgu
27 - ingenic,jz4760b-cgu
28 - ingenic,jz4770-cgu
29 - ingenic,jz4780-cgu
30 - ingenic,x1000-cgu
31 - ingenic,x1830-cgu
32 required:
33 - compatible
34
35properties:
36 $nodename:
37 pattern: "^clock-controller@[0-9a-f]+$"
38
39 "#address-cells":
40 const: 1
41
42 "#size-cells":
43 const: 1
44
45 "#clock-cells":
46 const: 1
47
48 ranges: true
49
50 compatible:
51 items:
52 - enum:
53 - ingenic,jz4740-cgu
54 - ingenic,jz4725b-cgu
55 - ingenic,jz4755-cgu
56 - ingenic,jz4760-cgu
57 - ingenic,jz4760b-cgu
58 - ingenic,jz4770-cgu
59 - ingenic,jz4780-cgu
60 - ingenic,x1000-cgu
61 - ingenic,x1830-cgu
62 - const: simple-mfd
63 minItems: 1
64
65 reg:
66 maxItems: 1
67
68 clocks:
69 items:
70 - description: External oscillator clock
71 - description: Internal 32 kHz RTC clock
72
73 clock-names:
74 items:
75 - const: ext
76 - enum:
77 - rtc
78 - osc32k # Different name, same clock
79
80 assigned-clocks:
81 minItems: 1
82 maxItems: 64
83
84 assigned-clock-parents:
85 minItems: 1
86 maxItems: 64
87
88 assigned-clock-rates:
89 minItems: 1
90 maxItems: 64
91
92required:
93 - "#clock-cells"
94 - compatible
95 - reg
96 - clocks
97 - clock-names
98
99patternProperties:
100 "^usb-phy@[a-f0-9]+$":
101 $ref: /schemas/phy/ingenic,phy-usb.yaml#
102 "^mac-phy-ctrl@[a-f0-9]+$":
103 $ref: /schemas/net/ingenic,mac.yaml#
104
105additionalProperties: false
106
107examples:
108 - |
109 #include <dt-bindings/clock/ingenic,jz4770-cgu.h>
110 cgu: clock-controller@10000000 {
111 compatible = "ingenic,jz4770-cgu", "simple-mfd";
112 reg = <0x10000000 0x100>;
113 #address-cells = <1>;
114 #size-cells = <1>;
115 ranges = <0x0 0x10000000 0x100>;
116
117 clocks = <&ext>, <&osc32k>;
118 clock-names = "ext", "osc32k";
119
120 #clock-cells = <1>;
121
122 otg_phy: usb-phy@3c {
123 compatible = "ingenic,jz4770-phy";
124 reg = <0x3c 0x10>;
125
126 clocks = <&cgu JZ4770_CLK_OTG_PHY>;
127
128 vcc-supply = <&ldo5>;
129
130 #phy-cells = <0>;
131 };
132 };