• Vivien Didelot's avatar
    net: dsa: mv88e6xxx: rework EEPROM access · 855b1932
    Vivien Didelot authored
    The 6352 family of switches and compatibles provide a 8-bit address and
    16-bit data access to an optional EEPROM.
    
    Newer chip such as the 6390 family slightly changed the access to 16-bit
    address and 8-bit data.
    
    This commit cleans up the EEPROM access code for 16-bit access and makes
    it easy to eventually introduce future support for 8-bit access.
    
    Here's a list of notable changes brought by this patch:
    
      - provide Global2 unlocked helpers for EEPROM commands
      - remove eeprom_mutex, only reg_lock is necessary for driver functions
      - eeprom_len is 0 for chip without EEPROM, so return it directly
      - the Running bit must be 0 before r/w, so wait for Busy *and* Running
      - remove now unused mv88e6xxx_wait and mv88e6xxx_reg_write
      - other than that, the logic (in _{get,set}_eeprom16) didn't change
    
    Chips with an 8-bit EEPROM access will require to implement the
    8-suffixed variant of G2 helpers and the related flag:
    
        #define MV88E6XXX_FLAGS_EEPROM8	\
        	(MV88E6XXX_FLAG_G2_EEPROM_CMD |	\
        	 MV88E6XXX_FLAG_G2_EEPROM_ADDR)
    Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    855b1932
chip.c 96.2 KB