Hi, On Thu, Mar 07, 2013 at 12:45:18AM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote: > take from xloader > > with this the mmc work even when booting from nand > > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> > --- > arch/arm/boards/beagle/board.c | 29 ++++++++++++++++++++++++++++- > 1 file changed, 28 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/boards/beagle/board.c b/arch/arm/boards/beagle/board.c > index bed4651..6e69e87 100644 > --- a/arch/arm/boards/beagle/board.c > +++ b/arch/arm/boards/beagle/board.c > @@ -63,6 +63,7 @@ > #include <linux/err.h> > #include <usb/ehci.h> > #include <mach/xload.h> > +#include <mfd/twl4030.h> > > #ifdef CONFIG_DRIVER_SERIAL_NS16550 > > @@ -109,6 +110,32 @@ static struct gpmc_nand_platform_data nand_plat = { > .nand_cfg = &omap3_nand_cfg, > }; > > +/* T2 Register definitions */ > +#define CONTROL_DEV_CONF0 0x48002274 > +#define CONTROL_PBIAS_LITE 0x48002520 > + > +static void beagle_add_mmc(void) > +{ > + unsigned int value = 0; > + struct twl4030 *t = twl4030_get(); > + > + if (!t) { > + pr_warn("twl4030 not ready to setup mmc\n"); > + } else { > + twl4030_reg_write(t, TWL4030_USB_OTHER_FUNC_CTRL_CLR, 0x20); > + twl4030_reg_write(t, TWL4030_USB_OTHER_IFC_CTRL_CLR, 0x2); > + } > + > + value = readl(CONTROL_PBIAS_LITE); > + value |= (1 << 2) | (1 << 1) | (1 << 9); > + writel(value, CONTROL_PBIAS_LITE); > + > + value = readl(CONTROL_DEV_CONF0); > + writel(value | (1 << 24), CONTROL_PBIAS_LITE); > + > + omap3_add_mmc1(NULL); > +} > + > static int beagle_mem_init(void) > { > omap_add_ram0(SZ_128M); > @@ -132,7 +159,7 @@ static int beagle_devices_init(void) > #endif > omap_add_gpmc_nand_device(&nand_plat); > > - omap3_add_mmc1(NULL); > + beagle_add_mmc(); > I had a similar problem with twl6030 and pcm049 some time ago... See commit: 659f150e90d8bfcf8aa4c51bd3ab552f42e288f0 Please make sure this will work when you insert a mmc card after beagle_mem_init call. In my case, I need to add the VMMC setup at probing time in omap_hsmmc. The reason is that twl6030 doesn't setup VMMC if a mmc card is not insert. Maybe twl4030 do the same. Alex _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox