[U-Boot] [PATCH v1] mmc: sdhci: SDHCI controllers also need power
Andy Shevchenko
andriy.shevchenko at linux.intel.com
Mon Mar 20 12:51:06 UTC 2017
On Sun, 2017-03-19 at 20:30 -0600, Simon Glass wrote:
> Hi Andy,
>
> On 15 March 2017 at 12:25, Andy Shevchenko
> <andriy.shevchenko at linux.intel.com> wrote:
> > On some systems SDHCI controllers may be powered off and it's
> > required
> > to bring them on before accessing.
> >
> > SDHCI generic driver currently lacks any mean of doing it. Call the
> > same
> > board_power_mmc_init() at sdhci_init() stage.
> >
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
> > ---
> > drivers/mmc/sdhci.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
> > index 93cefd89cd..54a7e379ff 100644
> > --- a/drivers/mmc/sdhci.c
> > +++ b/drivers/mmc/sdhci.c
> > @@ -469,6 +469,8 @@ static int sdhci_init(struct mmc *mmc)
> > {
> > struct sdhci_host *host = mmc->priv;
> >
> > + board_mmc_power_init();
>
> You should be using driver model for this (CONFIG_DM_MMC*).
I didn't get this part. It's used by the driver (tangier_sdhci) as far
as I understand.
> So either
> get the power supply from the device tree and enable it,
Any example?
> or do this in
> the board code.
How? It's already board code that powers on the controller. If you look
at mmc_init() it does this. SDHCI on the other hand doesn't which is for
my opinion is a bug. Otherwise why is the difference between
initialization sequence of MMC and SHDCI controllers?
>
> > +
> > sdhci_reset(host, SDHCI_RESET_ALL);
> >
> > if ((host->quirks & SDHCI_QUIRK_32BIT_DMA_ADDR) &&
> > !aligned_buffer) {
> > --
> > 2.11.0
> >
>
> Regards,
> Simon
--
Andy Shevchenko <andriy.shevchenko at linux.intel.com>
Intel Finland Oy
More information about the U-Boot
mailing list