mmc: host: sh_mobile_sdhi: move card_busy from tmio to sdhi
[cascardo/linux.git] / drivers / mmc / host / sh_mobile_sdhi.c
index c3b651b..c4e63b7 100644 (file)
@@ -213,6 +213,13 @@ static void sh_mobile_sdhi_clk_disable(struct tmio_mmc_host *host)
        clk_disable_unprepare(priv->clk);
 }
 
+static int sh_mobile_sdhi_card_busy(struct mmc_host *mmc)
+{
+       struct tmio_mmc_host *host = mmc_priv(mmc);
+
+       return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & TMIO_STAT_DAT0);
+}
+
 static int sh_mobile_sdhi_start_signal_voltage_switch(struct mmc_host *mmc,
                                                      struct mmc_ios *ios)
 {
@@ -369,6 +376,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
        host->clk_update        = sh_mobile_sdhi_clk_update;
        host->clk_disable       = sh_mobile_sdhi_clk_disable;
        host->multi_io_quirk    = sh_mobile_sdhi_multi_io_quirk;
+       host->card_busy = sh_mobile_sdhi_card_busy;
        host->start_signal_voltage_switch = sh_mobile_sdhi_start_signal_voltage_switch;
 
        /* Orginally registers were 16 bit apart, could be 32 or 64 nowadays */