6db4831e98
Android 14
103 lines
1.9 KiB
Plaintext
103 lines
1.9 KiB
Plaintext
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";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|