[U-Boot] [PATCH] omap_hsmmc: Allow for board-specific MMC power init

Igor Grinberg grinberg at compulab.co.il
Tue Oct 28 19:02:29 CET 2014


Hi Paul,

On 10/28/14 19:25, Paul Kocialkowski wrote:
> Some devices may use non-standard combinations of regulators to power MMC:
> this allows these devices to provide a board-specific MMC power init function
> to set everything up in their own way.
> 
> Signed-off-by: Paul Kocialkowski <contact at paulk.fr>
> ---
>  arch/arm/include/asm/omap_mmc.h |    4 +++-
>  drivers/mmc/omap_hsmmc.c        |    4 +++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/include/asm/omap_mmc.h b/arch/arm/include/asm/omap_mmc.h
> index 617e22f..b6a8325 100644
> --- a/arch/arm/include/asm/omap_mmc.h
> +++ b/arch/arm/include/asm/omap_mmc.h
> @@ -164,5 +164,7 @@ struct hsmmc {
>  int omap_mmc_init(int dev_index, uint host_caps_mask, uint f_max, int cd_gpio,
>  		int wp_gpio);
>  
> -
> +#ifdef CONFIG_OMAP_HSMMC_BOARD_POWER_INIT

I'm not a huge fan of that approach, but if you add
yet another CONFIG_ option, I think it is a requirement to add
a documentation for it.

> +void omap_hsmmc_board_power_init(void);

Anyway, I would suggest adding a default
__weak board_mmc_power_init() or something like this
(which would be transfered into a callback in pdata once omap_hsmmc.c is).

Or... just no need for this patch at all, as board_mmc_init()
can be used for this...

> +#endif
>  #endif /* OMAP_MMC_H_ */
> diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
> index ef2cbf9..ef4c5cf 100644
> --- a/drivers/mmc/omap_hsmmc.c
> +++ b/drivers/mmc/omap_hsmmc.c
> @@ -136,7 +136,9 @@ static unsigned char mmc_board_init(struct mmc *mmc)
>  	pbias_lite &= ~(PBIASLITEPWRDNZ1 | PBIASLITEPWRDNZ0);
>  	writel(pbias_lite, &t2_base->pbias_lite);
>  #endif
> -#if defined(CONFIG_TWL4030_POWER)
> +#if defined(CONFIG_OMAP_HSMMC_BOARD_POWER_INIT)
> +	omap_hsmmc_board_power_init();
> +#elif defined(CONFIG_TWL4030_POWER)
>  	twl4030_power_mmc_init();
>  	mdelay(100);	/* ramp-up delay from Linux code */
>  #endif
> 

-- 
Regards,
Igor.


More information about the U-Boot mailing list