| SMSC/MicroChip LAN9303 three port ethernet switch | |
| ------------------------------------------------- | |
| Required properties: | |
| - compatible: should be | |
| - "smsc,lan9303-i2c" for I2C managed mode | |
| or | |
| - "smsc,lan9303-mdio" for mdio managed mode | |
| Optional properties: | |
| - reset-gpios: GPIO to be used to reset the whole device | |
| - reset-duration: reset duration in milliseconds, defaults to 200 ms | |
| Subnodes: | |
| The integrated switch subnode should be specified according to the binding | |
| described in dsa/dsa.txt. The CPU port of this switch is always port 0. | |
| Note: always use 'reg = <0/1/2>;' for the three DSA ports, even if the device is | |
| configured to use 1/2/3 instead. This hardware configuration will be | |
| auto-detected and mapped accordingly. | |
| Example: | |
| I2C managed mode: | |
| master: masterdevice@X { | |
| fixed-link { /* RMII fixed link to LAN9303 */ | |
| speed = <100>; | |
| full-duplex; | |
| }; | |
| }; | |
| switch: switch@a { | |
| compatible = "smsc,lan9303-i2c"; | |
| reg = <0xa>; | |
| reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; | |
| reset-duration = <200>; | |
| ports { | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| port@0 { /* RMII fixed link to master */ | |
| reg = <0>; | |
| label = "cpu"; | |
| ethernet = <&master>; | |
| }; | |
| port@1 { /* external port 1 */ | |
| reg = <1>; | |
| label = "lan1"; | |
| }; | |
| port@2 { /* external port 2 */ | |
| reg = <2>; | |
| label = "lan2"; | |
| }; | |
| }; | |
| }; | |
| MDIO managed mode: | |
| master: masterdevice@X { | |
| phy-handle = <&switch>; | |
| mdio { | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| switch: switch-phy@0 { | |
| compatible = "smsc,lan9303-mdio"; | |
| reg = <0>; | |
| reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; | |
| reset-duration = <100>; | |
| ports { | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| port@0 { | |
| reg = <0>; | |
| label = "cpu"; | |
| ethernet = <&master>; | |
| }; | |
| port@1 { /* external port 1 */ | |
| reg = <1>; | |
| label = "lan1"; | |
| }; | |
| port@2 { /* external port 2 */ | |
| reg = <2>; | |
| label = "lan2"; | |
| }; | |
| }; | |
| }; | |
| }; | |
| }; |