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