Subject: Re: [PATCH v3 1/2] dt-bindings: net: add marvell usb to mdio bindings

From: Rob Herring <[email-masked]>
Date: Mon, 30 Mar 2020 09:11:24 -0600

On Sat, Mar 21, 2020 at 09:24:42PM +0100, Tobias Waldekranz wrote:
> Describe how the USB to MDIO controller can optionally use device tree
> bindings to reference attached devices such as switches.

Looks like this is in linux-next now. First I'm seeing it because the DT 
list was not Cc'ed.

This is breaking 'make dt_binding_check'. Revert or fix before this goes 
to Linus please.

> Signed-off-by: Tobias Waldekranz <[email-masked]>
> ---
>  .../bindings/net/marvell,mvusb.yaml           | 65 +++++++++++++++++++
>  MAINTAINERS                                   |  6 ++
>  2 files changed, 71 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/marvell,mvusb.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/marvell,mvusb.yaml b/Documentation/devicetree/bindings/net/marvell,mvusb.yaml
> new file mode 100644
> index 000000000000..9458f6659be1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/marvell,mvusb.yaml
> @@ -0,0 +1,65 @@
> +# SPDX-License-Identifier: GPL-2.0

New bindings should be:

(GPL-2.0-only OR BSD-2-Clause)

> +%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 <[email-masked]>
> +
> +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

Really, it's the port on the hub which could be a root hub.

> +
> +required:
> +  - compatible
> +  - reg
> +  - "#address-cells"
> +  - "#size-cells"
> +
> +examples:
> +  - |
> +    /* USB host controller */
> +    &usb1 {

This won't compile because there's no 'usb1' to reference.

> +            mvusb: mdio@1 {
> +                    compatible = "usb1286,1fa4";
> +                    reg = <1>;
> +                    #address-cells = <1>;
> +                    #size-cells = <0>;
> +            };
> +    };
> +
> +    /* MV88E6390X devboard */
> +    &mvusb {

Move this into the above node.

> +            switch@0 {
> +                    compatible = "marvell,mv88e6190";
> +                    status = "ok";

Don't show status in examples.

> +                    reg = <0x0>;
> +
> +                    ports {
> +                            /* Port definitions */

Incomplete examples will eventually fail as when complete schema are 
present.

> +                    };
> +
> +                    mdio {
> +                            /* PHY definitions */
> +                    };
> +            };
> +    };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 97dce264bc7c..ff35669f8712 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -10101,6 +10101,12 @@ M:	Nicolas Pitre <[email-masked]>
>  S:	Odd Fixes
>  F:	drivers/mmc/host/mvsdio.*
>  
> +MARVELL USB MDIO CONTROLLER DRIVER
> +M:	Tobias Waldekranz <[email-masked]>
> +L:	[email-masked]
> +S:	Maintained
> +F:	Documentation/devicetree/bindings/net/marvell,mvusb.yaml
> +
>  MARVELL XENON MMC/SD/SDIO HOST CONTROLLER DRIVER
>  M:	Hu Ziji <[email-masked]>
>  L:	[email-masked]
> -- 
> 2.17.1
>