]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/net/dsa/mv88e6xxx.h
net: dsa: mv88e6xxx: extend fid mask
[karo-tx-linux.git] / drivers / net / dsa / mv88e6xxx.h
index ae640c7b6b0cac9a1d0a5ff64053eab8b900c554..200327b7ea7d15e4bcb5d22121aab20342026a40 100644 (file)
 #define GLOBAL_ATU_OP_GET_CLR_VIOLATION          ((7 << 12) | GLOBAL_ATU_OP_BUSY)
 #define GLOBAL_ATU_DATA                0x0c
 #define GLOBAL_ATU_DATA_TRUNK                  BIT(15)
-#define GLOBAL_ATU_DATA_TRUNK_ID_MASK          0x00f0
-#define GLOBAL_ATU_DATA_TRUNK_ID_SHIFT         4
 #define GLOBAL_ATU_DATA_PORT_VECTOR_MASK       0x3ff0
 #define GLOBAL_ATU_DATA_PORT_VECTOR_SHIFT      4
 #define GLOBAL_ATU_DATA_STATE_MASK             0x0f
 #define GLOBAL2_PRIO_OVERRIDE_FORCE_ARP                BIT(3)
 #define GLOBAL2_PRIO_OVERRIDE_ARP_SHIFT                0
 #define GLOBAL2_EEPROM_OP      0x14
-#define GLOBAL2_EEPROM_OP_BUSY BIT(15)
-#define GLOBAL2_EEPROM_OP_LOAD BIT(11)
+#define GLOBAL2_EEPROM_OP_BUSY         BIT(15)
+#define GLOBAL2_EEPROM_OP_WRITE                ((3 << 12) | GLOBAL2_EEPROM_OP_BUSY)
+#define GLOBAL2_EEPROM_OP_READ         ((4 << 12) | GLOBAL2_EEPROM_OP_BUSY)
+#define GLOBAL2_EEPROM_OP_LOAD         BIT(11)
+#define GLOBAL2_EEPROM_OP_WRITE_EN     BIT(10)
+#define GLOBAL2_EEPROM_OP_ADDR_MASK    0xff
 #define GLOBAL2_EEPROM_DATA    0x15
 #define GLOBAL2_PTP_AVB_OP     0x16
 #define GLOBAL2_PTP_AVB_DATA   0x17
 #define GLOBAL2_QOS_WEIGHT     0x1c
 #define GLOBAL2_MISC           0x1d
 
-struct mv88e6xxx_atu_entry {
-       u16     fid;
-       u8      state;
-       bool    trunk;
-       u16     portv_trunkid;
-       u8      mac[ETH_ALEN];
-};
-
 struct mv88e6xxx_priv_state {
        /* When using multi-chip addressing, this mutex protects
         * access to the indirect access registers.  (In single-chip
@@ -426,11 +420,11 @@ int mv88e6xxx_port_fdb_add(struct dsa_switch *ds, int port,
                           const unsigned char *addr, u16 vid);
 int mv88e6xxx_port_fdb_del(struct dsa_switch *ds, int port,
                           const unsigned char *addr, u16 vid);
+int mv88e6xxx_port_fdb_getnext(struct dsa_switch *ds, int port,
+                              unsigned char *addr, bool *is_static);
 int mv88e6xxx_phy_page_read(struct dsa_switch *ds, int port, int page, int reg);
 int mv88e6xxx_phy_page_write(struct dsa_switch *ds, int port, int page,
                             int reg, int val);
-int mv88e6xxx_port_fdb_getnext(struct dsa_switch *ds, int port, u16 *vid,
-                              u8 addr[ETH_ALEN], bool *is_static);
 
 extern struct dsa_switch_driver mv88e6131_switch_driver;
 extern struct dsa_switch_driver mv88e6123_61_65_switch_driver;