net: dsa: mv88e6352: Use mnemonics for EEPROM registers and bits
authorAndrew Lunn <andrew@lunn.ch>
Sat, 8 Aug 2015 15:04:50 +0000 (17:04 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 10 Aug 2015 21:24:06 +0000 (14:24 -0700)
Add register definitions #defines for accessing the EEPROM.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6352.c
drivers/net/dsa/mv88e6xxx.h

index 191fb2531efef31ae7fe3efef7e9ea06ef70fbf2..a18f7c83d4cb25ca45f1b5878804e54fe87c7dc6 100644 (file)
@@ -123,8 +123,9 @@ static int mv88e6352_read_eeprom_word(struct dsa_switch *ds, int addr)
 
        mutex_lock(&ps->eeprom_mutex);
 
-       ret = mv88e6xxx_reg_write(ds, REG_GLOBAL2, 0x14,
-                                 0xc000 | (addr & 0xff));
+       ret = mv88e6xxx_reg_write(ds, REG_GLOBAL2, GLOBAL2_EEPROM_OP,
+                                 GLOBAL2_EEPROM_OP_READ |
+                                 (addr & GLOBAL2_EEPROM_OP_ADDR_MASK));
        if (ret < 0)
                goto error;
 
@@ -132,7 +133,7 @@ static int mv88e6352_read_eeprom_word(struct dsa_switch *ds, int addr)
        if (ret < 0)
                goto error;
 
-       ret = mv88e6xxx_reg_read(ds, REG_GLOBAL2, 0x15);
+       ret = mv88e6xxx_reg_read(ds, REG_GLOBAL2, GLOBAL2_EEPROM_DATA);
 error:
        mutex_unlock(&ps->eeprom_mutex);
        return ret;
@@ -205,11 +206,11 @@ static int mv88e6352_eeprom_is_readonly(struct dsa_switch *ds)
 {
        int ret;
 
-       ret = mv88e6xxx_reg_read(ds, REG_GLOBAL2, 0x14);
+       ret = mv88e6xxx_reg_read(ds, REG_GLOBAL2, GLOBAL2_EEPROM_OP);
        if (ret < 0)
                return ret;
 
-       if (!(ret & 0x0400))
+       if (!(ret & GLOBAL2_EEPROM_OP_WRITE_EN))
                return -EROFS;
 
        return 0;
@@ -223,12 +224,13 @@ static int mv88e6352_write_eeprom_word(struct dsa_switch *ds, int addr,
 
        mutex_lock(&ps->eeprom_mutex);
 
-       ret = mv88e6xxx_reg_write(ds, REG_GLOBAL2, 0x15, data);
+       ret = mv88e6xxx_reg_write(ds, REG_GLOBAL2, GLOBAL2_EEPROM_DATA, data);
        if (ret < 0)
                goto error;
 
-       ret = mv88e6xxx_reg_write(ds, REG_GLOBAL2, 0x14,
-                                 0xb000 | (addr & 0xff));
+       ret = mv88e6xxx_reg_write(ds, REG_GLOBAL2, GLOBAL2_EEPROM_OP,
+                                 GLOBAL2_EEPROM_OP_WRITE |
+                                 (addr & GLOBAL2_EEPROM_OP_ADDR_MASK));
        if (ret < 0)
                goto error;
 
index a8c727d846dd7037b579fea05ad85b246d2a88bb..a94c0cbb3813cd67d873e2ec748734cad6997252 100644 (file)
 #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