|
@@ -388,6 +388,13 @@ enum mv88e6xxx_cap {
|
|
|
*/
|
|
|
MV88E6XXX_CAP_EEE,
|
|
|
|
|
|
+ /* Multi-chip Addressing Mode.
|
|
|
+ * Some chips respond to only 2 registers of its own SMI device address
|
|
|
+ * when it is non-zero, and use indirect access to internal registers.
|
|
|
+ */
|
|
|
+ MV88E6XXX_CAP_SMI_CMD, /* (0x00) SMI Command */
|
|
|
+ MV88E6XXX_CAP_SMI_DATA, /* (0x01) SMI Data */
|
|
|
+
|
|
|
/* Switch Global 2 Registers.
|
|
|
* The device contains a second set of global 16-bit registers.
|
|
|
*/
|
|
@@ -403,12 +410,6 @@ enum mv88e6xxx_cap {
|
|
|
MV88E6XXX_CAP_G2_EEPROM_CMD, /* (0x14) EEPROM Command */
|
|
|
MV88E6XXX_CAP_G2_EEPROM_DATA, /* (0x15) EEPROM Data */
|
|
|
|
|
|
- /* Multi-chip Addressing Mode.
|
|
|
- * Some chips require an indirect SMI access when their SMI device
|
|
|
- * address is not zero. See SMI_CMD and SMI_DATA.
|
|
|
- */
|
|
|
- MV88E6XXX_CAP_MULTI_CHIP,
|
|
|
-
|
|
|
/* PHY Polling Unit.
|
|
|
* See GLOBAL_CONTROL_PPU_ENABLE and GLOBAL_STATUS_PPU_POLLING.
|
|
|
*/
|
|
@@ -441,6 +442,10 @@ enum mv88e6xxx_cap {
|
|
|
|
|
|
/* Bitmask of capabilities */
|
|
|
#define MV88E6XXX_FLAG_EEE BIT(MV88E6XXX_CAP_EEE)
|
|
|
+
|
|
|
+#define MV88E6XXX_FLAG_SMI_CMD BIT(MV88E6XXX_CAP_SMI_CMD)
|
|
|
+#define MV88E6XXX_FLAG_SMI_DATA BIT(MV88E6XXX_CAP_SMI_DATA)
|
|
|
+
|
|
|
#define MV88E6XXX_FLAG_GLOBAL2 BIT(MV88E6XXX_CAP_GLOBAL2)
|
|
|
#define MV88E6XXX_FLAG_G2_MGMT_EN_2X BIT(MV88E6XXX_CAP_G2_MGMT_EN_2X)
|
|
|
#define MV88E6XXX_FLAG_G2_MGMT_EN_0X BIT(MV88E6XXX_CAP_G2_MGMT_EN_0X)
|
|
@@ -452,7 +457,7 @@ enum mv88e6xxx_cap {
|
|
|
#define MV88E6XXX_FLAG_G2_POT BIT(MV88E6XXX_CAP_G2_POT)
|
|
|
#define MV88E6XXX_FLAG_G2_EEPROM_CMD BIT(MV88E6XXX_CAP_G2_EEPROM_CMD)
|
|
|
#define MV88E6XXX_FLAG_G2_EEPROM_DATA BIT(MV88E6XXX_CAP_G2_EEPROM_DATA)
|
|
|
-#define MV88E6XXX_FLAG_MULTI_CHIP BIT(MV88E6XXX_CAP_MULTI_CHIP)
|
|
|
+
|
|
|
#define MV88E6XXX_FLAG_PPU BIT(MV88E6XXX_CAP_PPU)
|
|
|
#define MV88E6XXX_FLAG_PPU_ACTIVE BIT(MV88E6XXX_CAP_PPU_ACTIVE)
|
|
|
#define MV88E6XXX_FLAG_SMI_PHY BIT(MV88E6XXX_CAP_SMI_PHY)
|
|
@@ -471,6 +476,11 @@ enum mv88e6xxx_cap {
|
|
|
(MV88E6XXX_FLAG_G2_IRL_CMD | \
|
|
|
MV88E6XXX_FLAG_G2_IRL_DATA)
|
|
|
|
|
|
+/* Multi-chip Addressing Mode */
|
|
|
+#define MV88E6XXX_FLAGS_MULTI_CHIP \
|
|
|
+ (MV88E6XXX_FLAG_SMI_CMD | \
|
|
|
+ MV88E6XXX_FLAG_SMI_DATA)
|
|
|
+
|
|
|
/* Cross-chip Port VLAN Table */
|
|
|
#define MV88E6XXX_FLAGS_PVT \
|
|
|
(MV88E6XXX_FLAG_G2_PVT_ADDR | \
|
|
@@ -479,20 +489,20 @@ enum mv88e6xxx_cap {
|
|
|
#define MV88E6XXX_FLAGS_FAMILY_6095 \
|
|
|
(MV88E6XXX_FLAG_GLOBAL2 | \
|
|
|
MV88E6XXX_FLAG_G2_MGMT_EN_0X | \
|
|
|
- MV88E6XXX_FLAG_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAG_PPU | \
|
|
|
- MV88E6XXX_FLAG_VTU)
|
|
|
+ MV88E6XXX_FLAG_VTU | \
|
|
|
+ MV88E6XXX_FLAGS_MULTI_CHIP)
|
|
|
|
|
|
#define MV88E6XXX_FLAGS_FAMILY_6097 \
|
|
|
(MV88E6XXX_FLAG_GLOBAL2 | \
|
|
|
MV88E6XXX_FLAG_G2_MGMT_EN_2X | \
|
|
|
MV88E6XXX_FLAG_G2_MGMT_EN_0X | \
|
|
|
MV88E6XXX_FLAG_G2_POT | \
|
|
|
- MV88E6XXX_FLAG_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAG_PPU | \
|
|
|
MV88E6XXX_FLAG_STU | \
|
|
|
MV88E6XXX_FLAG_VTU | \
|
|
|
MV88E6XXX_FLAGS_IRL | \
|
|
|
+ MV88E6XXX_FLAGS_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAGS_PVT)
|
|
|
|
|
|
#define MV88E6XXX_FLAGS_FAMILY_6165 \
|
|
@@ -501,17 +511,17 @@ enum mv88e6xxx_cap {
|
|
|
MV88E6XXX_FLAG_G2_MGMT_EN_0X | \
|
|
|
MV88E6XXX_FLAG_G2_SWITCH_MAC | \
|
|
|
MV88E6XXX_FLAG_G2_POT | \
|
|
|
- MV88E6XXX_FLAG_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAG_STU | \
|
|
|
MV88E6XXX_FLAG_TEMP | \
|
|
|
MV88E6XXX_FLAG_VTU | \
|
|
|
MV88E6XXX_FLAGS_IRL | \
|
|
|
+ MV88E6XXX_FLAGS_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAGS_PVT)
|
|
|
|
|
|
#define MV88E6XXX_FLAGS_FAMILY_6185 \
|
|
|
(MV88E6XXX_FLAG_GLOBAL2 | \
|
|
|
MV88E6XXX_FLAG_G2_MGMT_EN_0X | \
|
|
|
- MV88E6XXX_FLAG_MULTI_CHIP | \
|
|
|
+ MV88E6XXX_FLAGS_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAG_PPU | \
|
|
|
MV88E6XXX_FLAG_VTU)
|
|
|
|
|
@@ -522,7 +532,6 @@ enum mv88e6xxx_cap {
|
|
|
MV88E6XXX_FLAG_G2_MGMT_EN_0X | \
|
|
|
MV88E6XXX_FLAG_G2_SWITCH_MAC | \
|
|
|
MV88E6XXX_FLAG_G2_POT | \
|
|
|
- MV88E6XXX_FLAG_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAG_PPU_ACTIVE | \
|
|
|
MV88E6XXX_FLAG_SMI_PHY | \
|
|
|
MV88E6XXX_FLAG_TEMP | \
|
|
@@ -530,6 +539,7 @@ enum mv88e6xxx_cap {
|
|
|
MV88E6XXX_FLAG_VTU | \
|
|
|
MV88E6XXX_FLAGS_EEPROM16 | \
|
|
|
MV88E6XXX_FLAGS_IRL | \
|
|
|
+ MV88E6XXX_FLAGS_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAGS_PVT)
|
|
|
|
|
|
#define MV88E6XXX_FLAGS_FAMILY_6351 \
|
|
@@ -538,13 +548,13 @@ enum mv88e6xxx_cap {
|
|
|
MV88E6XXX_FLAG_G2_MGMT_EN_0X | \
|
|
|
MV88E6XXX_FLAG_G2_SWITCH_MAC | \
|
|
|
MV88E6XXX_FLAG_G2_POT | \
|
|
|
- MV88E6XXX_FLAG_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAG_PPU_ACTIVE | \
|
|
|
MV88E6XXX_FLAG_SMI_PHY | \
|
|
|
MV88E6XXX_FLAG_STU | \
|
|
|
MV88E6XXX_FLAG_TEMP | \
|
|
|
MV88E6XXX_FLAG_VTU | \
|
|
|
MV88E6XXX_FLAGS_IRL | \
|
|
|
+ MV88E6XXX_FLAGS_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAGS_PVT)
|
|
|
|
|
|
#define MV88E6XXX_FLAGS_FAMILY_6352 \
|
|
@@ -554,7 +564,6 @@ enum mv88e6xxx_cap {
|
|
|
MV88E6XXX_FLAG_G2_MGMT_EN_0X | \
|
|
|
MV88E6XXX_FLAG_G2_SWITCH_MAC | \
|
|
|
MV88E6XXX_FLAG_G2_POT | \
|
|
|
- MV88E6XXX_FLAG_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAG_PPU_ACTIVE | \
|
|
|
MV88E6XXX_FLAG_SMI_PHY | \
|
|
|
MV88E6XXX_FLAG_STU | \
|
|
@@ -563,6 +572,7 @@ enum mv88e6xxx_cap {
|
|
|
MV88E6XXX_FLAG_VTU | \
|
|
|
MV88E6XXX_FLAGS_EEPROM16 | \
|
|
|
MV88E6XXX_FLAGS_IRL | \
|
|
|
+ MV88E6XXX_FLAGS_MULTI_CHIP | \
|
|
|
MV88E6XXX_FLAGS_PVT)
|
|
|
|
|
|
struct mv88e6xxx_info {
|