s3cmci.h revision f87e6d00fbd367f2d61fd600b5f8bd6e39d63f3f
1/* 2 * linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver 3 * 4 * Copyright (C) 2004-2006 Thomas Kleffel, All Rights Reserved. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 */ 10 11/* FIXME: DMA Resource management ?! */ 12#define S3CMCI_DMA 0 13 14enum s3cmci_waitfor { 15 COMPLETION_NONE, 16 COMPLETION_FINALIZE, 17 COMPLETION_CMDSENT, 18 COMPLETION_RSPFIN, 19 COMPLETION_XFERFINISH, 20 COMPLETION_XFERFINISH_RSPFIN, 21}; 22 23struct s3cmci_host { 24 struct platform_device *pdev; 25 struct s3c24xx_mci_pdata *pdata; 26 struct mmc_host *mmc; 27 struct resource *mem; 28 struct clk *clk; 29 void __iomem *base; 30 int irq; 31 int irq_cd; 32 int dma; 33 34 unsigned long clk_rate; 35 unsigned long clk_div; 36 unsigned long real_rate; 37 u8 prescaler; 38 39 int is2440; 40 unsigned sdiimsk; 41 unsigned sdidata; 42 int dodma; 43 int dmatogo; 44 45 struct mmc_request *mrq; 46 int cmd_is_stop; 47 48 spinlock_t complete_lock; 49 enum s3cmci_waitfor complete_what; 50 51 int dma_complete; 52 53 u32 pio_sgptr; 54 u32 pio_words; 55 u32 pio_count; 56 u32 *pio_ptr; 57#define XFER_NONE 0 58#define XFER_READ 1 59#define XFER_WRITE 2 60 u32 pio_active; 61 62 int bus_width; 63 64 char dbgmsg_cmd[301]; 65 char dbgmsg_dat[301]; 66 char *status; 67 68 unsigned int ccnt, dcnt; 69 struct tasklet_struct pio_tasklet; 70 71#ifdef CONFIG_CPU_FREQ 72 struct notifier_block freq_transition; 73#endif 74}; 75