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