# 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

  swap-dx-lanes:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: |
      Specifies the ports which will swap the differential-pair (D+/D-),
      default is not-swapped.

# 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";
    };
