linux/drivers/mmc/host/s3cmci.h
<<
>>
Prefs
   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
  11enum s3cmci_waitfor {
  12        COMPLETION_NONE,
  13        COMPLETION_FINALIZE,
  14        COMPLETION_CMDSENT,
  15        COMPLETION_RSPFIN,
  16        COMPLETION_XFERFINISH,
  17        COMPLETION_XFERFINISH_RSPFIN,
  18};
  19
  20struct s3cmci_host {
  21        struct platform_device  *pdev;
  22        struct s3c24xx_mci_pdata *pdata;
  23        struct mmc_host         *mmc;
  24        struct resource         *mem;
  25        struct clk              *clk;
  26        void __iomem            *base;
  27        int                     irq;
  28        int                     irq_cd;
  29        struct dma_chan         *dma;
  30
  31        unsigned long           clk_rate;
  32        unsigned long           clk_div;
  33        unsigned long           real_rate;
  34        u8                      prescaler;
  35
  36        int                     is2440;
  37        unsigned                sdiimsk;
  38        unsigned                sdidata;
  39
  40        bool                    irq_disabled;
  41        bool                    irq_enabled;
  42        bool                    irq_state;
  43        int                     sdio_irqen;
  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_bytes;
  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_DEBUG_FS
  72        struct dentry           *debug_root;
  73        struct dentry           *debug_state;
  74        struct dentry           *debug_regs;
  75#endif
  76
  77#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
  78        struct notifier_block   freq_transition;
  79#endif
  80};
  81