diff options
-rw-r--r-- | arch/arm/mach-omap2/hsmmc.c | 67 | ||||
-rw-r--r-- | arch/arm/mach-omap2/id.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/common.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/control.h | 23 |
4 files changed, 38 insertions, 56 deletions
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index c8f647b6205e..87bdb7bfd1bf 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c | |||
@@ -135,10 +135,11 @@ static void omap4_hsmmc1_before_set_reg(struct device *dev, int slot, | |||
135 | * | 135 | * |
136 | * FIXME handle VMMC1A as needed ... | 136 | * FIXME handle VMMC1A as needed ... |
137 | */ | 137 | */ |
138 | reg = omap_ctrl_readl(control_pbias_offset); | 138 | reg = omap4_ctrl_pad_readl(control_pbias_offset); |
139 | reg &= ~(OMAP4_MMC1_PBIASLITE_PWRDNZ | OMAP4_MMC1_PWRDNZ | | 139 | reg &= ~(OMAP4_MMC1_PBIASLITE_PWRDNZ_MASK | |
140 | OMAP4_USBC1_ICUSB_PWRDNZ); | 140 | OMAP4_MMC1_PWRDNZ_MASK | |
141 | omap_ctrl_writel(reg, control_pbias_offset); | 141 | OMAP4_USBC1_ICUSB_PWRDNZ_MASK); |
142 | omap4_ctrl_pad_writel(reg, control_pbias_offset); | ||
142 | } | 143 | } |
143 | 144 | ||
144 | static void omap4_hsmmc1_after_set_reg(struct device *dev, int slot, | 145 | static void omap4_hsmmc1_after_set_reg(struct device *dev, int slot, |
@@ -147,30 +148,33 @@ static void omap4_hsmmc1_after_set_reg(struct device *dev, int slot, | |||
147 | u32 reg; | 148 | u32 reg; |
148 | 149 | ||
149 | if (power_on) { | 150 | if (power_on) { |
150 | reg = omap_ctrl_readl(control_pbias_offset); | 151 | reg = omap4_ctrl_pad_readl(control_pbias_offset); |
151 | reg |= OMAP4_MMC1_PBIASLITE_PWRDNZ; | 152 | reg |= OMAP4_MMC1_PBIASLITE_PWRDNZ_MASK; |
152 | if ((1 << vdd) <= MMC_VDD_165_195) | 153 | if ((1 << vdd) <= MMC_VDD_165_195) |
153 | reg &= ~OMAP4_MMC1_PBIASLITE_VMODE; | 154 | reg &= ~OMAP4_MMC1_PBIASLITE_VMODE_MASK; |
154 | else | 155 | else |
155 | reg |= OMAP4_MMC1_PBIASLITE_VMODE; | 156 | reg |= OMAP4_MMC1_PBIASLITE_VMODE_MASK; |
156 | reg |= (OMAP4_MMC1_PBIASLITE_PWRDNZ | OMAP4_MMC1_PWRDNZ | | 157 | reg |= (OMAP4_MMC1_PBIASLITE_PWRDNZ_MASK | |
157 | OMAP4_USBC1_ICUSB_PWRDNZ); | 158 | OMAP4_MMC1_PWRDNZ_MASK | |
158 | omap_ctrl_writel(reg, control_pbias_offset); | 159 | OMAP4_USBC1_ICUSB_PWRDNZ_MASK); |
160 | omap4_ctrl_pad_writel(reg, control_pbias_offset); | ||
159 | /* 4 microsec delay for comparator to generate an error*/ | 161 | /* 4 microsec delay for comparator to generate an error*/ |
160 | udelay(4); | 162 | udelay(4); |
161 | reg = omap_ctrl_readl(control_pbias_offset); | 163 | reg = omap4_ctrl_pad_readl(control_pbias_offset); |
162 | if (reg & OMAP4_MMC1_PBIASLITE_VMODE_ERROR) { | 164 | if (reg & OMAP4_MMC1_PBIASLITE_VMODE_ERROR_MASK) { |
163 | pr_err("Pbias Voltage is not same as LDO\n"); | 165 | pr_err("Pbias Voltage is not same as LDO\n"); |
164 | /* Caution : On VMODE_ERROR Power Down MMC IO */ | 166 | /* Caution : On VMODE_ERROR Power Down MMC IO */ |
165 | reg &= ~(OMAP4_MMC1_PWRDNZ | OMAP4_USBC1_ICUSB_PWRDNZ); | 167 | reg &= ~(OMAP4_MMC1_PWRDNZ_MASK | |
166 | omap_ctrl_writel(reg, control_pbias_offset); | 168 | OMAP4_USBC1_ICUSB_PWRDNZ_MASK); |
169 | omap4_ctrl_pad_writel(reg, control_pbias_offset); | ||
167 | } | 170 | } |
168 | } else { | 171 | } else { |
169 | reg = omap_ctrl_readl(control_pbias_offset); | 172 | reg = omap4_ctrl_pad_readl(control_pbias_offset); |
170 | reg |= (OMAP4_MMC1_PBIASLITE_PWRDNZ | | 173 | reg |= (OMAP4_MMC1_PBIASLITE_PWRDNZ_MASK | |
171 | OMAP4_MMC1_PBIASLITE_VMODE | OMAP4_MMC1_PWRDNZ | | 174 | OMAP4_MMC1_PWRDNZ_MASK | |
172 | OMAP4_USBC1_ICUSB_PWRDNZ); | 175 | OMAP4_MMC1_PBIASLITE_VMODE_MASK | |
173 | omap_ctrl_writel(reg, control_pbias_offset); | 176 | OMAP4_USBC1_ICUSB_PWRDNZ_MASK); |
177 | omap4_ctrl_pad_writel(reg, control_pbias_offset); | ||
174 | } | 178 | } |
175 | } | 179 | } |
176 | 180 | ||
@@ -218,17 +222,18 @@ void __init omap2_hsmmc_init(struct omap2_hsmmc_info *controllers) | |||
218 | control_devconf1_offset = OMAP343X_CONTROL_DEVCONF1; | 222 | control_devconf1_offset = OMAP343X_CONTROL_DEVCONF1; |
219 | } | 223 | } |
220 | } else { | 224 | } else { |
221 | control_pbias_offset = OMAP44XX_CONTROL_PBIAS_LITE; | 225 | control_pbias_offset = |
222 | control_mmc1 = OMAP44XX_CONTROL_MMC1; | 226 | OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_PBIASLITE; |
223 | reg = omap_ctrl_readl(control_mmc1); | 227 | control_mmc1 = OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_MMC1; |
224 | reg |= (OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP0 | | 228 | reg = omap4_ctrl_pad_readl(control_mmc1); |
225 | OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP1); | 229 | reg |= (OMAP4_SDMMC1_PUSTRENGTH_GRP0_MASK | |
226 | reg &= ~(OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP2 | | 230 | OMAP4_SDMMC1_PUSTRENGTH_GRP1_MASK); |
227 | OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP3); | 231 | reg &= ~(OMAP4_SDMMC1_PUSTRENGTH_GRP2_MASK | |
228 | reg |= (OMAP4_CONTROL_SDMMC1_DR0_SPEEDCTRL | | 232 | OMAP4_SDMMC1_PUSTRENGTH_GRP3_MASK); |
229 | OMAP4_CONTROL_SDMMC1_DR1_SPEEDCTRL | | 233 | reg |= (OMAP4_USBC1_DR0_SPEEDCTRL_MASK| |
230 | OMAP4_CONTROL_SDMMC1_DR2_SPEEDCTRL); | 234 | OMAP4_SDMMC1_DR1_SPEEDCTRL_MASK | |
231 | omap_ctrl_writel(reg, control_mmc1); | 235 | OMAP4_SDMMC1_DR2_SPEEDCTRL_MASK); |
236 | omap4_ctrl_pad_writel(reg, control_mmc1); | ||
232 | } | 237 | } |
233 | 238 | ||
234 | for (c = controllers; c->mmc; c++) { | 239 | for (c = controllers; c->mmc; c++) { |
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 9a879f959509..4808bc968acc 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -60,7 +60,7 @@ int omap_type(void) | |||
60 | } else if (cpu_is_omap34xx()) { | 60 | } else if (cpu_is_omap34xx()) { |
61 | val = omap_ctrl_readl(OMAP343X_CONTROL_STATUS); | 61 | val = omap_ctrl_readl(OMAP343X_CONTROL_STATUS); |
62 | } else if (cpu_is_omap44xx()) { | 62 | } else if (cpu_is_omap44xx()) { |
63 | val = omap_ctrl_readl(OMAP44XX_CONTROL_STATUS); | 63 | val = omap_ctrl_readl(OMAP4_CTRL_MODULE_CORE_STATUS); |
64 | } else { | 64 | } else { |
65 | pr_err("Cannot detect omap type!\n"); | 65 | pr_err("Cannot detect omap type!\n"); |
66 | goto out; | 66 | goto out; |
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index 480718ba4edc..7d668b3b5363 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c | |||
@@ -336,7 +336,7 @@ void __init omap3_map_io(void) | |||
336 | static struct omap_globals omap4_globals = { | 336 | static struct omap_globals omap4_globals = { |
337 | .class = OMAP443X_CLASS, | 337 | .class = OMAP443X_CLASS, |
338 | .tap = OMAP2_L4_IO_ADDRESS(OMAP443X_SCM_BASE), | 338 | .tap = OMAP2_L4_IO_ADDRESS(OMAP443X_SCM_BASE), |
339 | .ctrl = OMAP443X_CTRL_BASE, /* FIXME: Move this to control core */ | 339 | .ctrl = OMAP443X_SCM_BASE, |
340 | .ctrl_pad = OMAP443X_CTRL_BASE, | 340 | .ctrl_pad = OMAP443X_CTRL_BASE, |
341 | .prm = OMAP4430_PRM_BASE, | 341 | .prm = OMAP4430_PRM_BASE, |
342 | .cm = OMAP4430_CM_BASE, | 342 | .cm = OMAP4430_CM_BASE, |
diff --git a/arch/arm/plat-omap/include/plat/control.h b/arch/arm/plat-omap/include/plat/control.h index f571af750b44..19c9b2a82046 100644 --- a/arch/arm/plat-omap/include/plat/control.h +++ b/arch/arm/plat-omap/include/plat/control.h | |||
@@ -208,12 +208,6 @@ | |||
208 | #define OMAP3_PADCONF_SAD2D_MSTANDBY 0x250 | 208 | #define OMAP3_PADCONF_SAD2D_MSTANDBY 0x250 |
209 | #define OMAP3_PADCONF_SAD2D_IDLEACK 0x254 | 209 | #define OMAP3_PADCONF_SAD2D_IDLEACK 0x254 |
210 | 210 | ||
211 | /* 44xx control status register offset */ | ||
212 | #define OMAP44XX_CONTROL_STATUS 0x2c4 | ||
213 | |||
214 | /* 44xx-only CONTROL_GENERAL register offsets */ | ||
215 | #define OMAP44XX_CONTROL_MMC1 0x628 | ||
216 | #define OMAP44XX_CONTROL_PBIAS_LITE 0x600 | ||
217 | /* | 211 | /* |
218 | * REVISIT: This list of registers is not comprehensive - there are more | 212 | * REVISIT: This list of registers is not comprehensive - there are more |
219 | * that should be added. | 213 | * that should be added. |
@@ -259,23 +253,6 @@ | |||
259 | #define OMAP2_PBIASLITEPWRDNZ0 (1 << 1) | 253 | #define OMAP2_PBIASLITEPWRDNZ0 (1 << 1) |
260 | #define OMAP2_PBIASLITEVMODE0 (1 << 0) | 254 | #define OMAP2_PBIASLITEVMODE0 (1 << 0) |
261 | 255 | ||
262 | /* CONTROL_PBIAS_LITE bits for OMAP4 */ | ||
263 | #define OMAP4_MMC1_PWRDNZ (1 << 26) | ||
264 | #define OMAP4_MMC1_PBIASLITE_HIZ_MODE (1 << 25) | ||
265 | #define OMAP4_MMC1_PBIASLITE_SUPPLY_HI_OUT (1 << 24) | ||
266 | #define OMAP4_MMC1_PBIASLITE_VMODE_ERROR (1 << 23) | ||
267 | #define OMAP4_MMC1_PBIASLITE_PWRDNZ (1 << 22) | ||
268 | #define OMAP4_MMC1_PBIASLITE_VMODE (1 << 21) | ||
269 | #define OMAP4_USBC1_ICUSB_PWRDNZ (1 << 20) | ||
270 | |||
271 | #define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP0 (1 << 31) | ||
272 | #define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP1 (1 << 30) | ||
273 | #define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP2 (1 << 29) | ||
274 | #define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP3 (1 << 28) | ||
275 | #define OMAP4_CONTROL_SDMMC1_DR0_SPEEDCTRL (1 << 27) | ||
276 | #define OMAP4_CONTROL_SDMMC1_DR1_SPEEDCTRL (1 << 26) | ||
277 | #define OMAP4_CONTROL_SDMMC1_DR2_SPEEDCTRL (1 << 25) | ||
278 | |||
279 | /* CONTROL_PROG_IO1 bits */ | 256 | /* CONTROL_PROG_IO1 bits */ |
280 | #define OMAP3630_PRG_SDMMC1_SPEEDCTRL (1 << 20) | 257 | #define OMAP3630_PRG_SDMMC1_SPEEDCTRL (1 << 20) |
281 | 258 | ||