| 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 { |
| status = "okay"; |
| |
| fixed-link { /* RMII fixed link to LAN9303 */ |
| speed = <100>; |
| full-duplex; |
| }; |
| }; |
| |
| switch: switch@a { |
| compatible = "smsc,lan9303-i2c"; |
| reg = <0xa>; |
| status = "okay"; |
| 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 { |
| status = "okay"; |
| 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"; |
| }; |
| }; |
| }; |
| }; |
| }; |