xref: /linux/Documentation/devicetree/bindings/usb/ti,dwc3.yaml (revision 99ef60d119f3b2621067dd5fc1ea4a37360709e4)
1*ca47d656SCharan Pedumuru# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ca47d656SCharan Pedumuru%YAML 1.2
3*ca47d656SCharan Pedumuru---
4*ca47d656SCharan Pedumuru$id: http://devicetree.org/schemas/usb/ti,dwc3.yaml#
5*ca47d656SCharan Pedumuru$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ca47d656SCharan Pedumuru
7*ca47d656SCharan Pedumurutitle: Texas Instruments OMAP DWC3 USB Glue Layer
8*ca47d656SCharan Pedumuru
9*ca47d656SCharan Pedumurumaintainers:
10*ca47d656SCharan Pedumuru  - Felipe Balbi <balbi@ti.com>
11*ca47d656SCharan Pedumuru
12*ca47d656SCharan Pedumurudescription:
13*ca47d656SCharan Pedumuru  Texas Instruments glue layer for Synopsys DesignWare USB3 (DWC3)
14*ca47d656SCharan Pedumuru  controller on OMAP and AM43xx SoCs. Manages SoC-specific integration
15*ca47d656SCharan Pedumuru  including register mapping, interrupt routing, UTMI/PIPE interface mode
16*ca47d656SCharan Pedumuru  selection (HW/SW), and child DWC3 core instantiation via address space
17*ca47d656SCharan Pedumuru  translation. Supports both legacy single-instance and multi-instance
18*ca47d656SCharan Pedumuru  (numbered) configurations.
19*ca47d656SCharan Pedumuru
20*ca47d656SCharan Pedumuruproperties:
21*ca47d656SCharan Pedumuru  compatible:
22*ca47d656SCharan Pedumuru    enum:
23*ca47d656SCharan Pedumuru      - ti,dwc3
24*ca47d656SCharan Pedumuru      - ti,am437x-dwc3
25*ca47d656SCharan Pedumuru
26*ca47d656SCharan Pedumuru  reg:
27*ca47d656SCharan Pedumuru    maxItems: 1
28*ca47d656SCharan Pedumuru
29*ca47d656SCharan Pedumuru  interrupts:
30*ca47d656SCharan Pedumuru    maxItems: 1
31*ca47d656SCharan Pedumuru
32*ca47d656SCharan Pedumuru  utmi-mode:
33*ca47d656SCharan Pedumuru    $ref: /schemas/types.yaml#/definitions/uint32
34*ca47d656SCharan Pedumuru    description:
35*ca47d656SCharan Pedumuru      Controls the source of UTMI/PIPE status for VBUS and OTG ID.
36*ca47d656SCharan Pedumuru      1 for HW mode, 2 for SW mode.
37*ca47d656SCharan Pedumuru    enum: [1, 2]
38*ca47d656SCharan Pedumuru
39*ca47d656SCharan Pedumuru  "#address-cells":
40*ca47d656SCharan Pedumuru    const: 1
41*ca47d656SCharan Pedumuru
42*ca47d656SCharan Pedumuru  "#size-cells":
43*ca47d656SCharan Pedumuru    const: 1
44*ca47d656SCharan Pedumuru
45*ca47d656SCharan Pedumuru  ranges: true
46*ca47d656SCharan Pedumuru
47*ca47d656SCharan Pedumuru  extcon:
48*ca47d656SCharan Pedumuru    $ref: /schemas/types.yaml#/definitions/phandle
49*ca47d656SCharan Pedumuru    description:
50*ca47d656SCharan Pedumuru      Phandle for the extcon device used to detect connect/
51*ca47d656SCharan Pedumuru      disconnect events.
52*ca47d656SCharan Pedumuru
53*ca47d656SCharan Pedumuru  vbus-supply:
54*ca47d656SCharan Pedumuru    description: Phandle to the regulator device tree node if needed.
55*ca47d656SCharan Pedumuru
56*ca47d656SCharan PedumurupatternProperties:
57*ca47d656SCharan Pedumuru  "^usb@[0-9a-f]+$":
58*ca47d656SCharan Pedumuru    type: object
59*ca47d656SCharan Pedumuru    $ref: snps,dwc3.yaml#
60*ca47d656SCharan Pedumuru    unevaluatedProperties: false
61*ca47d656SCharan Pedumuru
62*ca47d656SCharan Pedumururequired:
63*ca47d656SCharan Pedumuru  - reg
64*ca47d656SCharan Pedumuru  - compatible
65*ca47d656SCharan Pedumuru  - interrupts
66*ca47d656SCharan Pedumuru  - "#address-cells"
67*ca47d656SCharan Pedumuru  - "#size-cells"
68*ca47d656SCharan Pedumuru  - utmi-mode
69*ca47d656SCharan Pedumuru  - ranges
70*ca47d656SCharan Pedumuru
71*ca47d656SCharan PedumuruunevaluatedProperties: false
72*ca47d656SCharan Pedumuru
73*ca47d656SCharan Pedumuruexamples:
74*ca47d656SCharan Pedumuru  - |
75*ca47d656SCharan Pedumuru    #include <dt-bindings/interrupt-controller/arm-gic.h>
76*ca47d656SCharan Pedumuru    omap_dwc3_1@0 {
77*ca47d656SCharan Pedumuru        compatible = "ti,dwc3";
78*ca47d656SCharan Pedumuru        reg = <0x0 0x10000>;
79*ca47d656SCharan Pedumuru        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
80*ca47d656SCharan Pedumuru        #address-cells = <1>;
81*ca47d656SCharan Pedumuru        #size-cells = <1>;
82*ca47d656SCharan Pedumuru        utmi-mode = <2>;
83*ca47d656SCharan Pedumuru        ranges = <0 0 0x20000>;
84*ca47d656SCharan Pedumuru
85*ca47d656SCharan Pedumuru        usb@10000 {
86*ca47d656SCharan Pedumuru            compatible = "snps,dwc3";
87*ca47d656SCharan Pedumuru            reg = <0x10000 0x17000>;
88*ca47d656SCharan Pedumuru            interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
89*ca47d656SCharan Pedumuru                         <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
90*ca47d656SCharan Pedumuru                         <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
91*ca47d656SCharan Pedumuru            interrupt-names = "peripheral", "host", "otg";
92*ca47d656SCharan Pedumuru            phys = <&usb2_phy1>, <&usb3_phy1>;
93*ca47d656SCharan Pedumuru            phy-names = "usb2-phy", "usb3-phy";
94*ca47d656SCharan Pedumuru            maximum-speed = "super-speed";
95*ca47d656SCharan Pedumuru            dr_mode = "otg";
96*ca47d656SCharan Pedumuru            snps,dis_u3_susphy_quirk;
97*ca47d656SCharan Pedumuru            snps,dis_u2_susphy_quirk;
98*ca47d656SCharan Pedumuru        };
99*ca47d656SCharan Pedumuru    };
100*ca47d656SCharan Pedumuru...
101