1c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c9ccf3a3SEmmanuel Vadot%YAML 1.2
3c9ccf3a3SEmmanuel Vadot---
4c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/usb/samsung,exynos-dwc3.yaml#
5c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c9ccf3a3SEmmanuel Vadot
7c9ccf3a3SEmmanuel Vadottitle: Samsung Exynos SoC USB 3.0 DWC3 Controller
8c9ccf3a3SEmmanuel Vadot
9c9ccf3a3SEmmanuel Vadotmaintainers:
10c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
11c9ccf3a3SEmmanuel Vadot
12c9ccf3a3SEmmanuel Vadotproperties:
13c9ccf3a3SEmmanuel Vadot  compatible:
14c9ccf3a3SEmmanuel Vadot    enum:
15c9ccf3a3SEmmanuel Vadot      - samsung,exynos5250-dwusb3
16c9ccf3a3SEmmanuel Vadot      - samsung,exynos5433-dwusb3
17c9ccf3a3SEmmanuel Vadot      - samsung,exynos7-dwusb3
18*aa1a8ff2SEmmanuel Vadot      - samsung,exynos850-dwusb3
19c9ccf3a3SEmmanuel Vadot
20c9ccf3a3SEmmanuel Vadot  '#address-cells':
21c9ccf3a3SEmmanuel Vadot    const: 1
22c9ccf3a3SEmmanuel Vadot
23c9ccf3a3SEmmanuel Vadot  clocks:
24c9ccf3a3SEmmanuel Vadot    minItems: 1
25c9ccf3a3SEmmanuel Vadot    maxItems: 4
26c9ccf3a3SEmmanuel Vadot
27c9ccf3a3SEmmanuel Vadot  clock-names:
28c9ccf3a3SEmmanuel Vadot    minItems: 1
29c9ccf3a3SEmmanuel Vadot    maxItems: 4
30c9ccf3a3SEmmanuel Vadot
31c9ccf3a3SEmmanuel Vadot  ranges: true
32c9ccf3a3SEmmanuel Vadot
33c9ccf3a3SEmmanuel Vadot  '#size-cells':
34c9ccf3a3SEmmanuel Vadot    const: 1
35c9ccf3a3SEmmanuel Vadot
36c9ccf3a3SEmmanuel Vadot  vdd10-supply:
37c9ccf3a3SEmmanuel Vadot    description: 1.0V power supply
38c9ccf3a3SEmmanuel Vadot
39c9ccf3a3SEmmanuel Vadot  vdd33-supply:
40c9ccf3a3SEmmanuel Vadot    description: 3.0V/3.3V power supply
41c9ccf3a3SEmmanuel Vadot
42c9ccf3a3SEmmanuel VadotpatternProperties:
43c9ccf3a3SEmmanuel Vadot  "^usb@[0-9a-f]+$":
44c9ccf3a3SEmmanuel Vadot    $ref: snps,dwc3.yaml#
45c9ccf3a3SEmmanuel Vadot    description: Required child node
46c9ccf3a3SEmmanuel Vadot
47c9ccf3a3SEmmanuel Vadotrequired:
48c9ccf3a3SEmmanuel Vadot  - compatible
49c9ccf3a3SEmmanuel Vadot  - '#address-cells'
50c9ccf3a3SEmmanuel Vadot  - clocks
51c9ccf3a3SEmmanuel Vadot  - clock-names
52c9ccf3a3SEmmanuel Vadot  - ranges
53c9ccf3a3SEmmanuel Vadot  - '#size-cells'
54c9ccf3a3SEmmanuel Vadot  - vdd10-supply
55c9ccf3a3SEmmanuel Vadot  - vdd33-supply
56c9ccf3a3SEmmanuel Vadot
57c9ccf3a3SEmmanuel VadotallOf:
58c9ccf3a3SEmmanuel Vadot  - if:
59c9ccf3a3SEmmanuel Vadot      properties:
60c9ccf3a3SEmmanuel Vadot        compatible:
61c9ccf3a3SEmmanuel Vadot          contains:
62c9ccf3a3SEmmanuel Vadot            const: samsung,exynos5250-dwusb3
63c9ccf3a3SEmmanuel Vadot    then:
64c9ccf3a3SEmmanuel Vadot      properties:
65c9ccf3a3SEmmanuel Vadot        clocks:
66c9ccf3a3SEmmanuel Vadot          minItems: 1
67c9ccf3a3SEmmanuel Vadot          maxItems: 1
68c9ccf3a3SEmmanuel Vadot        clock-names:
69c9ccf3a3SEmmanuel Vadot          items:
70c9ccf3a3SEmmanuel Vadot            - const: usbdrd30
71c9ccf3a3SEmmanuel Vadot
72c9ccf3a3SEmmanuel Vadot  - if:
73c9ccf3a3SEmmanuel Vadot      properties:
74c9ccf3a3SEmmanuel Vadot        compatible:
75c9ccf3a3SEmmanuel Vadot          contains:
76*aa1a8ff2SEmmanuel Vadot            const: samsung,exynos5433-dwusb3
77c9ccf3a3SEmmanuel Vadot    then:
78c9ccf3a3SEmmanuel Vadot      properties:
79c9ccf3a3SEmmanuel Vadot        clocks:
80c9ccf3a3SEmmanuel Vadot          minItems: 4
81c9ccf3a3SEmmanuel Vadot          maxItems: 4
82c9ccf3a3SEmmanuel Vadot        clock-names:
83c9ccf3a3SEmmanuel Vadot          items:
84c9ccf3a3SEmmanuel Vadot            - const: aclk
85c9ccf3a3SEmmanuel Vadot            - const: susp_clk
86c9ccf3a3SEmmanuel Vadot            - const: phyclk
87*aa1a8ff2SEmmanuel Vadot            - const: pipe_pclk
88c9ccf3a3SEmmanuel Vadot
89c9ccf3a3SEmmanuel Vadot  - if:
90c9ccf3a3SEmmanuel Vadot      properties:
91c9ccf3a3SEmmanuel Vadot        compatible:
92c9ccf3a3SEmmanuel Vadot          contains:
93c9ccf3a3SEmmanuel Vadot            const: samsung,exynos7-dwusb3
94c9ccf3a3SEmmanuel Vadot    then:
95c9ccf3a3SEmmanuel Vadot      properties:
96c9ccf3a3SEmmanuel Vadot        clocks:
97c9ccf3a3SEmmanuel Vadot          minItems: 3
98c9ccf3a3SEmmanuel Vadot          maxItems: 3
99c9ccf3a3SEmmanuel Vadot        clock-names:
100c9ccf3a3SEmmanuel Vadot          items:
101c9ccf3a3SEmmanuel Vadot            - const: usbdrd30
102c9ccf3a3SEmmanuel Vadot            - const: usbdrd30_susp_clk
103c9ccf3a3SEmmanuel Vadot            - const: usbdrd30_axius_clk
104c9ccf3a3SEmmanuel Vadot
105*aa1a8ff2SEmmanuel Vadot  - if:
106*aa1a8ff2SEmmanuel Vadot      properties:
107*aa1a8ff2SEmmanuel Vadot        compatible:
108*aa1a8ff2SEmmanuel Vadot          contains:
109*aa1a8ff2SEmmanuel Vadot            const: samsung,exynos850-dwusb3
110*aa1a8ff2SEmmanuel Vadot    then:
111*aa1a8ff2SEmmanuel Vadot      properties:
112*aa1a8ff2SEmmanuel Vadot        clocks:
113*aa1a8ff2SEmmanuel Vadot          minItems: 2
114*aa1a8ff2SEmmanuel Vadot          maxItems: 2
115*aa1a8ff2SEmmanuel Vadot        clock-names:
116*aa1a8ff2SEmmanuel Vadot          items:
117*aa1a8ff2SEmmanuel Vadot            - const: bus_early
118*aa1a8ff2SEmmanuel Vadot            - const: ref
119*aa1a8ff2SEmmanuel Vadot
120c9ccf3a3SEmmanuel VadotadditionalProperties: false
121c9ccf3a3SEmmanuel Vadot
122c9ccf3a3SEmmanuel Vadotexamples:
123c9ccf3a3SEmmanuel Vadot  - |
124c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/clock/exynos5420.h>
125c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
126c9ccf3a3SEmmanuel Vadot
127cb7aa33aSEmmanuel Vadot    usb@12000000 {
128c9ccf3a3SEmmanuel Vadot        compatible = "samsung,exynos5250-dwusb3";
129c9ccf3a3SEmmanuel Vadot        #address-cells = <1>;
130c9ccf3a3SEmmanuel Vadot        #size-cells = <1>;
131cb7aa33aSEmmanuel Vadot        ranges = <0x0 0x12000000 0x10000>;
132c9ccf3a3SEmmanuel Vadot        clocks = <&clock CLK_USBD300>;
133c9ccf3a3SEmmanuel Vadot        clock-names = "usbdrd30";
134c9ccf3a3SEmmanuel Vadot        vdd33-supply = <&ldo9_reg>;
135c9ccf3a3SEmmanuel Vadot        vdd10-supply = <&ldo11_reg>;
136c9ccf3a3SEmmanuel Vadot
137cb7aa33aSEmmanuel Vadot        usb@0 {
138c9ccf3a3SEmmanuel Vadot            compatible = "snps,dwc3";
139cb7aa33aSEmmanuel Vadot            reg = <0x0 0x10000>;
140c9ccf3a3SEmmanuel Vadot            interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
141c9ccf3a3SEmmanuel Vadot            phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
142c9ccf3a3SEmmanuel Vadot            phy-names = "usb2-phy", "usb3-phy";
143c9ccf3a3SEmmanuel Vadot            snps,dis_u3_susphy_quirk;
144c9ccf3a3SEmmanuel Vadot        };
145c9ccf3a3SEmmanuel Vadot    };
146