xref: /freebsd/sys/contrib/device-tree/Bindings/net/mdio-mux-multiplexer.yaml (revision 8ddb146abcdf061be9f2c0db7e391697dafad85c)
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
17
18allOf:
19  - $ref: /schemas/net/mdio-mux.yaml#
20
21properties:
22  compatible:
23    const: mdio-mux-multiplexer
24
25  mux-controls:
26    maxItems: 1
27
28required:
29  - compatible
30  - mux-controls
31
32unevaluatedProperties: false
33
34examples:
35  - |
36    mux: mux-controller { // Mux Producer
37        compatible = "reg-mux";
38        #mux-control-cells = <1>;
39        mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */
40                        <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */
41    };
42
43    mdio-mux-1 { // Mux consumer
44        compatible = "mdio-mux-multiplexer";
45        mux-controls = <&mux 0>;
46        mdio-parent-bus = <&emdio1>;
47        #address-cells = <1>;
48        #size-cells = <0>;
49
50        mdio@0 {
51            reg = <0x0>;
52            #address-cells = <1>;
53            #size-cells = <0>;
54        };
55
56        mdio@8 {
57            reg = <0x8>;
58            #address-cells = <1>;
59            #size-cells = <0>;
60        };
61    };
62
63    mdio-mux-2 { // Mux consumer
64        compatible = "mdio-mux-multiplexer";
65        mux-controls = <&mux 1>;
66        mdio-parent-bus = <&emdio2>;
67        #address-cells = <1>;
68        #size-cells = <0>;
69
70        mdio@0 {
71            reg = <0x0>;
72            #address-cells = <1>;
73            #size-cells = <0>;
74        };
75
76        mdio@1 {
77            reg = <0x1>;
78            #address-cells = <1>;
79            #size-cells = <0>;
80        };
81    };
82...
83