Some SoC need to set the clock-phase shift.
So Add the callback function into platdata for using phase-shift

Signed-off-by: Jaehoon Chung <jh80.ch...@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com>
---
 drivers/mmc/host/dw_mmc.c  |    3 +++
 include/linux/mmc/dw_mmc.h |    8 ++++++++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 8bef3c2..feafa2d 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -824,6 +824,9 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct 
mmc_ios *ios)
 
        mci_writel(slot->host, UHS_REG, regs);
 
+       if (slot->host->pdata->set_clk_drv_sample)
+               slot->host->pdata->set_clk_drv_sample(slot->host, ios);
+
        if (ios->clock) {
                /*
                 * Use mirror of ios->clock to prevent race with mmc
diff --git a/include/linux/mmc/dw_mmc.h b/include/linux/mmc/dw_mmc.h
index 7a7ebd3..f20979c 100644
--- a/include/linux/mmc/dw_mmc.h
+++ b/include/linux/mmc/dw_mmc.h
@@ -229,6 +229,9 @@ struct dw_mci_board {
         */
        unsigned int fifo_depth;
 
+       u32 ddr_timing;         /* DDR clock phase timing value */
+       u32 sdr_timing;         /* SDR clock phase timing value */
+
        /* delay in mS before detecting cards after interrupt */
        u32 detect_delay_ms;
 
@@ -249,6 +252,11 @@ struct dw_mci_board {
        struct dw_mci_dma_ops *dma_ops;
        struct dma_pdata *data;
        struct block_settings *blk_settings;
+
+       int (*get_clk_drv)(struct dw_mci *);
+       int (*get_clk_sample)(struct dw_mci *);
+       void (*set_clk_drv_sample)(struct dw_mci *host, struct mmc_ios *ios);
+
 };
 
 #endif /* LINUX_MMC_DW_MMC_H */
-- 
1.7.4.1
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to