Linux 6.10-rc1
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / net / dsa / lan9303.txt
1 SMSC/MicroChip LAN9303 three port ethernet switch
2 -------------------------------------------------
3
4 Required properties:
5
6 - compatible: should be
7   - "smsc,lan9303-i2c" for I2C managed mode
8     or
9   - "smsc,lan9303-mdio" for mdio managed mode
10
11 Optional properties:
12
13 - reset-gpios: GPIO to be used to reset the whole device
14 - reset-duration: reset duration in milliseconds, defaults to 200 ms
15
16 Subnodes:
17
18 The integrated switch subnode should be specified according to the binding
19 described in dsa/dsa.txt. The CPU port of this switch is always port 0.
20
21 Note: always use 'reg = <0/1/2>;' for the three DSA ports, even if the device is
22 configured to use 1/2/3 instead. This hardware configuration will be
23 auto-detected and mapped accordingly.
24
25 Example:
26
27 I2C managed mode:
28
29         master: masterdevice@X {
30
31                 fixed-link { /* RMII fixed link to LAN9303 */
32                         speed = <100>;
33                         full-duplex;
34                 };
35         };
36
37         switch: switch@a {
38                 compatible = "smsc,lan9303-i2c";
39                 reg = <0xa>;
40                 reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
41                 reset-duration = <200>;
42
43                 ports {
44                         #address-cells = <1>;
45                         #size-cells = <0>;
46
47                         port@0 { /* RMII fixed link to master */
48                                 reg = <0>;
49                                 ethernet = <&master>;
50                         };
51
52                         port@1 { /* external port 1 */
53                                 reg = <1>;
54                                 label = "lan1";
55                         };
56
57                         port@2 { /* external port 2 */
58                                 reg = <2>;
59                                 label = "lan2";
60                         };
61                 };
62         };
63
64 MDIO managed mode:
65
66         master: masterdevice@X {
67                 phy-handle = <&switch>;
68
69                 mdio {
70                         #address-cells = <1>;
71                         #size-cells = <0>;
72
73                         switch: switch-phy@0 {
74                                 compatible = "smsc,lan9303-mdio";
75                                 reg = <0>;
76                                 reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
77                                 reset-duration = <100>;
78
79                                 ports {
80                                         #address-cells = <1>;
81                                         #size-cells = <0>;
82
83                                         port@0 {
84                                                 reg = <0>;
85                                                 ethernet = <&master>;
86                                         };
87
88                                         port@1 { /* external port 1 */
89                                                 reg = <1>;
90                                                 label = "lan1";
91                                         };
92
93                                         port@2 { /* external port 2 */
94                                                 reg = <2>;
95                                                 label = "lan2";
96                                         };
97                                 };
98                         };
99                 };
100         };