diff options
author | Cory Maccarrone <darkstar6262@gmail.com> | 2009-11-22 13:10:50 -0500 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2009-11-22 13:24:32 -0500 |
commit | 490a56652295825e3006f8703d96da2ef6580318 (patch) | |
tree | 03cd6a5ac46ddad12a1a57c67d72cdb84c26ce9f /arch/arm/mach-omap1/devices.c | |
parent | d9f5007491e3b6693dd00487981676b6b3005d72 (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.c | 15 |
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) |