From 42a4533976d922ff3272fad17dd52fe3682899dd Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Wed, 19 May 2010 18:34:11 +0000 Subject: mmc: prepare tmio_mmc for passing of DMA configuration from the MFD cell After this patch, if the "dma" pointer in struct tmio_mmc_data is not NULL, it points to a struct, containing two tokens, that have to be passed to the dmaengine driver for channel configuration. Signed-off-by: Guennadi Liakhovetski Acked-by: Samuel Ortiz Signed-off-by: Paul Mundt --- include/linux/mfd/tmio.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include/linux') diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h index c3f7dff8effc..360fc953d7bb 100644 --- a/include/linux/mfd/tmio.h +++ b/include/linux/mfd/tmio.h @@ -55,12 +55,18 @@ int tmio_core_mmc_resume(void __iomem *cnf, int shift, unsigned long base); void tmio_core_mmc_pwr(void __iomem *cnf, int shift, int state); void tmio_core_mmc_clk_div(void __iomem *cnf, int shift, int state); +struct tmio_mmc_dma { + void *chan_priv_tx; + void *chan_priv_rx; +}; + /* * data for the MMC controller */ struct tmio_mmc_data { unsigned int hclk; unsigned long capabilities; + struct tmio_mmc_dma *dma; void (*set_pwr)(struct platform_device *host, int state); void (*set_clk_div)(struct platform_device *host, int state); }; -- cgit v1.2.3 From 056676dabd9f4c69a6adcad208e9aa2ca7241400 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Wed, 19 May 2010 18:34:16 +0000 Subject: sh: prepare the SDHI MFD driver to pass DMA configuration to tmio_mmc.c Pass DMA slave IDs from platform down to the tmio_mmc driver, to be used for dmaengine configuration. Signed-off-by: Guennadi Liakhovetski Acked-by: Samuel Ortiz Signed-off-by: Paul Mundt --- include/linux/mfd/sh_mobile_sdhi.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/linux') diff --git a/include/linux/mfd/sh_mobile_sdhi.h b/include/linux/mfd/sh_mobile_sdhi.h index 3bcd7163485c..c305461e7f47 100644 --- a/include/linux/mfd/sh_mobile_sdhi.h +++ b/include/linux/mfd/sh_mobile_sdhi.h @@ -2,6 +2,8 @@ #define __SH_MOBILE_SDHI_H__ struct sh_mobile_sdhi_info { + int dma_slave_tx; + int dma_slave_rx; void (*set_pwr)(struct platform_device *pdev, int state); }; -- cgit v1.2.3 From ac8fb3e8627d5494f3d2221925a82be4c1778b0e Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Wed, 19 May 2010 18:36:02 +0000 Subject: tmio: add a platform flag to disable card write-protection detection Write-protection status is not always available, e.g., micro-SD cards do not have a write-protection switch at all. This patch adds a flag to let platforms force tmio_mmc to consider the card writable. Signed-off-by: Guennadi Liakhovetski Acked-by: Ian Molton Signed-off-by: Paul Mundt --- include/linux/mfd/tmio.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/linux') diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h index 360fc953d7bb..feeed0b9ee70 100644 --- a/include/linux/mfd/tmio.h +++ b/include/linux/mfd/tmio.h @@ -50,6 +50,9 @@ tmio_iowrite16((val) >> 16, (base) + ((reg + 2) << (shift))); \ } while (0) +/* tmio MMC platform flags */ +#define TMIO_MMC_WRPROTECT_DISABLE (1 << 0) + int tmio_core_mmc_enable(void __iomem *cnf, int shift, unsigned long base); int tmio_core_mmc_resume(void __iomem *cnf, int shift, unsigned long base); void tmio_core_mmc_pwr(void __iomem *cnf, int shift, int state); @@ -66,6 +69,7 @@ struct tmio_mmc_dma { struct tmio_mmc_data { unsigned int hclk; unsigned long capabilities; + unsigned long flags; struct tmio_mmc_dma *dma; void (*set_pwr)(struct platform_device *host, int state); void (*set_clk_div)(struct platform_device *host, int state); -- cgit v1.2.3 From f87c20a9db43f6f731270eeef616e1bcc266c2d4 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Wed, 19 May 2010 18:36:08 +0000 Subject: mfd: pass platform flags down to the tmio_mmc driver Signed-off-by: Guennadi Liakhovetski Acked-by: Ian Molton Signed-off-by: Paul Mundt --- include/linux/mfd/sh_mobile_sdhi.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/linux') diff --git a/include/linux/mfd/sh_mobile_sdhi.h b/include/linux/mfd/sh_mobile_sdhi.h index c305461e7f47..c7b47f8ad650 100644 --- a/include/linux/mfd/sh_mobile_sdhi.h +++ b/include/linux/mfd/sh_mobile_sdhi.h @@ -4,6 +4,7 @@ struct sh_mobile_sdhi_info { int dma_slave_tx; int dma_slave_rx; + unsigned long tmio_flags; void (*set_pwr)(struct platform_device *pdev, int state); }; -- cgit v1.2.3 From a2b14dc9615c215a8cf4f2041f6c0c3fff5fc486 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Wed, 19 May 2010 18:37:25 +0000 Subject: mmc: let MFD's provide supported Vdd card voltages to tmio_mmc Signed-off-by: Guennadi Liakhovetski Acked-by: Ian Molton Signed-off-by: Paul Mundt --- include/linux/mfd/tmio.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/linux') diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h index feeed0b9ee70..f07425bc3dcd 100644 --- a/include/linux/mfd/tmio.h +++ b/include/linux/mfd/tmio.h @@ -70,6 +70,7 @@ struct tmio_mmc_data { unsigned int hclk; unsigned long capabilities; unsigned long flags; + u32 ocr_mask; /* available voltages */ struct tmio_mmc_dma *dma; void (*set_pwr)(struct platform_device *host, int state); void (*set_clk_div)(struct platform_device *host, int state); -- cgit v1.2.3 From bb0fe533514c1d480c6c16f8bad070270a73a96c Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Wed, 19 May 2010 18:37:36 +0000 Subject: sh: allow platforms to specify SD-card supported voltages Boards can have different supplied voltages on different SD card slots. This information has to be passed down to the SD/MMC driver. Signed-off-by: Guennadi Liakhovetski Acked-by: Ian Molton Signed-off-by: Paul Mundt --- include/linux/mfd/sh_mobile_sdhi.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include/linux') diff --git a/include/linux/mfd/sh_mobile_sdhi.h b/include/linux/mfd/sh_mobile_sdhi.h index c7b47f8ad650..49067802a6d7 100644 --- a/include/linux/mfd/sh_mobile_sdhi.h +++ b/include/linux/mfd/sh_mobile_sdhi.h @@ -1,10 +1,13 @@ #ifndef __SH_MOBILE_SDHI_H__ #define __SH_MOBILE_SDHI_H__ +#include + struct sh_mobile_sdhi_info { int dma_slave_tx; int dma_slave_rx; unsigned long tmio_flags; + u32 tmio_ocr_mask; /* available MMC voltages */ void (*set_pwr)(struct platform_device *pdev, int state); }; -- cgit v1.2.3