提交 19ca7502 编写于 作者: A Arnd Hannemann 提交者: Samuel Ortiz

mmc: Allow the tmio_mmc mfd driver to specify get_cd handler

Some controllers, supported by the tmio_mmc driver do not have the card
detect pin of a slot connected, so that polling needs to be used and
card detection is handled by other means.
This patch exposes a get_cd hook for that purpose.
Signed-off-by: NArnd Hannemann <arnd@arndnet.de>
Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
上级 9b16c0a4
...@@ -756,10 +756,23 @@ static int tmio_mmc_get_ro(struct mmc_host *mmc) ...@@ -756,10 +756,23 @@ static int tmio_mmc_get_ro(struct mmc_host *mmc)
(sd_ctrl_read32(host, CTL_STATUS) & TMIO_STAT_WRPROTECT)) ? 0 : 1; (sd_ctrl_read32(host, CTL_STATUS) & TMIO_STAT_WRPROTECT)) ? 0 : 1;
} }
static int tmio_mmc_get_cd(struct mmc_host *mmc)
{
struct tmio_mmc_host *host = mmc_priv(mmc);
struct mfd_cell *cell = host->pdev->dev.platform_data;
struct tmio_mmc_data *pdata = cell->driver_data;
if (!pdata->get_cd)
return -ENOSYS;
else
return pdata->get_cd(host->pdev);
}
static const struct mmc_host_ops tmio_mmc_ops = { static const struct mmc_host_ops tmio_mmc_ops = {
.request = tmio_mmc_request, .request = tmio_mmc_request,
.set_ios = tmio_mmc_set_ios, .set_ios = tmio_mmc_set_ios,
.get_ro = tmio_mmc_get_ro, .get_ro = tmio_mmc_get_ro,
.get_cd = tmio_mmc_get_cd,
}; };
#ifdef CONFIG_PM #ifdef CONFIG_PM
......
...@@ -74,6 +74,7 @@ struct tmio_mmc_data { ...@@ -74,6 +74,7 @@ struct tmio_mmc_data {
struct tmio_mmc_dma *dma; struct tmio_mmc_dma *dma;
void (*set_pwr)(struct platform_device *host, int state); void (*set_pwr)(struct platform_device *host, int state);
void (*set_clk_div)(struct platform_device *host, int state); void (*set_clk_div)(struct platform_device *host, int state);
int (*get_cd)(struct platform_device *host);
}; };
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册