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"; 
 | 
                    }; 
 | 
                }; 
 | 
            }; 
 | 
        }; 
 | 
    }; 
 |