From patchwork Fri Jan 24 11:52:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Faiz Abbas X-Patchwork-Id: 240045 List-Id: U-Boot discussion From: faiz_abbas at ti.com (Faiz Abbas) Date: Fri, 24 Jan 2020 17:22:44 +0530 Subject: [PATCH v2 02/10] mmc: Add init() API In-Reply-To: <20200124115252.15712-1-faiz_abbas@ti.com> References: <20200124115252.15712-1-faiz_abbas@ti.com> Message-ID: <20200124115252.15712-3-faiz_abbas@ti.com> Add an init() API for platform specific init() operations. Signed-off-by: Faiz Abbas Signed-off-by: Lokesh Vutla --- drivers/mmc/mmc.c | 13 ++++++------- include/mmc.h | 7 +++++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index d43983d4a6..50df8c8626 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -2787,14 +2787,13 @@ int mmc_get_op_cond(struct mmc *mmc) } if (err) return err; - #if CONFIG_IS_ENABLED(DM_MMC) - /* The device has already been probed ready for use */ -#else - /* made sure it's not NULL earlier */ - err = mmc->cfg->ops->init(mmc); - if (err) - return err; + struct dm_mmc_ops *ops = mmc_get_ops(mmc->dev); + if (ops->init) { + err = ops->init(mmc->dev); + if (err) + return err; + } #endif mmc->ddr_mode = 0; diff --git a/include/mmc.h b/include/mmc.h index 2f21dbf1b7..6aef125f25 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -406,6 +406,13 @@ struct mmc; #if CONFIG_IS_ENABLED(DM_MMC) struct dm_mmc_ops { + /** + * init() - platform specific initialization for the host controller + * + * @dev: Device to init + * @return 0 if Ok, -ve if error + */ + int (*init)(struct udevice *dev); /** * send_cmd() - Send a command to the MMC device *