# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/brcm,bcm6368-mdio-mux.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM6368 MDIO bus multiplexer

maintainers:
  - Álvaro Fernández Rojas <noltari@gmail.com>

description:
  This MDIO bus multiplexer defines buses that could be internal as well as
  external to SoCs. When child bus is selected, one needs to select these two
  properties as well to generate desired MDIO transaction on appropriate bus.

allOf:
  - $ref: "mdio.yaml#"

properties:
  compatible:
    const: brcm,bcm6368-mdio-mux

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  reg:
    maxItems: 1

required:
  - compatible
  - reg

patternProperties:
  '^mdio@[0-1]$':
    type: object
    properties:
      reg:
        maxItems: 1

      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

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

unevaluatedProperties: false

examples:
  - |
    mdio0: mdio@10e000b0 {
      #address-cells = <1>;
      #size-cells = <0>;
      compatible = "brcm,bcm6368-mdio-mux";
      reg = <0x10e000b0 0x6>;

      mdio_int: mdio@0 {
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0>;
      };

      mdio_ext: mdio@1 {
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <1>;
      };
    };
