diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/mmc-twl4030.c | 11 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/control.h | 3 |
2 files changed, 12 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c index 7bef170686dd..0c3c72d934bf 100644 --- a/arch/arm/mach-omap2/mmc-twl4030.c +++ b/arch/arm/mach-omap2/mmc-twl4030.c | |||
@@ -213,7 +213,7 @@ static int twl4030_mmc_get_context_loss(struct device *dev) | |||
213 | static int twl_mmc1_set_power(struct device *dev, int slot, int power_on, | 213 | static int twl_mmc1_set_power(struct device *dev, int slot, int power_on, |
214 | int vdd) | 214 | int vdd) |
215 | { | 215 | { |
216 | u32 reg; | 216 | u32 reg, prog_io; |
217 | int ret = 0; | 217 | int ret = 0; |
218 | struct twl_mmc_controller *c = &hsmmc[0]; | 218 | struct twl_mmc_controller *c = &hsmmc[0]; |
219 | struct omap_mmc_platform_data *mmc = dev->platform_data; | 219 | struct omap_mmc_platform_data *mmc = dev->platform_data; |
@@ -245,7 +245,14 @@ static int twl_mmc1_set_power(struct device *dev, int slot, int power_on, | |||
245 | } | 245 | } |
246 | 246 | ||
247 | reg = omap_ctrl_readl(control_pbias_offset); | 247 | reg = omap_ctrl_readl(control_pbias_offset); |
248 | reg |= OMAP2_PBIASSPEEDCTRL0; | 248 | if (cpu_is_omap3630()) { |
249 | /* Set MMC I/O to 52Mhz */ | ||
250 | prog_io = omap_ctrl_readl(OMAP343X_CONTROL_PROG_IO1); | ||
251 | prog_io |= OMAP3630_PRG_SDMMC1_SPEEDCTRL; | ||
252 | omap_ctrl_writel(prog_io, OMAP343X_CONTROL_PROG_IO1); | ||
253 | } else { | ||
254 | reg |= OMAP2_PBIASSPEEDCTRL0; | ||
255 | } | ||
249 | reg &= ~OMAP2_PBIASLITEPWRDNZ0; | 256 | reg &= ~OMAP2_PBIASLITEPWRDNZ0; |
250 | omap_ctrl_writel(reg, control_pbias_offset); | 257 | omap_ctrl_writel(reg, control_pbias_offset); |
251 | 258 | ||
diff --git a/arch/arm/plat-omap/include/plat/control.h b/arch/arm/plat-omap/include/plat/control.h index 79985e497c4e..2ae884378638 100644 --- a/arch/arm/plat-omap/include/plat/control.h +++ b/arch/arm/plat-omap/include/plat/control.h | |||
@@ -241,6 +241,9 @@ | |||
241 | #define OMAP2_PBIASLITEPWRDNZ0 (1 << 1) | 241 | #define OMAP2_PBIASLITEPWRDNZ0 (1 << 1) |
242 | #define OMAP2_PBIASLITEVMODE0 (1 << 0) | 242 | #define OMAP2_PBIASLITEVMODE0 (1 << 0) |
243 | 243 | ||
244 | /* CONTROL_PROG_IO1 bits */ | ||
245 | #define OMAP3630_PRG_SDMMC1_SPEEDCTRL (1 << 20) | ||
246 | |||
244 | /* CONTROL_IVA2_BOOTMOD bits */ | 247 | /* CONTROL_IVA2_BOOTMOD bits */ |
245 | #define OMAP3_IVA2_BOOTMOD_SHIFT 0 | 248 | #define OMAP3_IVA2_BOOTMOD_SHIFT 0 |
246 | #define OMAP3_IVA2_BOOTMOD_MASK (0xf << 0) | 249 | #define OMAP3_IVA2_BOOTMOD_MASK (0xf << 0) |