#include <linux/regulator/consumer.h>
-enum glamo_mci_waitfor {
- COMPLETION_NONE,
- COMPLETION_FINALIZE,
- COMPLETION_CMDSENT,
- COMPLETION_RSPFIN,
- COMPLETION_XFERFINISH,
- COMPLETION_XFERFINISH_RSPFIN,
-};
-
struct glamo_mci_host {
- struct platform_device *pdev;
- struct glamo_mci_pdata *pdata;
- struct mmc_host *mmc;
- struct resource *mem;
- struct resource *mem_data;
- struct clk *clk;
- void __iomem *base;
- u16 __iomem *base_data;
- int irq;
- int irq_cd;
- int dma;
- int data_max_size;
-
- int suspending;
-
- int power_mode_current;
- unsigned int vdd_current;
-
- unsigned long clk_rate;
- unsigned long clk_div;
- unsigned long real_rate;
- u8 prescaler;
-
- int force_slow_during_powerup;
-
- unsigned sdiimsk;
- int dodma;
-
- volatile int dmatogo;
+ struct platform_device *pdev;
+ struct glamo_mmc_platform_data *pdata;
+ struct mmc_host *mmc;
+ struct resource *mmio_mem;
+ struct resource *data_mem;
+ void __iomem *mmio_base;
+ u16 __iomem *data_base;
- struct mmc_request *mrq;
- int cmd_is_stop;
- struct work_struct irq_work;
+ int suspending;
- spinlock_t complete_lock;
- volatile enum glamo_mci_waitfor
- complete_what;
+ int power_mode_current;
+ unsigned int vdd_current;
- volatile int dma_complete;
+ unsigned long clk_rate;
+ unsigned long clk_div;
+ unsigned long real_rate;
- volatile u32 pio_sgptr;
- volatile u32 pio_words;
- volatile u32 pio_count;
- volatile u16 *pio_ptr;
-#define XFER_NONE 0
-#define XFER_READ 1
-#define XFER_WRITE 2
- volatile u32 pio_active;
+ int force_slow_during_powerup;
- int bus_width;
+ struct mmc_request *mrq;
+ struct work_struct irq_work;
- char dbgmsg_cmd[301];
- char dbgmsg_dat[301];
- volatile char *status;
+ spinlock_t lock;
- unsigned int ccnt, dcnt;
- struct tasklet_struct pio_tasklet;
+ unsigned int request_counter;
- struct regulator *regulator;
+ struct regulator *regulator;
};