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