aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap1/devices.c
diff options
context:
space:
mode:
authorCory Maccarrone <darkstar6262@gmail.com>2009-11-22 13:10:50 -0500
committerTony Lindgren <tony@atomide.com>2009-11-22 13:24:32 -0500
commit490a56652295825e3006f8703d96da2ef6580318 (patch)
tree03cd6a5ac46ddad12a1a57c67d72cdb84c26ce9f /arch/arm/mach-omap1/devices.c
parentd9f5007491e3b6693dd00487981676b6b3005d72 (diff)
omap1: mmc: Add platform init for omap7xx
The MMC mux pins normally used by omap chips in devices.c are different from what is needed by omap7xx chips. This change adds a conditional around the mux setup code to enable the correct mux pins. The omap730 and omap850 both use a different clock for the "fck" clock of the MMC interface than other omap processors based on the SOFT_REQ_REG, pin 12. The "ick" clock is the same as that used by other omap processors. * Added the missing clock definition as mmc3_ck to clock.h * Added the clock definition to omap_clks in clock.c * Added CK_7XX to the mmci-omap.0 "ick" clock already in clock.c With these changes, it is now possible to initialize and use MMC cards with omap730 and omap850 devices. Signed-off-by: Cory Maccarrone <darkstar6262@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap1/devices.c')
-rw-r--r--arch/arm/mach-omap1/devices.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c
index 6d2f72dcbb04..23ded2d49600 100644
--- a/arch/arm/mach-omap1/devices.c
+++ b/arch/arm/mach-omap1/devices.c
@@ -108,15 +108,22 @@ static inline void omap1_mmc_mux(struct omap_mmc_platform_data *mmc_controller,
108 int controller_nr) 108 int controller_nr)
109{ 109{
110 if (controller_nr == 0) { 110 if (controller_nr == 0) {
111 omap_cfg_reg(MMC_CMD); 111 if (cpu_is_omap7xx()) {
112 omap_cfg_reg(MMC_CLK); 112 omap_cfg_reg(MMC_7XX_CMD);
113 omap_cfg_reg(MMC_DAT0); 113 omap_cfg_reg(MMC_7XX_CLK);
114 omap_cfg_reg(MMC_7XX_DAT0);
115 } else {
116 omap_cfg_reg(MMC_CMD);
117 omap_cfg_reg(MMC_CLK);
118 omap_cfg_reg(MMC_DAT0);
119 }
120
114 if (cpu_is_omap1710()) { 121 if (cpu_is_omap1710()) {
115 omap_cfg_reg(M15_1710_MMC_CLKI); 122 omap_cfg_reg(M15_1710_MMC_CLKI);
116 omap_cfg_reg(P19_1710_MMC_CMDDIR); 123 omap_cfg_reg(P19_1710_MMC_CMDDIR);
117 omap_cfg_reg(P20_1710_MMC_DATDIR0); 124 omap_cfg_reg(P20_1710_MMC_DATDIR0);
118 } 125 }
119 if (mmc_controller->slots[0].wires == 4) { 126 if (mmc_controller->slots[0].wires == 4 && !cpu_is_omap7xx()) {
120 omap_cfg_reg(MMC_DAT1); 127 omap_cfg_reg(MMC_DAT1);
121 /* NOTE: DAT2 can be on W10 (here) or M15 */ 128 /* NOTE: DAT2 can be on W10 (here) or M15 */
122 if (!mmc_controller->slots[0].nomux) 129 if (!mmc_controller->slots[0].nomux)