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-a64-ohci
19              - allwinner,sun50i-h6-ohci
20              - allwinner,sun50i-h616-ohci
21              - allwinner,sun5i-a13-ohci
22              - allwinner,sun6i-a31-ohci
23              - allwinner,sun7i-a20-ohci
24              - allwinner,sun8i-a23-ohci
25              - allwinner,sun8i-a83t-ohci
26              - allwinner,sun8i-h3-ohci
27              - allwinner,sun8i-r40-ohci
28              - allwinner,sun9i-a80-ohci
29              - allwinner,sun20i-d1-ohci
30              - brcm,bcm3384-ohci
31              - brcm,bcm63268-ohci
32              - brcm,bcm6328-ohci
33              - brcm,bcm6358-ohci
34              - brcm,bcm6362-ohci
35              - brcm,bcm6368-ohci
36              - brcm,bcm7125-ohci
37              - brcm,bcm7346-ohci
38              - brcm,bcm7358-ohci
39              - brcm,bcm7360-ohci
40              - brcm,bcm7362-ohci
41              - brcm,bcm7420-ohci
42              - brcm,bcm7425-ohci
43              - brcm,bcm7435-ohci
44              - hpe,gxp-ohci
45              - ibm,476gtr-ohci
46              - ingenic,jz4740-ohci
47              - rockchip,rk3588-ohci
48              - snps,hsdk-v1.0-ohci
49          - const: generic-ohci
50      - enum:
51          - generic-ohci
52          - ti,ohci-omap3
53      - items:
54          - enum:
55              - cavium,octeon-6335-ohci
56              - nintendo,hollywood-usb-ohci
57              - nxp,ohci-nxp
58              - st,spear600-ohci
59          - const: usb-ohci
60
61  reg:
62    maxItems: 1
63
64  interrupts:
65    maxItems: 1
66
67  resets:
68    minItems: 1
69    maxItems: 2
70
71  clocks:
72    minItems: 1
73    maxItems: 4
74    description: |
75      In case the Renesas R-Car Gen3 SoCs:
76        - if a host only channel: first clock should be host.
77        - if a USB DRD channel: first clock should be host and second
78          one should be peripheral
79
80  power-domains:
81    maxItems: 1
82
83  big-endian:
84    $ref: /schemas/types.yaml#/definitions/flag
85    description:
86      Set this flag for HCDs with big endian descriptors and big
87      endian registers.
88
89  big-endian-desc:
90    $ref: /schemas/types.yaml#/definitions/flag
91    description:
92      Set this flag for HCDs with big endian descriptors.
93
94  big-endian-regs:
95    $ref: /schemas/types.yaml#/definitions/flag
96    description:
97      Set this flag for HCDs with big endian registers.
98
99  remote-wakeup-connected:
100    $ref: /schemas/types.yaml#/definitions/flag
101    description:
102      Remote wakeup is wired on the platform.
103
104  no-big-frame-no:
105    $ref: /schemas/types.yaml#/definitions/flag
106    description:
107      Set if frame_no lives in bits [15:0] of HCCA
108
109  num-ports:
110    $ref: /schemas/types.yaml#/definitions/uint32
111    description:
112      Overrides the detected port count
113
114  phys:
115    minItems: 1
116    maxItems: 3
117
118  phy-names:
119    const: usb
120
121  iommus:
122    maxItems: 1
123
124  dr_mode:
125    enum:
126      - host
127      - otg
128
129  transceiver:
130    $ref: /schemas/types.yaml#/definitions/phandle
131    description:
132      The associated ISP1301 device. Necessary for the UDC controller for
133      connecting to the USB physical layer.
134
135required:
136  - compatible
137  - reg
138  - interrupts
139
140allOf:
141  - $ref: usb-hcd.yaml
142  - if:
143      not:
144        properties:
145          compatible:
146            contains:
147              const: nxp,ohci-nxp
148    then:
149      properties:
150        transceiver: false
151  - if:
152      properties:
153        compatible:
154          contains:
155            const: rockchip,rk3588-ohci
156    then:
157      properties:
158        clocks:
159          minItems: 4
160    else:
161      properties:
162        clocks:
163          minItems: 1
164          maxItems: 3
165
166unevaluatedProperties: false
167
168examples:
169  - |
170      ohci0: usb@1c14400 {
171          compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
172          reg = <0x01c14400 0x100>;
173          interrupts = <64>;
174          clocks = <&usb_clk 6>, <&ahb_gates 2>;
175          phys = <&usbphy 1>;
176          phy-names = "usb";
177      };
178
179...
180