Merge branch 'parisc-4.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
[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                                 label = "cpu";
50                                 ethernet = <&master>;
51                         };
52
53                         port@1 { /* external port 1 */
54                                 reg = <1>;
55                                 label = "lan1";
56                         };
57
58                         port@2 { /* external port 2 */
59                                 reg = <2>;
60                                 label = "lan2";
61                         };
62                 };
63         };
64
65 MDIO managed mode:
66
67         master: masterdevice@X {
68                 phy-handle = <&switch>;
69
70                 mdio {
71                         #address-cells = <1>;
72                         #size-cells = <0>;
73
74                         switch: switch-phy@0 {
75                                 compatible = "smsc,lan9303-mdio";
76                                 reg = <0>;
77                                 reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
78                                 reset-duration = <100>;
79
80                                 ports {
81                                         #address-cells = <1>;
82                                         #size-cells = <0>;
83
84                                         port@0 {
85                                                 reg = <0>;
86                                                 label = "cpu";
87                                                 ethernet = <&master>;
88                                         };
89
90                                         port@1 { /* external port 1 */
91                                                 reg = <1>;
92                                                 label = "lan1";
93                                         };
94
95                                         port@2 { /* external port 2 */
96                                                 reg = <2>;
97                                                 label = "lan2";
98                                         };
99                                 };
100                         };
101                 };
102         };