mmc: dw_mmc: Support SDIO interrupts for all slots
[linux-2.6.git] / drivers / mmc / host / dw_mmc.h
index 5dd55a7..bfa3c1c 100644 (file)
@@ -43,6 +43,7 @@
 #define SDMMC_USRID            0x068
 #define SDMMC_VERID            0x06c
 #define SDMMC_HCON             0x070
+#define SDMMC_UHS_REG          0x074
 #define SDMMC_BMOD             0x080
 #define SDMMC_PLDMND           0x084
 #define SDMMC_DBADDR           0x088
@@ -51,7 +52,6 @@
 #define SDMMC_DSCADDR          0x094
 #define SDMMC_BUFADDR          0x098
 #define SDMMC_DATA             0x100
-#define SDMMC_DATA_ADR         0x100
 
 /* shift bit field */
 #define _SBF(f, v)             ((v) << (f))
@@ -82,7 +82,7 @@
 #define SDMMC_CTYPE_4BIT               BIT(0)
 #define SDMMC_CTYPE_1BIT               0
 /* Interrupt status & mask register defines */
-#define SDMMC_INT_SDIO                 BIT(16)
+#define SDMMC_INT_SDIO(n)              BIT(16 + (n))
 #define SDMMC_INT_EBE                  BIT(15)
 #define SDMMC_INT_ACD                  BIT(14)
 #define SDMMC_INT_SBE                  BIT(13)
 #define SDMMC_CMD_INDX(n)              ((n) & 0x1F)
 /* Status register defines */
 #define SDMMC_GET_FCNT(x)              (((x)>>17) & 0x1FF)
-#define SDMMC_FIFO_SZ                  32
 /* Internal DMAC interrupt defines */
 #define SDMMC_IDMAC_INT_AI             BIT(9)
 #define SDMMC_IDMAC_INT_NI             BIT(8)
 
 /* Register access macros */
 #define mci_readl(dev, reg)                    \
-       __raw_readl(dev->regs + SDMMC_##reg)
+       __raw_readl((dev)->regs + SDMMC_##reg)
 #define mci_writel(dev, reg, value)                    \
-       __raw_writel((value), dev->regs + SDMMC_##reg)
+       __raw_writel((value), (dev)->regs + SDMMC_##reg)
 
 /* 16-bit FIFO access macros */
 #define mci_readw(dev, reg)                    \
-       __raw_readw(dev->regs + SDMMC_##reg)
+       __raw_readw((dev)->regs + SDMMC_##reg)
 #define mci_writew(dev, reg, value)                    \
-       __raw_writew((value), dev->regs + SDMMC_##reg)
+       __raw_writew((value), (dev)->regs + SDMMC_##reg)
 
 /* 64-bit FIFO access macros */
 #ifdef readq
 #define mci_readq(dev, reg)                    \
-       __raw_readq(dev->regs + SDMMC_##reg)
+       __raw_readq((dev)->regs + SDMMC_##reg)
 #define mci_writeq(dev, reg, value)                    \
-       __raw_writeq((value), dev->regs + SDMMC_##reg)
+       __raw_writeq((value), (dev)->regs + SDMMC_##reg)
 #else
 /*
  * Dummy readq implementation for architectures that don't define it.
  * rest of the code free from ifdefs.
  */
 #define mci_readq(dev, reg)                    \
-       (*(volatile u64 __force *)(dev->regs + SDMMC_##reg))
+       (*(volatile u64 __force *)((dev)->regs + SDMMC_##reg))
 #define mci_writeq(dev, reg, value)                    \
-       (*(volatile u64 __force *)(dev->regs + SDMMC_##reg) = value)
+       (*(volatile u64 __force *)((dev)->regs + SDMMC_##reg) = (value))
 #endif
 
 #endif /* _DW_MMC_H_ */