From 63dffacec4d267d239f789d4812ba390ac1784f5 Mon Sep 17 00:00:00 2001 From: Mike Turquette Date: Wed, 5 Aug 2009 09:11:10 -0500 Subject: linux-omap3-pm: OMAP3 kernel recipe to build Kevin Hilman's linux-omap-pm tree Currently tested on Zoom2 and Beagle board. Please test if you have an OMAP3 board! The source tree for this recipe is the latest and greatest power management code for OMAP3. You can find it at http://git.kernel.org/?p=linux/kernel/git/khilman/linux-omap-pm.git;a=summary Signed-off-by: Mike Turquette --- .../zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch | 170 +++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch (limited to 'meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch') 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 000000000..70db8219a --- /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 +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 +Signed-off-by: Chikkature Rajashekar +--- + 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 + -- cgit v1.2.3