blob: 5254413137c644b2e8e1db4285c2278799de098b [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/phy/rockchip,inno-usb2phy.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Rockchip USB2.0 phy with inno IP block
8
9maintainers:
10 - Heiko Stuebner <heiko@sntech.de>
11
12properties:
13 compatible:
14 enum:
15 - rockchip,px30-usb2phy
16 - rockchip,rk3128-usb2phy
17 - rockchip,rk3228-usb2phy
18 - rockchip,rk3308-usb2phy
19 - rockchip,rk3328-usb2phy
20 - rockchip,rk3366-usb2phy
21 - rockchip,rk3399-usb2phy
22 - rockchip,rk3568-usb2phy
23 - rockchip,rk3588-usb2phy
24 - rockchip,rv1108-usb2phy
25
26 reg:
27 maxItems: 1
28
29 clock-output-names:
30 description:
31 The usb 480m output clock name.
32
33 "#clock-cells":
34 const: 0
35
36 clocks:
37 maxItems: 1
38
39 clock-names:
40 const: phyclk
41
42 assigned-clocks:
43 description:
44 Phandle of the usb 480m clock.
45
46 assigned-clock-parents:
47 description:
48 Parent of the usb 480m clock.
49 Select between usb-phy output 480m and xin24m.
50 Refer to clk/clock-bindings.txt for generic clock consumer properties.
51
52 extcon:
53 description:
54 Phandle to the extcon device providing the cable state for the otg phy.
55
56 interrupts:
57 description: Muxed interrupt for both ports
58 maxItems: 1
59
60 resets:
61 maxItems: 2
62
63 reset-names:
64 items:
65 - const: phy
66 - const: apb
67
68 rockchip,usbgrf:
69 $ref: /schemas/types.yaml#/definitions/phandle
70 description:
71 Phandle to the syscon managing the 'usb general register files'.
72 When set the driver will request its phandle as one companion-grf
73 for some special SoCs (e.g rv1108).
74
75 host-port:
76 type: object
77 additionalProperties: false
78
79 properties:
80 "#phy-cells":
81 const: 0
82
83 interrupts:
84 description: host linestate interrupt
85 maxItems: 1
86
87 interrupt-names:
88 const: linestate
89
90 phy-supply:
91 description:
92 Phandle to a regulator that provides power to VBUS.
93 See ./phy-bindings.txt for details.
94
95 required:
96 - "#phy-cells"
97
98 otg-port:
99 type: object
100 additionalProperties: false
101
102 properties:
103 "#phy-cells":
104 const: 0
105
106 interrupts:
107 minItems: 1
108 maxItems: 3
109
110 interrupt-names:
111 oneOf:
112 - const: linestate
113 - const: otg-mux
114 - items:
115 - const: otg-bvalid
116 - const: otg-id
117 - const: linestate
118
119 phy-supply:
120 description:
121 Phandle to a regulator that provides power to VBUS.
122 See ./phy-bindings.txt for details.
123
124 required:
125 - "#phy-cells"
126
127required:
128 - compatible
129 - reg
130 - clock-output-names
131 - "#clock-cells"
132
133anyOf:
134 - required:
135 - otg-port
136 - required:
137 - host-port
138
139allOf:
140 - if:
141 properties:
142 compatible:
143 contains:
144 enum:
145 - rockchip,rk3568-usb2phy
146 - rockchip,rk3588-usb2phy
147
148 then:
149 properties:
150 host-port:
151 properties:
152 interrupts: false
153
154 otg-port:
155 properties:
156 interrupts: false
157
158 required:
159 - interrupts
160
161 else:
162 properties:
163 interrupts: false
164
165 host-port:
166 required:
167 - interrupts
168 - interrupt-names
169
170 otg-port:
171 required:
172 - interrupts
173 - interrupt-names
174
175additionalProperties: false
176
177examples:
178 - |
179 #include <dt-bindings/clock/rk3399-cru.h>
180 #include <dt-bindings/interrupt-controller/arm-gic.h>
181 #include <dt-bindings/interrupt-controller/irq.h>
182 u2phy0: usb2phy@e450 {
183 compatible = "rockchip,rk3399-usb2phy";
184 reg = <0xe450 0x10>;
185 clocks = <&cru SCLK_USB2PHY0_REF>;
186 clock-names = "phyclk";
187 clock-output-names = "clk_usbphy0_480m";
188 #clock-cells = <0>;
189
190 u2phy0_host: host-port {
191 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
192 interrupt-names = "linestate";
193 #phy-cells = <0>;
194 };
195
196 u2phy0_otg: otg-port {
197 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
198 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
199 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
200 interrupt-names = "otg-bvalid", "otg-id", "linestate";
201 #phy-cells = <0>;
202 };
203 };