xref: /linux/Documentation/devicetree/bindings/phy/marvell,armada-cp110-utmi-phy.yaml (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1b8900c53SKonstantin Porotchkin# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2b8900c53SKonstantin Porotchkin
3b8900c53SKonstantin Porotchkin%YAML 1.2
4b8900c53SKonstantin Porotchkin---
5e43462c1SRob Herring$id: http://devicetree.org/schemas/phy/marvell,armada-cp110-utmi-phy.yaml#
6e43462c1SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
7b8900c53SKonstantin Porotchkin
8b8900c53SKonstantin Porotchkintitle: Marvell Armada CP110/CP115 UTMI PHY
9b8900c53SKonstantin Porotchkin
10b8900c53SKonstantin Porotchkinmaintainers:
11b8900c53SKonstantin Porotchkin  - Konstantin Porotchkin <kostap@marvell.com>
12b8900c53SKonstantin Porotchkin
13b8900c53SKonstantin Porotchkindescription:
14b8900c53SKonstantin Porotchkin  On Armada 7k/8k and CN913x, there are two host and one device USB controllers.
15b8900c53SKonstantin Porotchkin  Each of two exiting UTMI PHYs could be connected to either USB host or USB device
16b8900c53SKonstantin Porotchkin  controller.
17b8900c53SKonstantin Porotchkin  The USB device controller can only be connected to a single UTMI PHY port
18b8900c53SKonstantin Porotchkin                      0.H----- USB HOST0
19b8900c53SKonstantin Porotchkin  UTMI PHY0  --------/
20b8900c53SKonstantin Porotchkin                      0.D-----0
21b8900c53SKonstantin Porotchkin                               \------ USB DEVICE
22b8900c53SKonstantin Porotchkin                      1.D-----1
23b8900c53SKonstantin Porotchkin  UTMI PHY1  --------\
24b8900c53SKonstantin Porotchkin                      1.H----- USB HOST1
25b8900c53SKonstantin Porotchkin
26b8900c53SKonstantin Porotchkinproperties:
27b8900c53SKonstantin Porotchkin  compatible:
28b8900c53SKonstantin Porotchkin    const: marvell,cp110-utmi-phy
29b8900c53SKonstantin Porotchkin
30b8900c53SKonstantin Porotchkin  reg:
31b8900c53SKonstantin Porotchkin    maxItems: 1
32b8900c53SKonstantin Porotchkin
33b8900c53SKonstantin Porotchkin  "#address-cells":
34b8900c53SKonstantin Porotchkin    const: 1
35b8900c53SKonstantin Porotchkin
36b8900c53SKonstantin Porotchkin  "#size-cells":
37b8900c53SKonstantin Porotchkin    const: 0
38b8900c53SKonstantin Porotchkin
39b8900c53SKonstantin Porotchkin  marvell,system-controller:
40b8900c53SKonstantin Porotchkin    description:
41b8900c53SKonstantin Porotchkin      Phandle to the system controller node
42b8900c53SKonstantin Porotchkin    $ref: /schemas/types.yaml#/definitions/phandle
43b8900c53SKonstantin Porotchkin
44*4de48026SJosua Mayer  swap-dx-lanes:
45*4de48026SJosua Mayer    $ref: /schemas/types.yaml#/definitions/uint32-array
46*4de48026SJosua Mayer    description: |
47*4de48026SJosua Mayer      Specifies the ports which will swap the differential-pair (D+/D-),
48*4de48026SJosua Mayer      default is not-swapped.
49*4de48026SJosua Mayer
50b8900c53SKonstantin Porotchkin# Required child nodes:
51b8900c53SKonstantin Porotchkin
52b8900c53SKonstantin PorotchkinpatternProperties:
53b8900c53SKonstantin Porotchkin  "^usb-phy@[0|1]$":
54b8900c53SKonstantin Porotchkin    type: object
55b8900c53SKonstantin Porotchkin    description:
56b8900c53SKonstantin Porotchkin      Each UTMI PHY port must be represented as a sub-node.
57b8900c53SKonstantin Porotchkin
58b8900c53SKonstantin Porotchkin    properties:
59b8900c53SKonstantin Porotchkin      reg:
60b8900c53SKonstantin Porotchkin        description: phy port index.
61b8900c53SKonstantin Porotchkin        maxItems: 1
62b8900c53SKonstantin Porotchkin
63b8900c53SKonstantin Porotchkin      "#phy-cells":
64b8900c53SKonstantin Porotchkin        const: 0
65b8900c53SKonstantin Porotchkin
66b8900c53SKonstantin Porotchkin    required:
67b8900c53SKonstantin Porotchkin      - reg
68b8900c53SKonstantin Porotchkin      - "#phy-cells"
69b8900c53SKonstantin Porotchkin
70b8900c53SKonstantin Porotchkin    additionalProperties: false
71b8900c53SKonstantin Porotchkin
72b8900c53SKonstantin Porotchkinrequired:
73b8900c53SKonstantin Porotchkin  - compatible
74b8900c53SKonstantin Porotchkin  - reg
75b8900c53SKonstantin Porotchkin  - "#address-cells"
76b8900c53SKonstantin Porotchkin  - "#size-cells"
77b8900c53SKonstantin Porotchkin  - marvell,system-controller
78b8900c53SKonstantin Porotchkin
79b8900c53SKonstantin PorotchkinadditionalProperties: false
80b8900c53SKonstantin Porotchkin
81b8900c53SKonstantin Porotchkinexamples:
82b8900c53SKonstantin Porotchkin  - |
83b8900c53SKonstantin Porotchkin    cp0_utmi: utmi@580000 {
84b8900c53SKonstantin Porotchkin      compatible = "marvell,cp110-utmi-phy";
85b8900c53SKonstantin Porotchkin      reg = <0x580000 0x2000>;
86b8900c53SKonstantin Porotchkin      marvell,system-controller = <&cp0_syscon0>;
87b8900c53SKonstantin Porotchkin      #address-cells = <1>;
88b8900c53SKonstantin Porotchkin      #size-cells = <0>;
89b8900c53SKonstantin Porotchkin
90b8900c53SKonstantin Porotchkin      cp0_utmi0: usb-phy@0 {
91b8900c53SKonstantin Porotchkin        reg = <0>;
92b8900c53SKonstantin Porotchkin        #phy-cells = <0>;
93b8900c53SKonstantin Porotchkin      };
94b8900c53SKonstantin Porotchkin
95b8900c53SKonstantin Porotchkin      cp0_utmi1: usb-phy@1 {
96b8900c53SKonstantin Porotchkin        reg = <1>;
97b8900c53SKonstantin Porotchkin        #phy-cells = <0>;
98b8900c53SKonstantin Porotchkin      };
99b8900c53SKonstantin Porotchkin    };
100b8900c53SKonstantin Porotchkin
101b8900c53SKonstantin Porotchkin    cp0_usb3_0 {
102b8900c53SKonstantin Porotchkin      usb-phy = <&cp0_usb3_0_phy0>;
103b8900c53SKonstantin Porotchkin      phys = <&cp0_utmi0>;
104b8900c53SKonstantin Porotchkin      phy-names = "utmi";
105b8900c53SKonstantin Porotchkin      /* UTMI0 is connected to USB host controller (default mode) */
106b8900c53SKonstantin Porotchkin      dr_mode = "host";
107b8900c53SKonstantin Porotchkin    };
108b8900c53SKonstantin Porotchkin
109b8900c53SKonstantin Porotchkin    cp0_usb3_1 {
110b8900c53SKonstantin Porotchkin      usb-phy = <&cp0_usb3_0_phy1>;
111b8900c53SKonstantin Porotchkin      phys = <&cp0_utmi1>;
112b8900c53SKonstantin Porotchkin      phy-names = "utmi";
113b8900c53SKonstantin Porotchkin      /* UTMI1 is connected to USB device controller */
114b8900c53SKonstantin Porotchkin      dr_mode = "peripheral";
115b8900c53SKonstantin Porotchkin    };
116