# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/marvell,mvusb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Marvell USB to MDIO Controller

maintainers:
  - Tobias Waldekranz <tobias@waldekranz.com>

description: |+
  This controller is mounted on development boards for Marvell's Link Street
  family of Ethernet switches. It allows you to configure the switch's registers
  using the standard MDIO interface.

  Since the device is connected over USB, there is no strict requirement of
  having a device tree representation of the device. But in order to use it with
  the mv88e6xxx driver, you need a device tree node in which to place the switch
  definition.

allOf:
  - $ref: mdio.yaml#

properties:
  compatible:
    const: usb1286,1fa4
  reg:
    maxItems: 1
    description: The USB port number on the host controller

required:
  - compatible
  - reg
  - "#address-cells"
  - "#size-cells"

unevaluatedProperties: false

examples:
  - |
    /* USB host controller */
    usb {
            #address-cells = <1>;
            #size-cells = <0>;

            mdio@1 {
                    compatible = "usb1286,1fa4";
                    reg = <1>;
                    #address-cells = <1>;
                    #size-cells = <0>;

                    ethernet-switch@0 {
                            compatible = "marvell,mv88e6190";
                            reg = <0x0>;

                            ethernet-ports {
                                    #address-cells = <1>;
                                    #size-cells = <0>;

                                    /* Port definitions */
                            };

                            mdio {
                                    /* PHY definitions */
                            };
                    };
            };
    };
