1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/usb/dwc2.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: DesignWare HS OTG USB 2.0 controller
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Rob Herring <robh@kernel.org>
11c66ec88fSEmmanuel Vadot
128cc087a1SEmmanuel VadotallOf:
138cc087a1SEmmanuel Vadot  - $ref: usb-drd.yaml#
14b97ee269SEmmanuel Vadot  - $ref: usb-hcd.yaml#
158cc087a1SEmmanuel Vadot
16c66ec88fSEmmanuel Vadotproperties:
17c66ec88fSEmmanuel Vadot  compatible:
18c66ec88fSEmmanuel Vadot    oneOf:
19c66ec88fSEmmanuel Vadot      - const: brcm,bcm2835-usb
20c66ec88fSEmmanuel Vadot      - const: hisilicon,hi6220-usb
21d5b0e70fSEmmanuel Vadot      - const: ingenic,jz4775-otg
22d5b0e70fSEmmanuel Vadot      - const: ingenic,jz4780-otg
23d5b0e70fSEmmanuel Vadot      - const: ingenic,x1000-otg
24d5b0e70fSEmmanuel Vadot      - const: ingenic,x1600-otg
25d5b0e70fSEmmanuel Vadot      - const: ingenic,x1700-otg
26d5b0e70fSEmmanuel Vadot      - const: ingenic,x1830-otg
27d5b0e70fSEmmanuel Vadot      - const: ingenic,x2000-otg
28c66ec88fSEmmanuel Vadot      - items:
29c66ec88fSEmmanuel Vadot          - const: rockchip,rk3066-usb
30c66ec88fSEmmanuel Vadot          - const: snps,dwc2
31c66ec88fSEmmanuel Vadot      - items:
32c66ec88fSEmmanuel Vadot          - enum:
33c66ec88fSEmmanuel Vadot              - rockchip,px30-usb
34c66ec88fSEmmanuel Vadot              - rockchip,rk3036-usb
357ef62cebSEmmanuel Vadot              - rockchip,rk3128-usb
36c66ec88fSEmmanuel Vadot              - rockchip,rk3188-usb
37c66ec88fSEmmanuel Vadot              - rockchip,rk3228-usb
38c66ec88fSEmmanuel Vadot              - rockchip,rk3288-usb
395956d97fSEmmanuel Vadot              - rockchip,rk3308-usb
40c66ec88fSEmmanuel Vadot              - rockchip,rk3328-usb
41c66ec88fSEmmanuel Vadot              - rockchip,rk3368-usb
42c66ec88fSEmmanuel Vadot              - rockchip,rv1108-usb
43c66ec88fSEmmanuel Vadot          - const: rockchip,rk3066-usb
44c66ec88fSEmmanuel Vadot          - const: snps,dwc2
45c66ec88fSEmmanuel Vadot      - const: lantiq,arx100-usb
468bab661aSEmmanuel Vadot      - const: lantiq,ase-usb
478bab661aSEmmanuel Vadot      - const: lantiq,danube-usb
48c66ec88fSEmmanuel Vadot      - const: lantiq,xrx200-usb
498bab661aSEmmanuel Vadot      - const: lantiq,xrx300-usb
50c66ec88fSEmmanuel Vadot      - items:
51c66ec88fSEmmanuel Vadot          - enum:
52c66ec88fSEmmanuel Vadot              - amlogic,meson8-usb
53c66ec88fSEmmanuel Vadot              - amlogic,meson8b-usb
54c66ec88fSEmmanuel Vadot              - amlogic,meson-gxbb-usb
55c66ec88fSEmmanuel Vadot              - amlogic,meson-g12a-usb
56*f126890aSEmmanuel Vadot              - amlogic,meson-a1-usb
57c9ccf3a3SEmmanuel Vadot              - intel,socfpga-agilex-hsotg
58c66ec88fSEmmanuel Vadot          - const: snps,dwc2
59c66ec88fSEmmanuel Vadot      - const: amcc,dwc-otg
606be33864SEmmanuel Vadot      - const: apm,apm82181-dwc-otg
61c66ec88fSEmmanuel Vadot      - const: snps,dwc2
62c66ec88fSEmmanuel Vadot      - const: st,stm32f4x9-fsotg
63c66ec88fSEmmanuel Vadot      - const: st,stm32f4x9-hsotg
64c66ec88fSEmmanuel Vadot      - const: st,stm32f7-hsotg
65c66ec88fSEmmanuel Vadot      - const: st,stm32mp15-fsotg
66c66ec88fSEmmanuel Vadot      - items:
67c66ec88fSEmmanuel Vadot          - const: st,stm32mp15-hsotg
68c66ec88fSEmmanuel Vadot          - const: snps,dwc2
69c66ec88fSEmmanuel Vadot      - const: samsung,s3c6400-hsotg
70e67e8565SEmmanuel Vadot      - const: intel,socfpga-agilex-hsotg
71c66ec88fSEmmanuel Vadot
72c66ec88fSEmmanuel Vadot  reg:
73c66ec88fSEmmanuel Vadot    maxItems: 1
74c66ec88fSEmmanuel Vadot
75c66ec88fSEmmanuel Vadot  interrupts:
76c66ec88fSEmmanuel Vadot    maxItems: 1
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot  clocks:
79fac71e4eSEmmanuel Vadot    minItems: 1
80fac71e4eSEmmanuel Vadot    maxItems: 2
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot  clock-names:
83c66ec88fSEmmanuel Vadot    items:
84c66ec88fSEmmanuel Vadot      - const: otg
85fac71e4eSEmmanuel Vadot      - const: utmi
86fac71e4eSEmmanuel Vadot    minItems: 1
87c66ec88fSEmmanuel Vadot
88c9ccf3a3SEmmanuel Vadot  disable-over-current:
89c9ccf3a3SEmmanuel Vadot    type: boolean
90c9ccf3a3SEmmanuel Vadot    description: whether to disable detection of over-current condition.
91c9ccf3a3SEmmanuel Vadot
92c9ccf3a3SEmmanuel Vadot  iommus:
93c9ccf3a3SEmmanuel Vadot    maxItems: 1
94c9ccf3a3SEmmanuel Vadot
95c66ec88fSEmmanuel Vadot  resets:
96c66ec88fSEmmanuel Vadot    items:
97c66ec88fSEmmanuel Vadot      - description: common reset
98c66ec88fSEmmanuel Vadot      - description: ecc reset
99c66ec88fSEmmanuel Vadot    minItems: 1
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot  reset-names:
102c66ec88fSEmmanuel Vadot    items:
103c66ec88fSEmmanuel Vadot      - const: dwc2
104c66ec88fSEmmanuel Vadot      - const: dwc2-ecc
105c66ec88fSEmmanuel Vadot    minItems: 1
106c66ec88fSEmmanuel Vadot
107c66ec88fSEmmanuel Vadot  phys:
108c66ec88fSEmmanuel Vadot    maxItems: 1
109c66ec88fSEmmanuel Vadot
110c66ec88fSEmmanuel Vadot  phy-names:
111c66ec88fSEmmanuel Vadot    const: usb2-phy
112c66ec88fSEmmanuel Vadot
113c66ec88fSEmmanuel Vadot  power-domains:
114c66ec88fSEmmanuel Vadot    maxItems: 1
115c66ec88fSEmmanuel Vadot
116c66ec88fSEmmanuel Vadot  vbus-supply:
117c66ec88fSEmmanuel Vadot    description: reference to the VBUS regulator. Depending on the current mode
118c66ec88fSEmmanuel Vadot      this is enabled (in "host" mode") or disabled (in "peripheral" mode). The
119c66ec88fSEmmanuel Vadot      regulator is updated if the controller is configured in "otg" mode and the
120c66ec88fSEmmanuel Vadot      status changes between "host" and "peripheral".
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadot  vusb_d-supply:
123c66ec88fSEmmanuel Vadot    description: phandle to voltage regulator of digital section,
124c66ec88fSEmmanuel Vadot
125c66ec88fSEmmanuel Vadot  vusb_a-supply:
126c66ec88fSEmmanuel Vadot    description: phandle to voltage regulator of analog section.
127c66ec88fSEmmanuel Vadot
128c66ec88fSEmmanuel Vadot  usb33d-supply:
129c66ec88fSEmmanuel Vadot    description: reference to the VBUS and ID sensing comparators supply, in
130c66ec88fSEmmanuel Vadot      order to perform OTG operation, used on STM32MP15 SoCs.
131c66ec88fSEmmanuel Vadot
1328cc087a1SEmmanuel Vadot  dr_mode: true
133c66ec88fSEmmanuel Vadot
1348cc087a1SEmmanuel Vadot  otg-rev: true
1358cc087a1SEmmanuel Vadot
1368cc087a1SEmmanuel Vadot  hnp-disable: true
1378cc087a1SEmmanuel Vadot
1388cc087a1SEmmanuel Vadot  srp-disable: true
1398cc087a1SEmmanuel Vadot
1408cc087a1SEmmanuel Vadot  usb-role-switch: true
1416be33864SEmmanuel Vadot
142e67e8565SEmmanuel Vadot  role-switch-default-mode: true
143e67e8565SEmmanuel Vadot
144c66ec88fSEmmanuel Vadot  g-rx-fifo-size:
145c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
146c66ec88fSEmmanuel Vadot    description: size of rx fifo size in gadget mode.
147c66ec88fSEmmanuel Vadot
148c66ec88fSEmmanuel Vadot  g-np-tx-fifo-size:
149c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
150c66ec88fSEmmanuel Vadot    description: size of non-periodic tx fifo size in gadget mode.
151c66ec88fSEmmanuel Vadot
152c66ec88fSEmmanuel Vadot  g-tx-fifo-size:
153c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
154c66ec88fSEmmanuel Vadot    description: size of periodic tx fifo per endpoint (except ep0) in gadget mode.
155c66ec88fSEmmanuel Vadot
156c66ec88fSEmmanuel Vadot  snps,need-phy-for-wake:
157c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
158c66ec88fSEmmanuel Vadot    description: If present indicates that the phy needs to be left on for
159c66ec88fSEmmanuel Vadot      remote wakeup during suspend.
160c66ec88fSEmmanuel Vadot
161c66ec88fSEmmanuel Vadot  snps,reset-phy-on-wake:
162c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
163c66ec88fSEmmanuel Vadot    description: If present indicates that we need to reset the PHY when we
164c66ec88fSEmmanuel Vadot      detect a wakeup. This is due to a hardware errata.
165c66ec88fSEmmanuel Vadot
166e67e8565SEmmanuel Vadot  port:
167e67e8565SEmmanuel Vadot    description:
168e67e8565SEmmanuel Vadot      Any connector to the data bus of this controller should be modelled
169e67e8565SEmmanuel Vadot      using the OF graph bindings specified, if the "usb-role-switch"
170e67e8565SEmmanuel Vadot      property is used.
171e67e8565SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/port
172e67e8565SEmmanuel Vadot
173b97ee269SEmmanuel Vadot  tpl-support: true
174b97ee269SEmmanuel Vadot
175e67e8565SEmmanuel Vadotdependencies:
176e67e8565SEmmanuel Vadot  port: [ usb-role-switch ]
177e67e8565SEmmanuel Vadot  role-switch-default-mode: [ usb-role-switch ]
178e67e8565SEmmanuel Vadot
179c66ec88fSEmmanuel Vadotrequired:
180c66ec88fSEmmanuel Vadot  - compatible
181c66ec88fSEmmanuel Vadot  - reg
182c66ec88fSEmmanuel Vadot  - interrupts
183c66ec88fSEmmanuel Vadot  - clocks
184c66ec88fSEmmanuel Vadot  - clock-names
185c66ec88fSEmmanuel Vadot
186c66ec88fSEmmanuel VadotadditionalProperties: false
187c66ec88fSEmmanuel Vadot
188c66ec88fSEmmanuel Vadotexamples:
189c66ec88fSEmmanuel Vadot  - |
190c66ec88fSEmmanuel Vadot      usb@101c0000 {
191c66ec88fSEmmanuel Vadot        compatible = "rockchip,rk3066-usb", "snps,dwc2";
192c66ec88fSEmmanuel Vadot        reg = <0x10180000 0x40000>;
193c66ec88fSEmmanuel Vadot        interrupts = <18>;
194c66ec88fSEmmanuel Vadot        clocks = <&usb_otg_ahb_clk>;
195c66ec88fSEmmanuel Vadot        clock-names = "otg";
196c66ec88fSEmmanuel Vadot        phys = <&usbphy>;
197c66ec88fSEmmanuel Vadot        phy-names = "usb2-phy";
198c66ec88fSEmmanuel Vadot      };
199c66ec88fSEmmanuel Vadot
200c66ec88fSEmmanuel Vadot...
201