linux/drivers/mmc/host/s3cmci.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 *  linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver
   4 *
   5 *  Copyright (C) 2004-2006 Thomas Kleffel, All Rights Reserved.
   6 */
   7
   8enum s3cmci_waitfor {
   9        COMPLETION_NONE,
  10        COMPLETION_FINALIZE,
  11        COMPLETION_CMDSENT,
  12        COMPLETION_RSPFIN,
  13        COMPLETION_XFERFINISH,
  14        COMPLETION_XFERFINISH_RSPFIN,
  15};
  16
  17struct s3cmci_host {
  18        struct platform_device  *pdev;
  19        struct s3c24xx_mci_pdata *pdata;
  20        struct mmc_host         *mmc;
  21        struct resource         *mem;
  22        struct clk              *clk;
  23        void __iomem            *base;
  24        int                     irq;
  25        int                     irq_cd;
  26        struct dma_chan         *dma;
  27
  28        unsigned long           clk_rate;
  29        unsigned long           clk_div;
  30        unsigned long           real_rate;
  31        u8                      prescaler;
  32
  33        int                     is2440;
  34        unsigned                sdiimsk;
  35        unsigned                sdidata;
  36
  37        bool                    irq_disabled;
  38        bool                    irq_enabled;
  39        bool                    irq_state;
  40        int                     sdio_irqen;
  41
  42        struct mmc_request      *mrq;
  43        int                     cmd_is_stop;
  44
  45        spinlock_t              complete_lock;
  46        enum s3cmci_waitfor     complete_what;
  47
  48        int                     dma_complete;
  49
  50        u32                     pio_sgptr;
  51        u32                     pio_bytes;
  52        u32                     pio_count;
  53        u32                     *pio_ptr;
  54#define XFER_NONE 0
  55#define XFER_READ 1
  56#define XFER_WRITE 2
  57        u32                     pio_active;
  58
  59        int                     bus_width;
  60
  61        char                    dbgmsg_cmd[301];
  62        char                    dbgmsg_dat[301];
  63        char                    *status;
  64
  65        unsigned int            ccnt, dcnt;
  66        struct tasklet_struct   pio_tasklet;
  67
  68#ifdef CONFIG_DEBUG_FS
  69        struct dentry           *debug_root;
  70#endif
  71
  72#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
  73        struct notifier_block   freq_transition;
  74#endif
  75};
  76