[ar71xx] add definitions for some magic values in the spi_vsc7385 driver
[openwrt/svn-archive/archive.git] / target / linux / ar71xx / files / drivers / spi / spi_vsc7385.c
index c270b0f05a9e82720983f9150570c6711fb55be3..14952c663b834fae176193f7ec22f25edfe5a889 100644 (file)
 #define VSC73XX_ICPU_CTRL_CLK_EN       (1 << 1)
 #define VSC73XX_ICPU_CTRL_SRST         (1 << 0)
 
+#define VSC73XX_ICPU_CHIPID_ID_SHIFT   12
+#define VSC73XX_ICPU_CHIPID_ID_MASK    0xffff
+#define VSC73XX_ICPU_CHIPID_REV_SHIFT  28
+#define VSC73XX_ICPU_CHIPID_REV_MASK   0xf
+#define VSC73XX_ICPU_CHIPID_ID_7385    0x7385
+#define VSC73XX_ICPU_CHIPID_ID_7395    0x7395
+
 #define VSC73XX_CMD_MODE_READ          0
 #define VSC73XX_CMD_MODE_WRITE         1
 #define VSC73XX_CMD_MODE_SHIFT         4
@@ -494,16 +501,18 @@ static int vsc7385_detect(struct vsc7385 *vsc)
                return err;
        }
 
-       id = (t >> 12) & 0xffff;
+       id = (t >> VSC73XX_ICPU_CHIPID_ID_SHIFT) & VSC73XX_ICPU_CHIPID_ID_MASK;
        switch (id) {
-       case 0x7385:
+       case VSC73XX_ICPU_CHIPID_ID_7385:
+       case VSC73XX_ICPU_CHIPID_ID_7395:
                break;
        default:
                dev_err(&spi->dev, "unsupported chip, id=%04x\n", id);
                return -ENODEV;
        }
 
-       rev = (t >> 28) & 0xf;
+       rev = (t >> VSC73XX_ICPU_CHIPID_REV_SHIFT) &
+             VSC73XX_ICPU_CHIPID_REV_MASK;
        dev_info(&spi->dev, "VSC%04X (rev. %d) switch found \n", id, rev);
 
        return 0;