
Maybe it would be better if the power_init function was removed from the common file and moved to the individual board files. What do you think ? Tom
Matthias Ludwig wrote:
Upcoming boards may power MMC card themself without using TWL4030, so make it optional by using define CONFIG_TWL4030_MMC.
Enable this for all existing OMAP3 boards.
Signed-off-by: Matthias Ludwig mludwig@ultratronik.de
Current OMAP3 MMC driver does require TWL4030 support to be enabled as all OMAP3 boards are using this chip. I'd like to push patches for a new board which does not has a TWL4030 and is caring about MMC power by itself.
So, my suggestion is to make the TWL4030 dependency optional. Are there better ways to to this can using a new define CONFIG_TWL4030_MMC?
drivers/mmc/omap3_mmc.c | 4 ++++ include/configs/omap3_beagle.h | 1 + include/configs/omap3_evm.h | 1 + include/configs/omap3_overo.h | 1 + include/configs/omap3_pandora.h | 1 + include/configs/omap3_zoom1.h | 1 + include/configs/omap3_zoom2.h | 1 + 7 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c index 9e09434..0ed88cb 100644 --- a/drivers/mmc/omap3_mmc.c +++ b/drivers/mmc/omap3_mmc.c @@ -27,8 +27,10 @@ #include <fat.h> #include <mmc.h> #include <part.h> +#ifdef CONFIG_TWL4030_MMC #include <i2c.h> #include <twl4030.h> +#endif #include <asm/io.h> #include <asm/arch/mmc.h>
@@ -63,7 +65,9 @@ unsigned char mmc_board_init(void) { t2_t *t2_base = (t2_t *)T2_BASE;
+#ifdef CONFIG_TWL4030_MMC twl4030_power_mmc_init(); +#endif
writel(readl(&t2_base->pbias_lite) | PBIASLITEPWRDNZ1 | PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0, diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h index 61629f8..e1cb759 100644 --- a/include/configs/omap3_beagle.h +++ b/include/configs/omap3_beagle.h @@ -132,6 +132,7 @@ /*
- TWL4030
*/ +#define CONFIG_TWL4030_MMC 1 #define CONFIG_TWL4030_POWER 1 #define CONFIG_TWL4030_LED 1
diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h index 9f0f34b..b3c64a8 100644 --- a/include/configs/omap3_evm.h +++ b/include/configs/omap3_evm.h @@ -130,6 +130,7 @@ /*
- TWL4030
*/ +#define CONFIG_TWL4030_MMC 1 #define CONFIG_TWL4030_POWER 1
/* diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h index 07a031b..983832d 100644 --- a/include/configs/omap3_overo.h +++ b/include/configs/omap3_overo.h @@ -118,6 +118,7 @@ /*
- TWL4030
*/ +#define CONFIG_TWL4030_MMC 1 #define CONFIG_TWL4030_POWER 1 #define CONFIG_TWL4030_LED 1
diff --git a/include/configs/omap3_pandora.h b/include/configs/omap3_pandora.h index 1cfd7e9..0d87c71 100644 --- a/include/configs/omap3_pandora.h +++ b/include/configs/omap3_pandora.h @@ -121,6 +121,7 @@ /*
- TWL4030
*/ +#define CONFIG_TWL4030_MMC 1 #define CONFIG_TWL4030_POWER 1 #define CONFIG_TWL4030_LED 1
diff --git a/include/configs/omap3_zoom1.h b/include/configs/omap3_zoom1.h index 61a41e7..1140052 100644 --- a/include/configs/omap3_zoom1.h +++ b/include/configs/omap3_zoom1.h @@ -128,6 +128,7 @@ /*
- TWL4030
*/ +#define CONFIG_TWL4030_MMC 1 #define CONFIG_TWL4030_POWER 1 #define CONFIG_TWL4030_LED 1
diff --git a/include/configs/omap3_zoom2.h b/include/configs/omap3_zoom2.h index 03f92f5..40add99 100644 --- a/include/configs/omap3_zoom2.h +++ b/include/configs/omap3_zoom2.h @@ -149,6 +149,7 @@ /*
- TWL4030
*/ +#define CONFIG_TWL4030_MMC 1 #define CONFIG_TWL4030_POWER 1 #define CONFIG_TWL4030_LED 1