summaryrefslogtreecommitdiff
path: root/meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch
diff options
context:
space:
mode:
authorMike Turquette <mturquette@ti.com>2009-08-05 09:11:10 -0500
committerMike Turquette <mturquette@ti.com>2009-08-05 09:11:10 -0500
commit63dffacec4d267d239f789d4812ba390ac1784f5 (patch)
tree20b540484e4932b44e7b240a9ff93dc8ba7e952f /meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch
parent5e88a54c71ac4ad701e26886834644c6ade89ae6 (diff)
downloadopenembedded-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.patch170
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
+