2 * linux/drivers/mmc/host/glamo-mmc.h - GLAMO MCI driver
4 * Copyright (C) 2007-2008 Openmoko, Inc, Andy Green <andy@openmoko.com>
5 * based on S3C MMC driver -->
6 * Copyright (C) 2004-2006 Thomas Kleffel, All Rights Reserved.
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
13 #include <linux/regulator/consumer.h>
15 enum glamo_mci_waitfor
{
20 COMPLETION_XFERFINISH
,
21 COMPLETION_XFERFINISH_RSPFIN
,
24 struct glamo_mci_host
{
25 struct platform_device
*pdev
;
26 struct glamo_mci_pdata
*pdata
;
29 struct resource
*mem_data
;
32 u16 __iomem
*base_data
;
40 int power_mode_current
;
41 unsigned int vdd_current
;
43 unsigned long clk_rate
;
44 unsigned long clk_div
;
45 unsigned long real_rate
;
48 int force_slow_during_powerup
;
55 struct mmc_request
*mrq
;
57 struct work_struct irq_work
;
59 spinlock_t complete_lock
;
60 volatile enum glamo_mci_waitfor
63 volatile int dma_complete
;
65 volatile u32 pio_sgptr
;
66 volatile u32 pio_words
;
67 volatile u32 pio_count
;
68 volatile u16
*pio_ptr
;
72 volatile u32 pio_active
;
78 volatile char *status
;
80 unsigned int ccnt
, dcnt
;
81 struct tasklet_struct pio_tasklet
;
83 struct regulator
*regulator
;