Merge tag 'mm-slub-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka...
[linux-2.6-microblaze.git] / drivers / mmc / host / s3cmci.h
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
8 enum s3cmci_waitfor {
9         COMPLETION_NONE,
10         COMPLETION_FINALIZE,
11         COMPLETION_CMDSENT,
12         COMPLETION_RSPFIN,
13         COMPLETION_XFERFINISH,
14         COMPLETION_XFERFINISH_RSPFIN,
15 };
16
17 struct 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 };