# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)

%YAML 1.2
---
$id: http://devicetree.org/schemas/phy/marvell,armada-cp110-utmi-phy.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Marvell Armada CP110/CP115 UTMI PHY

maintainers:
  - Konstantin Porotchkin <kostap@marvell.com>

description:
  On Armada 7k/8k and CN913x, there are two host and one device USB controllers.
  Each of two exiting UTMI PHYs could be connected to either USB host or USB device
  controller.
  The USB device controller can only be connected to a single UTMI PHY port
                      0.H----- USB HOST0
  UTMI PHY0  --------/
                      0.D-----0
                               \------ USB DEVICE
                      1.D-----1
  UTMI PHY1  --------\
                      1.H----- USB HOST1

properties:
  compatible:
    const: marvell,cp110-utmi-phy

  reg:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  marvell,system-controller:
    description:
      Phandle to the system controller node
    $ref: /schemas/types.yaml#/definitions/phandle

# Required child nodes:

patternProperties:
  "^usb-phy@[0|1]$":
    type: object
    description:
      Each UTMI PHY port must be represented as a sub-node.

    properties:
      reg:
        description: phy port index.
        maxItems: 1

      "#phy-cells":
        const: 0

    required:
      - reg
      - "#phy-cells"

    additionalProperties: false

required:
  - compatible
  - reg
  - "#address-cells"
  - "#size-cells"
  - marvell,system-controller

additionalProperties: false

examples:
  - |
    cp0_utmi: utmi@580000 {
      compatible = "marvell,cp110-utmi-phy";
      reg = <0x580000 0x2000>;
      marvell,system-controller = <&cp0_syscon0>;
      #address-cells = <1>;
      #size-cells = <0>;

      cp0_utmi0: usb-phy@0 {
        reg = <0>;
        #phy-cells = <0>;
      };

      cp0_utmi1: usb-phy@1 {
        reg = <1>;
        #phy-cells = <0>;
      };
    };

    cp0_usb3_0 {
      usb-phy = <&cp0_usb3_0_phy0>;
      phys = <&cp0_utmi0>;
      phy-names = "utmi";
      /* UTMI0 is connected to USB host controller (default mode) */
      dr_mode = "host";
    };

    cp0_usb3_1 {
      usb-phy = <&cp0_usb3_0_phy1>;
      phys = <&cp0_utmi1>;
      phy-names = "utmi";
      /* UTMI1 is connected to USB device controller */
      dr_mode = "peripheral";
    };
