1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/ti,keystone-dwc3.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: TI Keystone Soc USB Controller
8
9maintainers:
10  - Roger Quadros <rogerq@kernel.org>
11
12properties:
13  compatible:
14    items:
15      - enum:
16          - ti,keystone-dwc3
17          - ti,am654-dwc3
18
19  reg:
20    maxItems: 1
21
22  '#address-cells':
23    const: 1
24
25  '#size-cells':
26    const: 1
27
28  ranges: true
29
30  interrupts:
31    maxItems: 1
32
33  clocks:
34    minItems: 1
35    maxItems: 2
36
37  power-domains:
38    maxItems: 1
39    description: Should contain a phandle to a PM domain provider node
40      and an args specifier containing the USB device id
41      value. This property is as per the binding,
42      Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
43
44  phys:
45    maxItems: 1
46    description:
47      PHY specifier for the USB3.0 PHY. Some SoCs need the USB3.0 PHY
48      to be turned on before the controller.
49      Documentation/devicetree/bindings/phy/phy-bindings.txt
50
51  phy-names:
52    items:
53      - const: usb3-phy
54
55  dma-coherent: true
56
57  dma-ranges: true
58
59patternProperties:
60  "usb@[a-f0-9]+$":
61    $ref: snps,dwc3.yaml#
62
63required:
64  - compatible
65  - reg
66  - "#address-cells"
67  - "#size-cells"
68  - ranges
69  - interrupts
70
71additionalProperties: false
72
73examples:
74  - |
75    #include <dt-bindings/interrupt-controller/arm-gic.h>
76
77    dwc3@2680000 {
78      compatible = "ti,keystone-dwc3";
79      #address-cells = <1>;
80      #size-cells = <1>;
81      reg = <0x2680000 0x10000>;
82      clocks = <&clkusb>;
83      interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;
84      ranges;
85
86      usb@2690000 {
87        compatible = "snps,dwc3";
88        reg = <0x2690000 0x70000>;
89        interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;
90        usb-phy = <&usb_phy>, <&usb_phy>;
91      };
92    };
93