aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/sdhci.h
diff options
context:
space:
mode:
authorPierre Ossman <drzeus@drzeus.cx>2006-06-30 05:22:23 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-07-02 11:02:01 -0400
commit146ad66eac836c0b976c98f428d73e1f6a75270d (patch)
tree7f1dd2b34a6225360fab04abffa4c9dd2e124cd2 /drivers/mmc/sdhci.h
parent51f82bc07a9673d790c2a17de8e3fa8046543f04 (diff)
[MMC] sdhci: support for multiple voltages
The sdhci controllers can support up to three voltage levels. Detect which and report back to the MMC layer. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/mmc/sdhci.h')
-rw-r--r--drivers/mmc/sdhci.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/mmc/sdhci.h b/drivers/mmc/sdhci.h
index 3b270ef486b4..aed4abd37bfd 100644
--- a/drivers/mmc/sdhci.h
+++ b/drivers/mmc/sdhci.h
@@ -67,6 +67,10 @@
67#define SDHCI_CTRL_4BITBUS 0x02 67#define SDHCI_CTRL_4BITBUS 0x02
68 68
69#define SDHCI_POWER_CONTROL 0x29 69#define SDHCI_POWER_CONTROL 0x29
70#define SDHCI_POWER_ON 0x01
71#define SDHCI_POWER_180 0x0A
72#define SDHCI_POWER_300 0x0C
73#define SDHCI_POWER_330 0x0E
70 74
71#define SDHCI_BLOCK_GAP_CONTROL 0x2A 75#define SDHCI_BLOCK_GAP_CONTROL 0x2A
72 76
@@ -121,9 +125,12 @@
121/* 3E-3F reserved */ 125/* 3E-3F reserved */
122 126
123#define SDHCI_CAPABILITIES 0x40 127#define SDHCI_CAPABILITIES 0x40
124#define SDHCI_CAN_DO_DMA 0x00400000
125#define SDHCI_CLOCK_BASE_MASK 0x00003F00 128#define SDHCI_CLOCK_BASE_MASK 0x00003F00
126#define SDHCI_CLOCK_BASE_SHIFT 8 129#define SDHCI_CLOCK_BASE_SHIFT 8
130#define SDHCI_CAN_DO_DMA 0x00400000
131#define SDHCI_CAN_VDD_330 0x01000000
132#define SDHCI_CAN_VDD_300 0x02000000
133#define SDHCI_CAN_VDD_180 0x04000000
127 134
128/* 44-47 reserved for more caps */ 135/* 44-47 reserved for more caps */
129 136
@@ -151,6 +158,7 @@ struct sdhci_host {
151 unsigned int max_clk; /* Max possible freq (MHz) */ 158 unsigned int max_clk; /* Max possible freq (MHz) */
152 159
153 unsigned int clock; /* Current clock (MHz) */ 160 unsigned int clock; /* Current clock (MHz) */
161 unsigned short power; /* Current voltage */
154 162
155 struct mmc_request *mrq; /* Current request */ 163 struct mmc_request *mrq; /* Current request */
156 struct mmc_command *cmd; /* Current command */ 164 struct mmc_command *cmd; /* Current command */