xref: /linux/Documentation/devicetree/bindings/usb/generic-ohci.yaml (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/generic-ohci.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: USB OHCI Controller
8
9maintainers:
10  - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11
12properties:
13  compatible:
14    oneOf:
15      - items:
16          - enum:
17              - allwinner,sun4i-a10-ohci
18              - allwinner,sun50i-a100-ohci
19              - allwinner,sun50i-a64-ohci
20              - allwinner,sun50i-h6-ohci
21              - allwinner,sun50i-h616-ohci
22              - allwinner,sun55i-a523-ohci
23              - allwinner,sun5i-a13-ohci
24              - allwinner,sun6i-a31-ohci
25              - allwinner,sun7i-a20-ohci
26              - allwinner,sun8i-a23-ohci
27              - allwinner,sun8i-a83t-ohci
28              - allwinner,sun8i-h3-ohci
29              - allwinner,sun8i-r40-ohci
30              - allwinner,sun8i-v3s-ohci
31              - allwinner,sun9i-a80-ohci
32              - allwinner,sun20i-d1-ohci
33              - brcm,bcm3384-ohci
34              - brcm,bcm63268-ohci
35              - brcm,bcm6328-ohci
36              - brcm,bcm6358-ohci
37              - brcm,bcm6362-ohci
38              - brcm,bcm6368-ohci
39              - brcm,bcm7125-ohci
40              - brcm,bcm7346-ohci
41              - brcm,bcm7358-ohci
42              - brcm,bcm7360-ohci
43              - brcm,bcm7362-ohci
44              - brcm,bcm7420-ohci
45              - brcm,bcm7425-ohci
46              - brcm,bcm7435-ohci
47              - hpe,gxp-ohci
48              - ibm,476gtr-ohci
49              - ingenic,jz4740-ohci
50              - rockchip,rk3588-ohci
51              - snps,hsdk-v1.0-ohci
52          - const: generic-ohci
53      - enum:
54          - generic-ohci
55          - ti,ohci-omap3
56      - items:
57          - enum:
58              - atmel,at91rm9200-ohci
59              - cavium,octeon-6335-ohci
60              - nintendo,hollywood-usb-ohci
61              - nxp,ohci-nxp
62              - st,spear600-ohci
63          - const: usb-ohci
64
65  reg:
66    maxItems: 1
67
68  dma-coherent: true
69
70  interrupts:
71    maxItems: 1
72
73  resets:
74    minItems: 1
75    maxItems: 2
76
77  clocks:
78    minItems: 1
79    maxItems: 4
80    description: |
81      In case the Renesas R-Car Gen3 SoCs:
82        - if a host only channel: first clock should be host.
83        - if a USB DRD channel: first clock should be host and second
84          one should be peripheral
85
86  clock-names:
87    minItems: 1
88    maxItems: 4
89
90  power-domains:
91    maxItems: 1
92
93  big-endian:
94    $ref: /schemas/types.yaml#/definitions/flag
95    description:
96      Set this flag for HCDs with big endian descriptors and big
97      endian registers.
98
99  big-endian-desc:
100    $ref: /schemas/types.yaml#/definitions/flag
101    description:
102      Set this flag for HCDs with big endian descriptors.
103
104  big-endian-regs:
105    $ref: /schemas/types.yaml#/definitions/flag
106    description:
107      Set this flag for HCDs with big endian registers.
108
109  remote-wakeup-connected:
110    $ref: /schemas/types.yaml#/definitions/flag
111    description:
112      Remote wakeup is wired on the platform.
113
114  no-big-frame-no:
115    $ref: /schemas/types.yaml#/definitions/flag
116    description:
117      Set if frame_no lives in bits [15:0] of HCCA
118
119  num-ports:
120    $ref: /schemas/types.yaml#/definitions/uint32
121    description:
122      Overrides the detected port count
123
124  phys:
125    minItems: 1
126    maxItems: 3
127
128  phy-names:
129    const: usb
130
131  iommus:
132    maxItems: 1
133
134  dr_mode:
135    enum:
136      - host
137      - otg
138
139  transceiver:
140    $ref: /schemas/types.yaml#/definitions/phandle
141    description:
142      The associated ISP1301 device. Necessary for the UDC controller for
143      connecting to the USB physical layer.
144
145  atmel,vbus-gpio:
146    description:
147      GPIO used to control or sense the USB VBUS power. Each entry
148      represents a VBUS-related GPIO; count and order may vary by hardware.
149      Entries follow standard GPIO specifier format. A value of 0 indicates
150      an unused or unavailable VBUS signal.
151    minItems: 1
152    maxItems: 3
153
154  atmel,oc-gpio:
155    description:
156      GPIO used to signal USB overcurrent condition. Each entry represents
157      an OC detection GPIO; count and order may vary by hardware. Entries
158      follow standard GPIO specifier format. A value of 0 indicates an
159      unused or unavailable OC signal.
160    minItems: 1
161    maxItems: 3
162
163required:
164  - compatible
165  - reg
166  - interrupts
167
168allOf:
169  - $ref: usb-hcd.yaml
170  - if:
171      properties:
172        compatible:
173          contains:
174            const: atmel,at91rm9200-ohci
175    then:
176      properties:
177        clock-names:
178          items:
179            - const: ohci_clk
180            - const: hclk
181            - const: uhpck
182
183      required:
184        - clocks
185        - clock-names
186
187    else:
188      properties:
189        clock-names: false
190        atmel,vbus-gpio: false
191        atmel,oc-gpio: false
192
193  - if:
194      not:
195        properties:
196          compatible:
197            contains:
198              const: nxp,ohci-nxp
199    then:
200      properties:
201        transceiver: false
202  - if:
203      properties:
204        compatible:
205          contains:
206            const: rockchip,rk3588-ohci
207    then:
208      properties:
209        clocks:
210          minItems: 4
211    else:
212      properties:
213        clocks:
214          minItems: 1
215          maxItems: 3
216
217unevaluatedProperties: false
218
219examples:
220  - |
221      ohci0: usb@1c14400 {
222          compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
223          reg = <0x01c14400 0x100>;
224          interrupts = <64>;
225          clocks = <&usb_clk 6>, <&ahb_gates 2>;
226          phys = <&usbphy 1>;
227          phy-names = "usb";
228      };
229
230...
231