public inbox for linux-mmc@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 2/5] mmc: dw-mmc: add the platdata related with clock
@ 2012-08-28  7:55 Jaehoon Chung
  2012-08-28 13:31 ` Thomas Abraham
  2012-09-04  9:58 ` James Hogan
  0 siblings, 2 replies; 3+ messages in thread
From: Jaehoon Chung @ 2012-08-28  7:55 UTC (permalink / raw)
  To: linux-mmc
  Cc: Chris Ball, Kyungmin Park, Will Newton, James Hogan,
	Thomas Abraham, Seungwon Jeon

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.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@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 e30d3ed..437fdf8 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -821,6 +821,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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 2/5] mmc: dw-mmc: add the platdata related with clock
  2012-08-28  7:55 [PATCH v2 2/5] mmc: dw-mmc: add the platdata related with clock Jaehoon Chung
@ 2012-08-28 13:31 ` Thomas Abraham
  2012-09-04  9:58 ` James Hogan
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Abraham @ 2012-08-28 13:31 UTC (permalink / raw)
  To: Jaehoon Chung
  Cc: linux-mmc, Chris Ball, Kyungmin Park, Will Newton, James Hogan,
	Seungwon Jeon

On 28 August 2012 13:25, Jaehoon Chung <jh80.chung@samsung.com> wrote:
> 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.chung@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@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 e30d3ed..437fdf8 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -821,6 +821,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

Reviewed-by: Thomas Abraham <thomas.abraham@linaro.org>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 2/5] mmc: dw-mmc: add the platdata related with clock
  2012-08-28  7:55 [PATCH v2 2/5] mmc: dw-mmc: add the platdata related with clock Jaehoon Chung
  2012-08-28 13:31 ` Thomas Abraham
@ 2012-09-04  9:58 ` James Hogan
  1 sibling, 0 replies; 3+ messages in thread
From: James Hogan @ 2012-09-04  9:58 UTC (permalink / raw)
  To: Jaehoon Chung
  Cc: linux-mmc, Chris Ball, Kyungmin Park, Will Newton, Thomas Abraham,
	Seungwon Jeon

Hi,

On 28/08/12 08:55, Jaehoon Chung wrote:
> 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.chung@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@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 e30d3ed..437fdf8 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -821,6 +821,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 */
> +

These don't appear to be used. Are they meant to be there?

>  	/* 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 *);

same with these two functions?

Thanks
James

> +	void (*set_clk_drv_sample)(struct dw_mci *host, struct mmc_ios *ios);
> +
>  };
>  
>  #endif /* LINUX_MMC_DW_MMC_H */
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-09-04 10:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-28  7:55 [PATCH v2 2/5] mmc: dw-mmc: add the platdata related with clock Jaehoon Chung
2012-08-28 13:31 ` Thomas Abraham
2012-09-04  9:58 ` James Hogan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox