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;