[U-Boot] [PATCH v6] mmc: gen_atmel_mci: add driver model support for mci
Simon Glass
sjg at chromium.org
Tue Jul 4 19:33:15 UTC 2017
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
Regards,
Simon
More information about the U-Boot
mailing list