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 <[email protected]>
> ---
>  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
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to