[U-Boot] [PATCH v6] mmc: gen_atmel_mci: add driver model support for mci

Wenyou.Yang at microchip.com Wenyou.Yang at microchip.com
Tue Jul 11 06:09:34 UTC 2017


Hi Simon,

Sorry for late answer.

> -----Original Message-----
> From: sjg at google.com [mailto:sjg at google.com] On Behalf Of Simon Glass
> Sent: 2017年7月5日 3:33
> To: Wenyou Yang - A41535 <Wenyou.Yang at microchip.com>
> Cc: U-Boot Mailing List <u-boot at lists.denx.de>; Jaehoon Chung
> <jh80.chung at samsung.com>; Wenyou Yang - A41535
> <Wenyou.Yang at microchip.com>; Andreas Bießmann <andreas at biessmann.org>;
> Tom Rini <trini at konsulko.com>; Stephen Warren <swarren at nvidia.com>
> Subject: Re: [PATCH v6] mmc: gen_atmel_mci: add driver model support for mci
> 
> Hi Wenyou,
> 
> On 12 April 2017 at 20:29, Wenyou Yang <wenyou.yang at atmel.com> wrote:
> > Add the driver model support for Atmel mci while retaining the
> > existing legacy code. This allows the driver to support boards that
> > have converted to driver model as well as those that have not.
> >
> > Signed-off-by: Wenyou Yang <wenyou.yang at atmel.com>
> > ---
> >
> > Changes in v6:
> >  - Rebase the master branch (commit: 4f6d85bb51).
> >
> > Changes in v5:
> >  - Rebase on v2017.03.
> >
> > Changes in v4:
> >  - Remove unneeded #ifdef CONFIG_DM_MMC.
> >
> > Changes in v3:
> >  - Use unified #ifdef CONFIG_DM_MMC #else...#endif, instead of #ifndef
> CONFIG_DM_MMC
> >    #else...#endif.
> >
> > Changes in v2:
> >  - Change the return type of atmel_mci_setup_cfg() from int to void.
> >  - Add comments on the features depends on the IP version.
> >  - Add the error handle path of clock.
> >  - Fix the missing use priv->bus_clk_rate.
> >  - Return from mmc_bind() directly, instead of checking its return.
> >
> >  drivers/mmc/Kconfig         |   9 +++
> >  drivers/mmc/gen_atmel_mci.c | 158
> > +++++++++++++++++++++++++++++++++++++++++++-
> >  2 files changed, 166 insertions(+), 1 deletion(-)
> 
> > +static int atmel_mci_bind(struct udevice *dev) {
> > +       struct atmel_mci_priv *priv = dev_get_priv(dev);
> > +
> > +       return mmc_bind(dev, &priv->mmc, &priv->cfg); }
> 
> Sorry for not noticing this before, but I don't think this works as intended. The
> bind() method is called before the device is probed and so the device has no
> private data. You should use dev_get_platdata() here, and set up a new structure
> to hold the mmc and cfg members.
> 
> See for example omap_hsmmc.c

Thank you for your correcting,  I will send a patch to fix it.

> 
> Regards,
> Simon


Best Regards,
Wenyou Yang


More information about the U-Boot mailing list