net: dsa: mv88e6xxx: mv88e6390X SERDES support
The mv88e6390X family has 8 SERDES lanes. These can be used for 2 10Gbps ports, ports 9 or 10. If these ports are used at slower speeds, the SERDES lanes become available for other ports for 1000Base-X. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
ba9b989dc7
commit
6335e9f244
@@ -19,6 +19,30 @@
|
||||
#define MV88E6352_ADDR_SERDES 0x0f
|
||||
#define MV88E6352_SERDES_PAGE_FIBER 0x01
|
||||
|
||||
#define MV88E6390_PORT9_LANE0 0x09
|
||||
#define MV88E6390_PORT9_LANE1 0x12
|
||||
#define MV88E6390_PORT9_LANE2 0x13
|
||||
#define MV88E6390_PORT9_LANE3 0x14
|
||||
#define MV88E6390_PORT10_LANE0 0x0a
|
||||
#define MV88E6390_PORT10_LANE1 0x15
|
||||
#define MV88E6390_PORT10_LANE2 0x16
|
||||
#define MV88E6390_PORT10_LANE3 0x17
|
||||
#define MV88E6390_SERDES_DEVICE (4 << 16)
|
||||
|
||||
/* 10GBASE-R and 10GBASE-X4/X2 */
|
||||
#define MV88E6390_PCS_CONTROL_1 0x1000
|
||||
#define MV88E6390_PCS_CONTROL_1_RESET BIT(15)
|
||||
#define MV88E6390_PCS_CONTROL_1_LOOPBACK BIT(14)
|
||||
#define MV88E6390_PCS_CONTROL_1_SPEED BIT(13)
|
||||
#define MV88E6390_PCS_CONTROL_1_PDOWN BIT(11)
|
||||
|
||||
/* 1000BASE-X and SGMII */
|
||||
#define MV88E6390_SGMII_CONTROL 0x2000
|
||||
#define MV88E6390_SGMII_CONTROL_RESET BIT(15)
|
||||
#define MV88E6390_SGMII_CONTROL_LOOPBACK BIT(14)
|
||||
#define MV88E6390_SGMII_CONTROL_PDOWN BIT(11)
|
||||
|
||||
int mv88e6352_serdes_power(struct mv88e6xxx_chip *chip, int port, bool on);
|
||||
int mv88e6390_serdes_power(struct mv88e6xxx_chip *chip, int port, bool on);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user