1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/phy/samsung,usb3-drd-phy.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung Exynos SoC USB 3.0 DRD PHY USB 2.0 PHY
8
9maintainers:
10  - Krzysztof Kozlowski <krzk@kernel.org>
11  - Marek Szyprowski <m.szyprowski@samsung.com>
12  - Sylwester Nawrocki <s.nawrocki@samsung.com>
13
14description: |
15  For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
16  compatible PHYs, the second cell in the PHY specifier identifies the
17  PHY id, which is interpreted as follows::
18    0 - UTMI+ type phy,
19    1 - PIPE3 type phy.
20
21  For SoCs like Exynos5420 having multiple USB 3.0 DRD PHY controllers,
22  'usbdrd_phy' nodes should have numbered alias in the aliases node, in the
23  form of usbdrdphyN, N = 0, 1... (depending on number of controllers).
24
25properties:
26  compatible:
27    enum:
28      - samsung,exynos5250-usbdrd-phy
29      - samsung,exynos5420-usbdrd-phy
30      - samsung,exynos5433-usbdrd-phy
31      - samsung,exynos7-usbdrd-phy
32
33  clocks:
34    minItems: 2
35    maxItems: 5
36
37  clock-names:
38    minItems: 2
39    maxItems: 5
40    description: |
41      At least two clocks::
42        - Main PHY clock (same as USB DRD controller i.e. DWC3 IP clock), used
43          for register access.
44        - PHY reference clock (usually crystal clock), used for PHY operations,
45          associated by phy name. It is used to determine bit values for clock
46          settings register.  For Exynos5420 this is given as 'sclk_usbphy30'
47          in the CMU.
48
49  "#phy-cells":
50    const: 1
51
52  port:
53    $ref: /schemas/graph.yaml#/properties/port
54    description:
55      Any connector to the data bus of this controller should be modelled using
56      the OF graph bindings specified.
57
58  reg:
59    maxItems: 1
60
61  samsung,pmu-syscon:
62    $ref: /schemas/types.yaml#/definitions/phandle
63    description:
64      Phandle to PMU system controller interface.
65
66  vbus-supply:
67    description:
68      VBUS power source.
69
70  vbus-boost-supply:
71    description:
72      VBUS Boost 5V power source.
73
74required:
75  - compatible
76  - clocks
77  - clock-names
78  - "#phy-cells"
79  - reg
80  - samsung,pmu-syscon
81
82allOf:
83  - if:
84      properties:
85        compatible:
86          contains:
87            enum:
88              - samsung,exynos5433-usbdrd-phy
89              - samsung,exynos7-usbdrd-phy
90    then:
91      properties:
92        clocks:
93          minItems: 5
94          maxItems: 5
95        clock-names:
96          items:
97            - const: phy
98            - const: ref
99            - const: phy_utmi
100            - const: phy_pipe
101            - const: itp
102    else:
103      properties:
104        clocks:
105          minItems: 2
106          maxItems: 2
107        clock-names:
108          items:
109            - const: phy
110            - const: ref
111
112additionalProperties: false
113
114examples:
115  - |
116    #include <dt-bindings/clock/exynos5420.h>
117
118    phy@12100000 {
119        compatible = "samsung,exynos5420-usbdrd-phy";
120        reg = <0x12100000 0x100>;
121        #phy-cells = <1>;
122        clocks = <&clock CLK_USBD300>, <&clock CLK_SCLK_USBPHY300>;
123        clock-names = "phy", "ref";
124        samsung,pmu-syscon = <&pmu_system_controller>;
125        vbus-supply = <&usb300_vbus_reg>;
126    };
127