2008-07-01 01:40:24 +04:00
/*
* 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 ;
2008-07-01 01:40:29 +04:00
struct s3c24xx_mci_pdata * pdata ;
2008-07-01 01:40:24 +04:00
struct mmc_host * mmc ;
struct resource * mem ;
struct clk * clk ;
void __iomem * base ;
int irq ;
int irq_cd ;
2014-06-01 21:22:09 +04:00
struct dma_chan * dma ;
2008-07-01 01:40:24 +04:00
unsigned long clk_rate ;
unsigned long clk_div ;
unsigned long real_rate ;
u8 prescaler ;
int is2440 ;
unsigned sdiimsk ;
unsigned sdidata ;
2009-10-02 02:44:18 +04:00
bool irq_disabled ;
bool irq_enabled ;
bool irq_state ;
int sdio_irqen ;
2008-07-01 01:40:24 +04:00
struct mmc_request * mrq ;
int cmd_is_stop ;
spinlock_t complete_lock ;
enum s3cmci_waitfor complete_what ;
int dma_complete ;
u32 pio_sgptr ;
2008-10-15 03:17:17 +04:00
u32 pio_bytes ;
2008-07-01 01:40:24 +04:00
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 ;
2008-10-15 03:17:16 +04:00
2009-10-02 02:44:17 +04:00
# ifdef CONFIG_DEBUG_FS
struct dentry * debug_root ;
struct dentry * debug_state ;
struct dentry * debug_regs ;
# endif
2016-06-27 15:52:03 +03:00
# ifdef CONFIG_ARM_S3C24XX_CPUFREQ
2008-10-15 03:17:16 +04:00
struct notifier_block freq_transition ;
# endif
2008-07-01 01:40:24 +04:00
} ;