• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/mmc/host/
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	int			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	int			dodma;
40	int			dmatogo;
41
42	bool			irq_disabled;
43	bool			irq_enabled;
44	bool			irq_state;
45	int			sdio_irqen;
46
47	struct mmc_request	*mrq;
48	int			cmd_is_stop;
49
50	spinlock_t		complete_lock;
51	enum s3cmci_waitfor	complete_what;
52
53	int			dma_complete;
54
55	u32			pio_sgptr;
56	u32			pio_bytes;
57	u32			pio_count;
58	u32			*pio_ptr;
59#define XFER_NONE 0
60#define XFER_READ 1
61#define XFER_WRITE 2
62	u32			pio_active;
63
64	int			bus_width;
65
66	char 			dbgmsg_cmd[301];
67	char 			dbgmsg_dat[301];
68	char			*status;
69
70	unsigned int		ccnt, dcnt;
71	struct tasklet_struct	pio_tasklet;
72
73#ifdef CONFIG_DEBUG_FS
74	struct dentry		*debug_root;
75	struct dentry		*debug_state;
76	struct dentry		*debug_regs;
77#endif
78
79#ifdef CONFIG_CPU_FREQ
80	struct notifier_block	freq_transition;
81#endif
82};
83