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