Commit | Line | Data |
---|---|---|
be4e119f JB |
1 | SMSC/MicroChip LAN9303 three port ethernet switch |
2 | ------------------------------------------------- | |
3 | ||
4 | Required properties: | |
5 | ||
dc700583 JB |
6 | - compatible: should be |
7 | - "smsc,lan9303-i2c" for I2C managed mode | |
8 | or | |
9 | - "smsc,lan9303-mdio" for mdio managed mode | |
be4e119f JB |
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 { | |
be4e119f JB |
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>; | |
be4e119f JB |
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 | }; | |
dc700583 JB |
64 | |
65 | MDIO managed mode: | |
66 | ||
67 | master: masterdevice@X { | |
dc700583 JB |
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 | }; |