xref: /freebsd/sys/contrib/device-tree/Bindings/phy/marvell,armada-cp110-utmi-phy.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
22eb4d8dcSEmmanuel Vadot
32eb4d8dcSEmmanuel Vadot%YAML 1.2
42eb4d8dcSEmmanuel Vadot---
5*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/marvell,armada-cp110-utmi-phy.yaml#
6*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
72eb4d8dcSEmmanuel Vadot
82eb4d8dcSEmmanuel Vadottitle: Marvell Armada CP110/CP115 UTMI PHY
92eb4d8dcSEmmanuel Vadot
102eb4d8dcSEmmanuel Vadotmaintainers:
112eb4d8dcSEmmanuel Vadot  - Konstantin Porotchkin <kostap@marvell.com>
122eb4d8dcSEmmanuel Vadot
132eb4d8dcSEmmanuel Vadotdescription:
142eb4d8dcSEmmanuel Vadot  On Armada 7k/8k and CN913x, there are two host and one device USB controllers.
152eb4d8dcSEmmanuel Vadot  Each of two exiting UTMI PHYs could be connected to either USB host or USB device
162eb4d8dcSEmmanuel Vadot  controller.
172eb4d8dcSEmmanuel Vadot  The USB device controller can only be connected to a single UTMI PHY port
182eb4d8dcSEmmanuel Vadot                      0.H----- USB HOST0
192eb4d8dcSEmmanuel Vadot  UTMI PHY0  --------/
202eb4d8dcSEmmanuel Vadot                      0.D-----0
212eb4d8dcSEmmanuel Vadot                               \------ USB DEVICE
222eb4d8dcSEmmanuel Vadot                      1.D-----1
232eb4d8dcSEmmanuel Vadot  UTMI PHY1  --------\
242eb4d8dcSEmmanuel Vadot                      1.H----- USB HOST1
252eb4d8dcSEmmanuel Vadot
262eb4d8dcSEmmanuel Vadotproperties:
272eb4d8dcSEmmanuel Vadot  compatible:
282eb4d8dcSEmmanuel Vadot    const: marvell,cp110-utmi-phy
292eb4d8dcSEmmanuel Vadot
302eb4d8dcSEmmanuel Vadot  reg:
312eb4d8dcSEmmanuel Vadot    maxItems: 1
322eb4d8dcSEmmanuel Vadot
332eb4d8dcSEmmanuel Vadot  "#address-cells":
342eb4d8dcSEmmanuel Vadot    const: 1
352eb4d8dcSEmmanuel Vadot
362eb4d8dcSEmmanuel Vadot  "#size-cells":
372eb4d8dcSEmmanuel Vadot    const: 0
382eb4d8dcSEmmanuel Vadot
392eb4d8dcSEmmanuel Vadot  marvell,system-controller:
402eb4d8dcSEmmanuel Vadot    description:
412eb4d8dcSEmmanuel Vadot      Phandle to the system controller node
422eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
432eb4d8dcSEmmanuel Vadot
442eb4d8dcSEmmanuel Vadot# Required child nodes:
452eb4d8dcSEmmanuel Vadot
462eb4d8dcSEmmanuel VadotpatternProperties:
472eb4d8dcSEmmanuel Vadot  "^usb-phy@[0|1]$":
482eb4d8dcSEmmanuel Vadot    type: object
492eb4d8dcSEmmanuel Vadot    description:
502eb4d8dcSEmmanuel Vadot      Each UTMI PHY port must be represented as a sub-node.
512eb4d8dcSEmmanuel Vadot
522eb4d8dcSEmmanuel Vadot    properties:
532eb4d8dcSEmmanuel Vadot      reg:
542eb4d8dcSEmmanuel Vadot        description: phy port index.
552eb4d8dcSEmmanuel Vadot        maxItems: 1
562eb4d8dcSEmmanuel Vadot
572eb4d8dcSEmmanuel Vadot      "#phy-cells":
582eb4d8dcSEmmanuel Vadot        const: 0
592eb4d8dcSEmmanuel Vadot
602eb4d8dcSEmmanuel Vadot    required:
612eb4d8dcSEmmanuel Vadot      - reg
622eb4d8dcSEmmanuel Vadot      - "#phy-cells"
632eb4d8dcSEmmanuel Vadot
642eb4d8dcSEmmanuel Vadot    additionalProperties: false
652eb4d8dcSEmmanuel Vadot
662eb4d8dcSEmmanuel Vadotrequired:
672eb4d8dcSEmmanuel Vadot  - compatible
682eb4d8dcSEmmanuel Vadot  - reg
692eb4d8dcSEmmanuel Vadot  - "#address-cells"
702eb4d8dcSEmmanuel Vadot  - "#size-cells"
712eb4d8dcSEmmanuel Vadot  - marvell,system-controller
722eb4d8dcSEmmanuel Vadot
732eb4d8dcSEmmanuel VadotadditionalProperties: false
742eb4d8dcSEmmanuel Vadot
752eb4d8dcSEmmanuel Vadotexamples:
762eb4d8dcSEmmanuel Vadot  - |
772eb4d8dcSEmmanuel Vadot    cp0_utmi: utmi@580000 {
782eb4d8dcSEmmanuel Vadot      compatible = "marvell,cp110-utmi-phy";
792eb4d8dcSEmmanuel Vadot      reg = <0x580000 0x2000>;
802eb4d8dcSEmmanuel Vadot      marvell,system-controller = <&cp0_syscon0>;
812eb4d8dcSEmmanuel Vadot      #address-cells = <1>;
822eb4d8dcSEmmanuel Vadot      #size-cells = <0>;
832eb4d8dcSEmmanuel Vadot
842eb4d8dcSEmmanuel Vadot      cp0_utmi0: usb-phy@0 {
852eb4d8dcSEmmanuel Vadot        reg = <0>;
862eb4d8dcSEmmanuel Vadot        #phy-cells = <0>;
872eb4d8dcSEmmanuel Vadot      };
882eb4d8dcSEmmanuel Vadot
892eb4d8dcSEmmanuel Vadot      cp0_utmi1: usb-phy@1 {
902eb4d8dcSEmmanuel Vadot        reg = <1>;
912eb4d8dcSEmmanuel Vadot        #phy-cells = <0>;
922eb4d8dcSEmmanuel Vadot      };
932eb4d8dcSEmmanuel Vadot    };
942eb4d8dcSEmmanuel Vadot
952eb4d8dcSEmmanuel Vadot    cp0_usb3_0 {
962eb4d8dcSEmmanuel Vadot      usb-phy = <&cp0_usb3_0_phy0>;
972eb4d8dcSEmmanuel Vadot      phys = <&cp0_utmi0>;
982eb4d8dcSEmmanuel Vadot      phy-names = "utmi";
992eb4d8dcSEmmanuel Vadot      /* UTMI0 is connected to USB host controller (default mode) */
1002eb4d8dcSEmmanuel Vadot      dr_mode = "host";
1012eb4d8dcSEmmanuel Vadot    };
1022eb4d8dcSEmmanuel Vadot
1032eb4d8dcSEmmanuel Vadot    cp0_usb3_1 {
1042eb4d8dcSEmmanuel Vadot      usb-phy = <&cp0_usb3_0_phy1>;
1052eb4d8dcSEmmanuel Vadot      phys = <&cp0_utmi1>;
1062eb4d8dcSEmmanuel Vadot      phy-names = "utmi";
1072eb4d8dcSEmmanuel Vadot      /* UTMI1 is connected to USB device controller */
1082eb4d8dcSEmmanuel Vadot      dr_mode = "peripheral";
1092eb4d8dcSEmmanuel Vadot    };
110