diff options
Diffstat (limited to 'meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch')
-rw-r--r-- | meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch b/meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch new file mode 100644 index 0000000000..70db8219ae --- /dev/null +++ b/meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch @@ -0,0 +1,170 @@ +From be0e1c0f2f529d6f5adb9c5050731d881874c34b Mon Sep 17 00:00:00 2001 +From: Vikram Pandita <vikram.pandita@ti.com> +Date: Thu, 18 Jun 2009 13:40:08 -0500 +Subject: [PATCH 1/8] OMAP3: MMC: Add mux for pins + +For OMAP3 add MMC1 MMC2 pin mux + +Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> +Signed-off-by: Chikkature Rajashekar <madhu.cr@ti.com> +--- + arch/arm/mach-omap2/devices.c | 42 ++++++++++++++++++++++++++++ + arch/arm/mach-omap2/mux.c | 49 +++++++++++++++++++++++++++++++++ + arch/arm/plat-omap/include/mach/mux.h | 28 +++++++++++++++++++ + 3 files changed, 119 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c +index 81f47d9..243815e 100644 +--- a/arch/arm/mach-omap2/devices.c ++++ b/arch/arm/mach-omap2/devices.c +@@ -455,6 +455,48 @@ static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller, + omap_ctrl_writel(v, OMAP2_CONTROL_DEVCONF0); + } + } ++ ++ if (cpu_is_omap3430()) { ++ if (controller_nr == 0) { ++ omap_cfg_reg(N28_3430_MMC1_CLK); ++ omap_cfg_reg(M27_3430_MMC1_CMD); ++ omap_cfg_reg(N27_3430_MMC1_DAT0); ++ if (mmc_controller->slots[0].wires == 4 || ++ mmc_controller->slots[0].wires == 8) { ++ omap_cfg_reg(N26_3430_MMC1_DAT1); ++ omap_cfg_reg(N25_3430_MMC1_DAT2); ++ omap_cfg_reg(P28_3430_MMC1_DAT3); ++ } ++ if (mmc_controller->slots[0].wires == 8) { ++ omap_cfg_reg(P27_3430_MMC1_DAT4); ++ omap_cfg_reg(P26_3430_MMC1_DAT5); ++ omap_cfg_reg(R27_3430_MMC1_DAT6); ++ omap_cfg_reg(R25_3430_MMC1_DAT7); ++ } ++ } ++ if (controller_nr == 1) { ++ /* MMC2 */ ++ omap_cfg_reg(AE2_3430_MMC2_CLK); ++ omap_cfg_reg(AG5_3430_MMC2_CMD); ++ omap_cfg_reg(AH5_3430_MMC2_DAT0); ++ if (mmc_controller->slots[0].wires == 4 || ++ mmc_controller->slots[0].wires == 8) { ++ omap_cfg_reg(AH4_3430_MMC2_DAT1); ++ omap_cfg_reg(AG4_3430_MMC2_DAT2); ++ omap_cfg_reg(AF4_3430_MMC2_DAT3); ++ } ++ if (mmc_controller->slots[0].wires == 8) ++ printk(KERN_WARNING ++ "\n MMC2: DAT4, DAT5, DAT6, DAT7: " ++ "Setup the mux in board file"); ++ } ++ if (controller_nr == 2) { ++ /* MMC3 */ ++ printk(KERN_WARNING ++ "\n MMC3: Setup the mux in board file: " ++ "Multiple options exist, so is board specific"); ++ } ++ } + } + + #define MAX_OMAP_MMC_HWMOD_NAME_LEN 16 +diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c +index 026c4fc..d49b9a7 100644 +--- a/arch/arm/mach-omap2/mux.c ++++ b/arch/arm/mach-omap2/mux.c +@@ -486,6 +486,55 @@ MUX_CFG_34XX("H19_34XX_GPIO164_OUT", 0x19c, + OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_OUTPUT) + MUX_CFG_34XX("J25_34XX_GPIO170", 0x1c6, + OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT) ++/* MMC1 */ ++MUX_CFG_34XX("N28_3430_MMC1_CLK", 0x144, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("M27_3430_MMC1_CMD", 0x146, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("N27_3430_MMC1_DAT0", 0x148, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("N26_3430_MMC1_DAT1", 0x14a, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("N25_3430_MMC1_DAT2", 0x14c, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("P28_3430_MMC1_DAT3", 0x14e, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("P27_3430_MMC1_DAT4", 0x150, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("P26_3430_MMC1_DAT5", 0x152, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("R27_3430_MMC1_DAT6", 0x154, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("R25_3430_MMC1_DAT7", 0x156, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++ ++/* MMC2 */ ++MUX_CFG_34XX("AE2_3430_MMC2_CLK", 0x158, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("AG5_3430_MMC2_CMD", 0x15A, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("AH5_3430_MMC2_DAT0", 0x15c, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("AH4_3430_MMC2_DAT1", 0x15e, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("AG4_3430_MMC2_DAT2", 0x160, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("AF4_3430_MMC2_DAT3", 0x162, ++ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP) ++ ++/* MMC3 */ ++MUX_CFG_34XX("AF10_3430_MMC3_CLK", 0x5d8, ++ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("AC3_3430_MMC3_CMD", 0x1d0, ++ OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("AE11_3430_MMC3_DAT0", 0x5e4, ++ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("AH9_3430_MMC3_DAT1", 0x5e6, ++ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("AF13_3430_MMC3_DAT2", 0x5e8, ++ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP) ++MUX_CFG_34XX("AF13_3430_MMC3_DAT3", 0x5e2, ++ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP) + }; + + #define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins) +diff --git a/arch/arm/plat-omap/include/mach/mux.h b/arch/arm/plat-omap/include/mach/mux.h +index 85a6217..d24fdf9 100644 +--- a/arch/arm/plat-omap/include/mach/mux.h ++++ b/arch/arm/plat-omap/include/mach/mux.h +@@ -853,6 +853,34 @@ enum omap34xx_index { + AE5_34XX_GPIO143, + H19_34XX_GPIO164_OUT, + J25_34XX_GPIO170, ++ ++ /* MMC1 */ ++ N28_3430_MMC1_CLK, ++ M27_3430_MMC1_CMD, ++ N27_3430_MMC1_DAT0, ++ N26_3430_MMC1_DAT1, ++ N25_3430_MMC1_DAT2, ++ P28_3430_MMC1_DAT3, ++ P27_3430_MMC1_DAT4, ++ P26_3430_MMC1_DAT5, ++ R27_3430_MMC1_DAT6, ++ R25_3430_MMC1_DAT7, ++ ++ /* MMC2 */ ++ AE2_3430_MMC2_CLK, ++ AG5_3430_MMC2_CMD, ++ AH5_3430_MMC2_DAT0, ++ AH4_3430_MMC2_DAT1, ++ AG4_3430_MMC2_DAT2, ++ AF4_3430_MMC2_DAT3, ++ ++ /* MMC3 */ ++ AF10_3430_MMC3_CLK, ++ AC3_3430_MMC3_CMD, ++ AE11_3430_MMC3_DAT0, ++ AH9_3430_MMC3_DAT1, ++ AF13_3430_MMC3_DAT2, ++ AF13_3430_MMC3_DAT3, + }; + + struct omap_mux_cfg { +-- +1.6.3.2 + |