Staging
v0.5.1
https://github.com/torvalds/linux
Raw File
Tip revision: 88084a3df1672e131ddc1b4e39eeacfd39864acf authored by Linus Torvalds on 03 July 2022, 22:39:28 UTC
Linux 5.19-rc5
Tip revision: 88084a3
marvell,armada-cp110-utmi-phy.yaml
# 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";
    };
back to top