Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19ca7502 authored by Arnd Hannemann's avatar Arnd Hannemann Committed by Samuel Ortiz
Browse files

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: default avatarArnd Hannemann <arnd@arndnet.de>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 9b16c0a4
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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;
}

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 = {
	.request	= tmio_mmc_request,
	.set_ios	= tmio_mmc_set_ios,
	.get_ro         = tmio_mmc_get_ro,
	.get_cd		= tmio_mmc_get_cd,
};

#ifdef CONFIG_PM
+1 −0
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ struct tmio_mmc_data {
	struct tmio_mmc_dma		*dma;
	void (*set_pwr)(struct platform_device *host, int state);
	void (*set_clk_div)(struct platform_device *host, int state);
	int (*get_cd)(struct platform_device *host);
};

/*