mmc: tmio: Add hw reset support
authorAi Kyuse <ai.kyuse.uw@renesas.com>
Thu, 3 Nov 2016 14:16:02 +0000 (15:16 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 29 Nov 2016 08:00:57 +0000 (09:00 +0100)
Add hw reset support.

Signed-off-by: Ai Kyuse <ai.kyuse.uw@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/tmio_mmc.h
drivers/mmc/host/tmio_mmc_pio.c

index f46d25e1612cbea489f2b0c6cae8c171aca66eda..b8469f2de42b48541c4244996611827dcbc4233c 100644 (file)
@@ -167,6 +167,7 @@ struct tmio_mmc_host {
        int (*start_signal_voltage_switch)(struct mmc_host *mmc,
                                           struct mmc_ios *ios);
        int (*write16_hook)(struct tmio_mmc_host *host, int addr);
+       void (*hw_reset)(struct tmio_mmc_host *host);
 };
 
 struct tmio_mmc_host *tmio_mmc_host_alloc(struct platform_device *pdev);
index 5b4150aa6419ea1d95b7bca795e45ed22abb4b35..011d04e102310e62625c8708bdb9b6312652febc 100644 (file)
@@ -789,6 +789,14 @@ static int tmio_mmc_start_data(struct tmio_mmc_host *host,
        return 0;
 }
 
+static void tmio_mmc_hw_reset(struct mmc_host *mmc)
+{
+       struct tmio_mmc_host *host = mmc_priv(mmc);
+
+       if (host->hw_reset)
+               host->hw_reset(host);
+}
+
 /* Process requests from the MMC layer */
 static void tmio_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)
 {
@@ -1005,6 +1013,7 @@ static struct mmc_host_ops tmio_mmc_ops = {
        .get_cd         = mmc_gpio_get_cd,
        .enable_sdio_irq = tmio_mmc_enable_sdio_irq,
        .multi_io_quirk = tmio_multi_io_quirk,
+       .hw_reset       = tmio_mmc_hw_reset,
 };
 
 static int tmio_mmc_init_ocr(struct tmio_mmc_host *host)