xref: /linux/Documentation/devicetree/bindings/usb/generic-ehci.yaml (revision f5e9d31e79c1ce8ba948ecac74d75e9c8d2f0c87)
1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/generic-ehci.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: USB EHCI Controller
8
9maintainers:
10  - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11
12allOf:
13  - $ref: usb-hcd.yaml
14  - if:
15      properties:
16        compatible:
17          not:
18            contains:
19              const: ibm,usb-ehci-440epx
20    then:
21      properties:
22        reg:
23          maxItems: 1
24
25properties:
26  compatible:
27    oneOf:
28      - items:
29          - enum:
30              - allwinner,sun4i-a10-ehci
31              - allwinner,sun50i-a100-ehci
32              - allwinner,sun50i-a64-ehci
33              - allwinner,sun50i-h6-ehci
34              - allwinner,sun50i-h616-ehci
35              - allwinner,sun55i-a523-ehci
36              - allwinner,sun5i-a13-ehci
37              - allwinner,sun6i-a31-ehci
38              - allwinner,sun7i-a20-ehci
39              - allwinner,sun8i-a23-ehci
40              - allwinner,sun8i-a83t-ehci
41              - allwinner,sun8i-h3-ehci
42              - allwinner,sun8i-r40-ehci
43              - allwinner,sun8i-v3s-ehci
44              - allwinner,sun9i-a80-ehci
45              - allwinner,sun20i-d1-ehci
46              - aspeed,ast2400-ehci
47              - aspeed,ast2500-ehci
48              - aspeed,ast2600-ehci
49              - aspeed,ast2700-ehci
50              - brcm,bcm3384-ehci
51              - brcm,bcm63268-ehci
52              - brcm,bcm6328-ehci
53              - brcm,bcm6358-ehci
54              - brcm,bcm6362-ehci
55              - brcm,bcm6368-ehci
56              - brcm,bcm7125-ehci
57              - brcm,bcm7346-ehci
58              - brcm,bcm7358-ehci
59              - brcm,bcm7360-ehci
60              - brcm,bcm7362-ehci
61              - brcm,bcm7420-ehci
62              - brcm,bcm7425-ehci
63              - brcm,bcm7435-ehci
64              - hpe,gxp-ehci
65              - ibm,476gtr-ehci
66              - nxp,lpc1850-ehci
67              - qca,ar7100-ehci
68              - rockchip,rk3588-ehci
69              - snps,hsdk-v1.0-ehci
70              - socionext,uniphier-ehci
71          - const: generic-ehci
72      - items:
73          - enum:
74              - atmel,at91sam9g45-ehci
75              - cavium,octeon-6335-ehci
76              - ibm,usb-ehci-440epx
77              - ibm,usb-ehci-460ex
78              - nintendo,hollywood-usb-ehci
79              - st,spear600-ehci
80          - const: usb-ehci
81      - enum:
82          - generic-ehci
83          - marvell,ac5-ehci
84          - marvell,armada-3700-ehci
85          - marvell,orion-ehci
86          - nuvoton,npcm750-ehci
87          - nuvoton,npcm845-ehci
88          - ti,ehci-omap
89          - usb-ehci
90          - via,vt8500-ehci
91
92  reg:
93    minItems: 1
94    maxItems: 2
95
96  interrupts:
97    maxItems: 1
98
99  resets:
100    minItems: 1
101    maxItems: 4
102
103  clocks:
104    minItems: 1
105    maxItems: 4
106    description: |
107      In case the Renesas R-Car Gen3 SoCs:
108        - if a host only channel: first clock should be host.
109        - if a USB DRD channel: first clock should be host and second
110          one should be peripheral
111
112  power-domains:
113    maxItems: 1
114
115  big-endian:
116    $ref: /schemas/types.yaml#/definitions/flag
117    description:
118      Set this flag for HCDs with big endian descriptors and big
119      endian registers.
120
121  big-endian-desc:
122    $ref: /schemas/types.yaml#/definitions/flag
123    description:
124      Set this flag for HCDs with big endian descriptors.
125
126  big-endian-regs:
127    $ref: /schemas/types.yaml#/definitions/flag
128    description:
129      Set this flag for HCDs with big endian registers.
130
131  has-transaction-translator:
132    $ref: /schemas/types.yaml#/definitions/flag
133    description:
134      Set this flag if EHCI has a Transaction Translator built into
135      the root hub.
136
137  needs-reset-on-resume:
138    $ref: /schemas/types.yaml#/definitions/flag
139    description:
140      Set this flag to force EHCI reset after resume.
141
142  spurious-oc:
143    $ref: /schemas/types.yaml#/definitions/flag
144    description:
145      Set this flag to indicate that the hardware sometimes turns on
146      the OC bit when an over-current isn't actually present.
147
148  phys:
149    minItems: 1
150    maxItems: 3
151
152  phy-names:
153    const: usb
154
155  iommus:
156    maxItems: 1
157
158  dr_mode:
159    enum:
160      - host
161      - otg
162
163required:
164  - compatible
165  - reg
166  - interrupts
167
168unevaluatedProperties: false
169
170examples:
171  - |
172    usb@e0000300 {
173        compatible = "ibm,usb-ehci-440epx", "usb-ehci";
174        interrupt-parent = <&UIC0>;
175        interrupts = <0x1a 4>;
176        reg = <0xe0000300 90>, <0xe0000390 70>;
177        big-endian;
178    };
179
180  - |
181    ehci0: usb@1c14000 {
182        compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
183        reg = <0x01c14000 0x100>;
184        interrupts = <39>;
185        clocks = <&ahb_gates 1>;
186        phys = <&usbphy 1>;
187        phy-names = "usb";
188    };
189
190...
191