/* | |
* linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver | |
* | |
* Copyright (C) 2004-2006 Thomas Kleffel, All Rights Reserved. | |
* | |
* This program is free software; you can redistribute it and/or modify | |
* it under the terms of the GNU General Public License version 2 as | |
* published by the Free Software Foundation. | |
*/ | |
enum s3cmci_waitfor { | |
COMPLETION_NONE, | |
COMPLETION_FINALIZE, | |
COMPLETION_CMDSENT, | |
COMPLETION_RSPFIN, | |
COMPLETION_XFERFINISH, | |
COMPLETION_XFERFINISH_RSPFIN, | |
}; | |
struct s3cmci_host { | |
struct platform_device *pdev; | |
struct s3c24xx_mci_pdata *pdata; | |
struct mmc_host *mmc; | |
struct resource *mem; | |
struct clk *clk; | |
void __iomem *base; | |
int irq; | |
int irq_cd; | |
struct dma_chan *dma; | |
unsigned long clk_rate; | |
unsigned long clk_div; | |
unsigned long real_rate; | |
u8 prescaler; | |
int is2440; | |
unsigned sdiimsk; | |
unsigned sdidata; | |
bool irq_disabled; | |
bool irq_enabled; | |
bool irq_state; | |
int sdio_irqen; | |
struct mmc_request *mrq; | |
int cmd_is_stop; | |
spinlock_t complete_lock; | |
enum s3cmci_waitfor complete_what; | |
int dma_complete; | |
u32 pio_sgptr; | |
u32 pio_bytes; | |
u32 pio_count; | |
u32 *pio_ptr; | |
#define XFER_NONE 0 | |
#define XFER_READ 1 | |
#define XFER_WRITE 2 | |
u32 pio_active; | |
int bus_width; | |
char dbgmsg_cmd[301]; | |
char dbgmsg_dat[301]; | |
char *status; | |
unsigned int ccnt, dcnt; | |
struct tasklet_struct pio_tasklet; | |
#ifdef CONFIG_DEBUG_FS | |
struct dentry *debug_root; | |
struct dentry *debug_state; | |
struct dentry *debug_regs; | |
#endif | |
#ifdef CONFIG_ARM_S3C24XX_CPUFREQ | |
struct notifier_block freq_transition; | |
#endif | |
}; |