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