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
7c66ec88fSEmmanuel Vadottitle: DesignWare HS OTG USB 2.0 controller Bindings
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Rob Herring <robh@kernel.org>
11c66ec88fSEmmanuel Vadot
128cc087a1SEmmanuel VadotallOf:
138cc087a1SEmmanuel Vadot  - $ref: usb-drd.yaml#
148cc087a1SEmmanuel Vadot
15c66ec88fSEmmanuel Vadotproperties:
16c66ec88fSEmmanuel Vadot  compatible:
17c66ec88fSEmmanuel Vadot    oneOf:
18c66ec88fSEmmanuel Vadot      - const: brcm,bcm2835-usb
19c66ec88fSEmmanuel Vadot      - const: hisilicon,hi6220-usb
20c66ec88fSEmmanuel Vadot      - items:
21c66ec88fSEmmanuel Vadot          - const: rockchip,rk3066-usb
22c66ec88fSEmmanuel Vadot          - const: snps,dwc2
23c66ec88fSEmmanuel Vadot      - items:
24c66ec88fSEmmanuel Vadot          - enum:
25c66ec88fSEmmanuel Vadot              - rockchip,px30-usb
26c66ec88fSEmmanuel Vadot              - rockchip,rk3036-usb
27c66ec88fSEmmanuel Vadot              - rockchip,rk3188-usb
28c66ec88fSEmmanuel Vadot              - rockchip,rk3228-usb
29c66ec88fSEmmanuel Vadot              - rockchip,rk3288-usb
305956d97fSEmmanuel Vadot              - rockchip,rk3308-usb
31c66ec88fSEmmanuel Vadot              - rockchip,rk3328-usb
32c66ec88fSEmmanuel Vadot              - rockchip,rk3368-usb
33c66ec88fSEmmanuel Vadot              - rockchip,rv1108-usb
34c66ec88fSEmmanuel Vadot          - const: rockchip,rk3066-usb
35c66ec88fSEmmanuel Vadot          - const: snps,dwc2
36c66ec88fSEmmanuel Vadot      - const: lantiq,arx100-usb
37c66ec88fSEmmanuel Vadot      - const: lantiq,xrx200-usb
38c66ec88fSEmmanuel Vadot      - items:
39c66ec88fSEmmanuel Vadot          - enum:
40c66ec88fSEmmanuel Vadot              - amlogic,meson8-usb
41c66ec88fSEmmanuel Vadot              - amlogic,meson8b-usb
42c66ec88fSEmmanuel Vadot              - amlogic,meson-gxbb-usb
43c66ec88fSEmmanuel Vadot              - amlogic,meson-g12a-usb
44*c9ccf3a3SEmmanuel Vadot              - intel,socfpga-agilex-hsotg
45c66ec88fSEmmanuel Vadot          - const: snps,dwc2
46c66ec88fSEmmanuel Vadot      - const: amcc,dwc-otg
476be33864SEmmanuel Vadot      - const: apm,apm82181-dwc-otg
48c66ec88fSEmmanuel Vadot      - const: snps,dwc2
49c66ec88fSEmmanuel Vadot      - const: st,stm32f4x9-fsotg
50c66ec88fSEmmanuel Vadot      - const: st,stm32f4x9-hsotg
51c66ec88fSEmmanuel Vadot      - const: st,stm32f7-hsotg
52c66ec88fSEmmanuel Vadot      - const: st,stm32mp15-fsotg
53c66ec88fSEmmanuel Vadot      - items:
54c66ec88fSEmmanuel Vadot          - const: st,stm32mp15-hsotg
55c66ec88fSEmmanuel Vadot          - const: snps,dwc2
56c66ec88fSEmmanuel Vadot      - const: samsung,s3c6400-hsotg
57e67e8565SEmmanuel Vadot      - const: intel,socfpga-agilex-hsotg
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot  reg:
60c66ec88fSEmmanuel Vadot    maxItems: 1
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot  interrupts:
63c66ec88fSEmmanuel Vadot    maxItems: 1
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot  clocks:
66c66ec88fSEmmanuel Vadot    maxItems: 1
67c66ec88fSEmmanuel Vadot
68c66ec88fSEmmanuel Vadot  clock-names:
69c66ec88fSEmmanuel Vadot    items:
70c66ec88fSEmmanuel Vadot      - const: otg
71c66ec88fSEmmanuel Vadot
72*c9ccf3a3SEmmanuel Vadot  disable-over-current:
73*c9ccf3a3SEmmanuel Vadot    type: boolean
74*c9ccf3a3SEmmanuel Vadot    description: whether to disable detection of over-current condition.
75*c9ccf3a3SEmmanuel Vadot
76*c9ccf3a3SEmmanuel Vadot  iommus:
77*c9ccf3a3SEmmanuel Vadot    maxItems: 1
78*c9ccf3a3SEmmanuel Vadot
79c66ec88fSEmmanuel Vadot  resets:
80c66ec88fSEmmanuel Vadot    items:
81c66ec88fSEmmanuel Vadot      - description: common reset
82c66ec88fSEmmanuel Vadot      - description: ecc reset
83c66ec88fSEmmanuel Vadot    minItems: 1
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot  reset-names:
86c66ec88fSEmmanuel Vadot    items:
87c66ec88fSEmmanuel Vadot      - const: dwc2
88c66ec88fSEmmanuel Vadot      - const: dwc2-ecc
89c66ec88fSEmmanuel Vadot    minItems: 1
90c66ec88fSEmmanuel Vadot
91c66ec88fSEmmanuel Vadot  phys:
92c66ec88fSEmmanuel Vadot    maxItems: 1
93c66ec88fSEmmanuel Vadot
94c66ec88fSEmmanuel Vadot  phy-names:
95c66ec88fSEmmanuel Vadot    const: usb2-phy
96c66ec88fSEmmanuel Vadot
97c66ec88fSEmmanuel Vadot  power-domains:
98c66ec88fSEmmanuel Vadot    maxItems: 1
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot  vbus-supply:
101c66ec88fSEmmanuel Vadot    description: reference to the VBUS regulator. Depending on the current mode
102c66ec88fSEmmanuel Vadot      this is enabled (in "host" mode") or disabled (in "peripheral" mode). The
103c66ec88fSEmmanuel Vadot      regulator is updated if the controller is configured in "otg" mode and the
104c66ec88fSEmmanuel Vadot      status changes between "host" and "peripheral".
105c66ec88fSEmmanuel Vadot
106c66ec88fSEmmanuel Vadot  vusb_d-supply:
107c66ec88fSEmmanuel Vadot    description: phandle to voltage regulator of digital section,
108c66ec88fSEmmanuel Vadot
109c66ec88fSEmmanuel Vadot  vusb_a-supply:
110c66ec88fSEmmanuel Vadot    description: phandle to voltage regulator of analog section.
111c66ec88fSEmmanuel Vadot
112c66ec88fSEmmanuel Vadot  usb33d-supply:
113c66ec88fSEmmanuel Vadot    description: reference to the VBUS and ID sensing comparators supply, in
114c66ec88fSEmmanuel Vadot      order to perform OTG operation, used on STM32MP15 SoCs.
115c66ec88fSEmmanuel Vadot
1168cc087a1SEmmanuel Vadot  dr_mode: true
117c66ec88fSEmmanuel Vadot
1188cc087a1SEmmanuel Vadot  otg-rev: true
1198cc087a1SEmmanuel Vadot
1208cc087a1SEmmanuel Vadot  hnp-disable: true
1218cc087a1SEmmanuel Vadot
1228cc087a1SEmmanuel Vadot  srp-disable: true
1238cc087a1SEmmanuel Vadot
1248cc087a1SEmmanuel Vadot  usb-role-switch: true
1256be33864SEmmanuel Vadot
126e67e8565SEmmanuel Vadot  role-switch-default-mode: true
127e67e8565SEmmanuel Vadot
128c66ec88fSEmmanuel Vadot  g-rx-fifo-size:
129c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
130c66ec88fSEmmanuel Vadot    description: size of rx fifo size in gadget mode.
131c66ec88fSEmmanuel Vadot
132c66ec88fSEmmanuel Vadot  g-np-tx-fifo-size:
133c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
134c66ec88fSEmmanuel Vadot    description: size of non-periodic tx fifo size in gadget mode.
135c66ec88fSEmmanuel Vadot
136c66ec88fSEmmanuel Vadot  g-tx-fifo-size:
137c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
138c66ec88fSEmmanuel Vadot    description: size of periodic tx fifo per endpoint (except ep0) in gadget mode.
139c66ec88fSEmmanuel Vadot
140c66ec88fSEmmanuel Vadot  snps,need-phy-for-wake:
141c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
142c66ec88fSEmmanuel Vadot    description: If present indicates that the phy needs to be left on for
143c66ec88fSEmmanuel Vadot      remote wakeup during suspend.
144c66ec88fSEmmanuel Vadot
145c66ec88fSEmmanuel Vadot  snps,reset-phy-on-wake:
146c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
147c66ec88fSEmmanuel Vadot    description: If present indicates that we need to reset the PHY when we
148c66ec88fSEmmanuel Vadot      detect a wakeup. This is due to a hardware errata.
149c66ec88fSEmmanuel Vadot
150e67e8565SEmmanuel Vadot  port:
151e67e8565SEmmanuel Vadot    description:
152e67e8565SEmmanuel Vadot      Any connector to the data bus of this controller should be modelled
153e67e8565SEmmanuel Vadot      using the OF graph bindings specified, if the "usb-role-switch"
154e67e8565SEmmanuel Vadot      property is used.
155e67e8565SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/port
156e67e8565SEmmanuel Vadot
157e67e8565SEmmanuel Vadotdependencies:
158e67e8565SEmmanuel Vadot  port: [ usb-role-switch ]
159e67e8565SEmmanuel Vadot  role-switch-default-mode: [ usb-role-switch ]
160e67e8565SEmmanuel Vadot
161c66ec88fSEmmanuel Vadotrequired:
162c66ec88fSEmmanuel Vadot  - compatible
163c66ec88fSEmmanuel Vadot  - reg
164c66ec88fSEmmanuel Vadot  - interrupts
165c66ec88fSEmmanuel Vadot  - clocks
166c66ec88fSEmmanuel Vadot  - clock-names
167c66ec88fSEmmanuel Vadot
168c66ec88fSEmmanuel VadotadditionalProperties: false
169c66ec88fSEmmanuel Vadot
170c66ec88fSEmmanuel Vadotexamples:
171c66ec88fSEmmanuel Vadot  - |
172c66ec88fSEmmanuel Vadot      usb@101c0000 {
173c66ec88fSEmmanuel Vadot        compatible = "rockchip,rk3066-usb", "snps,dwc2";
174c66ec88fSEmmanuel Vadot        reg = <0x10180000 0x40000>;
175c66ec88fSEmmanuel Vadot        interrupts = <18>;
176c66ec88fSEmmanuel Vadot        clocks = <&usb_otg_ahb_clk>;
177c66ec88fSEmmanuel Vadot        clock-names = "otg";
178c66ec88fSEmmanuel Vadot        phys = <&usbphy>;
179c66ec88fSEmmanuel Vadot        phy-names = "usb2-phy";
180c66ec88fSEmmanuel Vadot      };
181c66ec88fSEmmanuel Vadot
182c66ec88fSEmmanuel Vadot...
183