xref: /linux/Documentation/devicetree/bindings/net/mdio-mux-multiplexer.yaml (revision d30c1683aaecb93d2ab95685dc4300a33d3cea7a)
1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/mdio-mux-multiplexer.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Properties for an MDIO bus multiplexer consumer device
8
9maintainers:
10  - Andrew Lunn <andrew@lunn.ch>
11
12description: |+
13  This is a special case of MDIO mux when MDIO mux is defined as a consumer
14  of a mux producer device. The mux producer can be of any type like mmio mux
15  producer, gpio mux producer or generic register based mux producer.
16
17allOf:
18  - $ref: /schemas/net/mdio-mux.yaml#
19
20properties:
21  compatible:
22    const: mdio-mux-multiplexer
23
24  mux-controls:
25    maxItems: 1
26
27required:
28  - compatible
29  - mux-controls
30
31unevaluatedProperties: false
32
33examples:
34  - |
35    mux: mux-controller { // Mux Producer
36        compatible = "reg-mux";
37        #mux-control-cells = <1>;
38        mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */
39                        <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */
40    };
41
42    mdio-mux-1 { // Mux consumer
43        compatible = "mdio-mux-multiplexer";
44        mux-controls = <&mux 0>;
45        mdio-parent-bus = <&emdio1>;
46        #address-cells = <1>;
47        #size-cells = <0>;
48
49        mdio@0 {
50            reg = <0x0>;
51            #address-cells = <1>;
52            #size-cells = <0>;
53        };
54
55        mdio@8 {
56            reg = <0x8>;
57            #address-cells = <1>;
58            #size-cells = <0>;
59        };
60    };
61
62    mdio-mux-2 { // Mux consumer
63        compatible = "mdio-mux-multiplexer";
64        mux-controls = <&mux 1>;
65        mdio-parent-bus = <&emdio2>;
66        #address-cells = <1>;
67        #size-cells = <0>;
68
69        mdio@0 {
70            reg = <0x0>;
71            #address-cells = <1>;
72            #size-cells = <0>;
73        };
74
75        mdio@1 {
76            reg = <0x1>;
77            #address-cells = <1>;
78            #size-cells = <0>;
79        };
80    };
81...
82