* [PATCH 2/2] OMAP3: MMC: Add mux for pins
@ 2009-06-15 23:37 Vikram Pandita
2009-06-22 13:06 ` Tony Lindgren
0 siblings, 1 reply; 3+ messages in thread
From: Vikram Pandita @ 2009-06-15 23:37 UTC (permalink / raw)
To: linux-omap; +Cc: Vikram Pandita, Chikkature Rajashekar
For OMAP3 add MMC1 MMC2 and MMC3 pin mux
Signed-off-by: Chikkature Rajashekar <madhu.cr@ti.com>
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
---
arch/arm/mach-omap2/devices.c | 33 ++++++++++++++++++++++
arch/arm/mach-omap2/mux.c | 49 +++++++++++++++++++++++++++++++++
arch/arm/plat-omap/include/mach/mux.h | 28 +++++++++++++++++++
3 files changed, 110 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 894cc35..7b87543 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -513,6 +513,39 @@ 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 && (!mmc_controller->slots[0].nomux)) {
+ omap_cfg_reg(N28_3430_MMC1_CLK);
+ omap_cfg_reg(M27_3430_MMC1_CMD);
+ omap_cfg_reg(N27_3430_MMC1_DAT0);
+ omap_cfg_reg(N26_3430_MMC1_DAT1);
+ omap_cfg_reg(N25_3430_MMC1_DAT2);
+ omap_cfg_reg(P28_3430_MMC1_DAT3);
+ 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 && (!mmc_controller->slots[0].nomux)) {
+ /* MMC2 */
+ omap_cfg_reg(AE2_3430_MMC2_CLK);
+ omap_cfg_reg(AG5_3430_MMC2_CMD);
+ omap_cfg_reg(AH5_3430_MMC2_DAT0);
+ omap_cfg_reg(AH4_3430_MMC2_DAT1);
+ omap_cfg_reg(AG4_3430_MMC2_DAT2);
+ omap_cfg_reg(AF4_3430_MMC2_DAT3);
+ }
+ if (controller_nr == 2 && (!mmc_controller->slots[0].nomux)) {
+ /* MMC3 */
+ omap_cfg_reg(AF10_3430_MMC3_CLK);
+ omap_cfg_reg(AC3_3430_MMC3_CMD);
+ omap_cfg_reg(AE11_3430_MMC3_DAT0);
+ omap_cfg_reg(AH9_3430_MMC3_DAT1);
+ omap_cfg_reg(AF13_3430_MMC3_DAT2);
+ omap_cfg_reg(AF13_3430_MMC3_DAT3);
+ }
+ }
}
void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
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.0.3.613.g9f8f13
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 2/2] OMAP3: MMC: Add mux for pins
2009-06-15 23:37 [PATCH 2/2] OMAP3: MMC: Add mux for pins Vikram Pandita
@ 2009-06-22 13:06 ` Tony Lindgren
2009-06-22 16:15 ` Pandita, Vikram
0 siblings, 1 reply; 3+ messages in thread
From: Tony Lindgren @ 2009-06-22 13:06 UTC (permalink / raw)
To: Vikram Pandita; +Cc: linux-omap, Chikkature Rajashekar
* Vikram Pandita <vikram.pandita@ti.com> [090616 02:39]:
> For OMAP3 add MMC1 MMC2 and MMC3 pin mux
>
> Signed-off-by: Chikkature Rajashekar <madhu.cr@ti.com>
> Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
> ---
> arch/arm/mach-omap2/devices.c | 33 ++++++++++++++++++++++
> arch/arm/mach-omap2/mux.c | 49 +++++++++++++++++++++++++++++++++
> arch/arm/plat-omap/include/mach/mux.h | 28 +++++++++++++++++++
> 3 files changed, 110 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
> index 894cc35..7b87543 100644
> --- a/arch/arm/mach-omap2/devices.c
> +++ b/arch/arm/mach-omap2/devices.c
> @@ -513,6 +513,39 @@ 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 && (!mmc_controller->slots[0].nomux)) {
> + omap_cfg_reg(N28_3430_MMC1_CLK);
> + omap_cfg_reg(M27_3430_MMC1_CMD);
> + omap_cfg_reg(N27_3430_MMC1_DAT0);
> + omap_cfg_reg(N26_3430_MMC1_DAT1);
> + omap_cfg_reg(N25_3430_MMC1_DAT2);
> + omap_cfg_reg(P28_3430_MMC1_DAT3);
> + 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 && (!mmc_controller->slots[0].nomux)) {
> + /* MMC2 */
> + omap_cfg_reg(AE2_3430_MMC2_CLK);
> + omap_cfg_reg(AG5_3430_MMC2_CMD);
> + omap_cfg_reg(AH5_3430_MMC2_DAT0);
> + omap_cfg_reg(AH4_3430_MMC2_DAT1);
> + omap_cfg_reg(AG4_3430_MMC2_DAT2);
> + omap_cfg_reg(AF4_3430_MMC2_DAT3);
> + }
> + if (controller_nr == 2 && (!mmc_controller->slots[0].nomux)) {
> + /* MMC3 */
> + omap_cfg_reg(AF10_3430_MMC3_CLK);
> + omap_cfg_reg(AC3_3430_MMC3_CMD);
> + omap_cfg_reg(AE11_3430_MMC3_DAT0);
> + omap_cfg_reg(AH9_3430_MMC3_DAT1);
> + omap_cfg_reg(AF13_3430_MMC3_DAT2);
> + omap_cfg_reg(AF13_3430_MMC3_DAT3);
> + }
> + }
> }
Just for reference, I'll summarize what we've discussed in the other related
thread:
- Since we support muxing by both the bootloader and kernel,
adding nomux flag is dangerous
- We can only mux the pins that don't have alternative outputs
Regards,
Tony
>
> void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
> 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.0.3.613.g9f8f13
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH 2/2] OMAP3: MMC: Add mux for pins
2009-06-22 13:06 ` Tony Lindgren
@ 2009-06-22 16:15 ` Pandita, Vikram
0 siblings, 0 replies; 3+ messages in thread
From: Pandita, Vikram @ 2009-06-22 16:15 UTC (permalink / raw)
To: Tony Lindgren
Cc: linux-omap@vger.kernel.org, Chikkature Rajashekar, Madhusudhan
>-----Original Message-----
>From: Tony Lindgren [mailto:tony@atomide.com]
>Sent: Monday, June 22, 2009 8:07 AM
>To: Pandita, Vikram
>Cc: linux-omap@vger.kernel.org; Chikkature Rajashekar, Madhusudhan
>Subject: Re: [PATCH 2/2] OMAP3: MMC: Add mux for pins
>
>* Vikram Pandita <vikram.pandita@ti.com> [090616 02:39]:
>> For OMAP3 add MMC1 MMC2 and MMC3 pin mux
>>
>> Signed-off-by: Chikkature Rajashekar <madhu.cr@ti.com>
>> Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
>> ---
>> arch/arm/mach-omap2/devices.c | 33 ++++++++++++++++++++++
>> arch/arm/mach-omap2/mux.c | 49 +++++++++++++++++++++++++++++++++
>> arch/arm/plat-omap/include/mach/mux.h | 28 +++++++++++++++++++
>> 3 files changed, 110 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
>> index 894cc35..7b87543 100644
>> --- a/arch/arm/mach-omap2/devices.c
>> +++ b/arch/arm/mach-omap2/devices.c
>> @@ -513,6 +513,39 @@ 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 && (!mmc_controller->slots[0].nomux)) {
>> + omap_cfg_reg(N28_3430_MMC1_CLK);
>> + omap_cfg_reg(M27_3430_MMC1_CMD);
>> + omap_cfg_reg(N27_3430_MMC1_DAT0);
>> + omap_cfg_reg(N26_3430_MMC1_DAT1);
>> + omap_cfg_reg(N25_3430_MMC1_DAT2);
>> + omap_cfg_reg(P28_3430_MMC1_DAT3);
>> + 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 && (!mmc_controller->slots[0].nomux)) {
>> + /* MMC2 */
>> + omap_cfg_reg(AE2_3430_MMC2_CLK);
>> + omap_cfg_reg(AG5_3430_MMC2_CMD);
>> + omap_cfg_reg(AH5_3430_MMC2_DAT0);
>> + omap_cfg_reg(AH4_3430_MMC2_DAT1);
>> + omap_cfg_reg(AG4_3430_MMC2_DAT2);
>> + omap_cfg_reg(AF4_3430_MMC2_DAT3);
>> + }
>> + if (controller_nr == 2 && (!mmc_controller->slots[0].nomux)) {
>> + /* MMC3 */
>> + omap_cfg_reg(AF10_3430_MMC3_CLK);
>> + omap_cfg_reg(AC3_3430_MMC3_CMD);
>> + omap_cfg_reg(AE11_3430_MMC3_DAT0);
>> + omap_cfg_reg(AH9_3430_MMC3_DAT1);
>> + omap_cfg_reg(AF13_3430_MMC3_DAT2);
>> + omap_cfg_reg(AF13_3430_MMC3_DAT3);
>> + }
>> + }
>> }
>
>Just for reference, I'll summarize what we've discussed in the other related
>thread:
>
>- Since we support muxing by both the bootloader and kernel,
> adding nomux flag is dangerous
>
>- We can only mux the pins that don't have alternative outputs
Posting v2 of patch with these MMC mux changes.
I had posted the same on 6/18 but somehow it did not make it to patchworks.
So posting again.
>
>Regards,
>
>Tony
>
>
>
>>
>> void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
>> 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.0.3.613.g9f8f13
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-06-22 16:16 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-15 23:37 [PATCH 2/2] OMAP3: MMC: Add mux for pins Vikram Pandita
2009-06-22 13:06 ` Tony Lindgren
2009-06-22 16:15 ` Pandita, Vikram
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox