diff options
author | Mike Turquette <mturquette@ti.com> | 2009-08-05 09:11:10 -0500 |
---|---|---|
committer | Mike Turquette <mturquette@ti.com> | 2009-08-05 09:11:10 -0500 |
commit | 63dffacec4d267d239f789d4812ba390ac1784f5 (patch) | |
tree | 20b540484e4932b44e7b240a9ff93dc8ba7e952f /meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch | |
parent | 5e88a54c71ac4ad701e26886834644c6ade89ae6 (diff) | |
download | openembedded-core-63dffacec4d267d239f789d4812ba390ac1784f5.tar.gz openembedded-core-63dffacec4d267d239f789d4812ba390ac1784f5.tar.bz2 openembedded-core-63dffacec4d267d239f789d4812ba390ac1784f5.tar.xz openembedded-core-63dffacec4d267d239f789d4812ba390ac1784f5.zip |
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 <mturquette@ti.com>
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 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 <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 + |