| From e594f70dc87a42560b925e3abc450d6e16f65584 Mon Sep 17 00:00:00 2001 |
| From: Ai Kyuse <ai.kyuse.uw@renesas.com> |
| Date: Thu, 3 Nov 2016 15:16:02 +0100 |
| Subject: [PATCH 150/299] mmc: tmio: Add hw reset support |
| |
| 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> |
| (cherry picked from commit e8f36b5d3b54a49df02c950050659a5082e2c880) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/mmc/host/tmio_mmc.h | 1 + |
| drivers/mmc/host/tmio_mmc_pio.c | 9 +++++++++ |
| 2 files changed, 10 insertions(+) |
| |
| --- a/drivers/mmc/host/tmio_mmc.h |
| +++ b/drivers/mmc/host/tmio_mmc.h |
| @@ -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); |
| --- a/drivers/mmc/host/tmio_mmc_pio.c |
| +++ b/drivers/mmc/host/tmio_mmc_pio.c |
| @@ -789,6 +789,14 @@ static int tmio_mmc_start_data(struct tm |
| 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) |