net: dsa: mv88e6xxx: factorize EEPROM access
[deliverable/linux.git] / drivers / net / dsa / mv88e6xxx.h
index 597257123ca77e816b90b1aaaf154f121aefa5e6..0181f6775bfcbe0621d36879549378b39d3947f6 100644 (file)
@@ -351,6 +351,11 @@ enum mv88e6xxx_family {
 };
 
 enum mv88e6xxx_cap {
+       /* EEPROM Command and Data registers.
+        * See GLOBAL2_EEPROM_OP and GLOBAL2_EEPROM_DATA.
+        */
+       MV88E6XXX_CAP_EEPROM,
+
        /* PHY Polling Unit.
         * See GLOBAL_CONTROL_PPU_ENABLE and GLOBAL_STATUS_PPU_POLLING.
         */
@@ -364,6 +369,7 @@ enum mv88e6xxx_cap {
 };
 
 /* Bitmask of capabilities */
+#define MV88E6XXX_FLAG_EEPROM          BIT(MV88E6XXX_CAP_EEPROM)
 #define MV88E6XXX_FLAG_PPU             BIT(MV88E6XXX_CAP_PPU)
 #define MV88E6XXX_FLAG_SMI_PHY         BIT(MV88E6XXX_CAP_SMI_PHY)
 
@@ -379,13 +385,15 @@ enum mv88e6xxx_cap {
        MV88E6XXX_FLAG_PPU
 
 #define MV88E6XXX_FLAGS_FAMILY_6320    \
-       MV88E6XXX_FLAG_SMI_PHY
+       (MV88E6XXX_FLAG_EEPROM |        \
+        MV88E6XXX_FLAG_SMI_PHY)
 
 #define MV88E6XXX_FLAGS_FAMILY_6351    \
        MV88E6XXX_FLAG_SMI_PHY
 
 #define MV88E6XXX_FLAGS_FAMILY_6352    \
-       MV88E6XXX_FLAG_SMI_PHY
+       (MV88E6XXX_FLAG_EEPROM |        \
+        MV88E6XXX_FLAG_SMI_PHY)
 
 struct mv88e6xxx_info {
        enum mv88e6xxx_family family;
@@ -521,8 +529,10 @@ int mv88e6xxx_get_temp(struct dsa_switch *ds, int *temp);
 int mv88e6xxx_get_temp_limit(struct dsa_switch *ds, int *temp);
 int mv88e6xxx_set_temp_limit(struct dsa_switch *ds, int temp);
 int mv88e6xxx_get_temp_alarm(struct dsa_switch *ds, bool *alarm);
-int mv88e6xxx_eeprom_load_wait(struct dsa_switch *ds);
-int mv88e6xxx_eeprom_busy_wait(struct dsa_switch *ds);
+int mv88e6xxx_get_eeprom(struct dsa_switch *ds, struct ethtool_eeprom *eeprom,
+                        u8 *data);
+int mv88e6xxx_set_eeprom(struct dsa_switch *ds, struct ethtool_eeprom *eeprom,
+                        u8 *data);
 int mv88e6xxx_get_eee(struct dsa_switch *ds, int port, struct ethtool_eee *e);
 int mv88e6xxx_set_eee(struct dsa_switch *ds, int port,
                      struct phy_device *phydev, struct ethtool_eee *e);
This page took 0.026011 seconds and 5 git commands to generate.