| /* |
| * 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. |
| */ |
| |
| /* FIXME: DMA Resource management ?! */ |
| #define S3CMCI_DMA 0 |
| |
| 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; |
| int dma; |
| |
| unsigned long clk_rate; |
| unsigned long clk_div; |
| unsigned long real_rate; |
| u8 prescaler; |
| |
| int is2440; |
| unsigned sdiimsk; |
| unsigned sdidata; |
| int dodma; |
| int dmatogo; |
| |
| 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_CPU_FREQ |
| struct notifier_block freq_transition; |
| #endif |
| }; |