All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] OMAP4: MMC driver support on OMAP4
@ 2009-09-02 13:24 kishore kadiyala
  2009-09-04 19:19   ` Andrew Morton
  0 siblings, 1 reply; 18+ messages in thread
From: kishore kadiyala @ 2009-09-02 13:24 UTC (permalink / raw)
  To: linux-kernel, inux-omap; +Cc: jarkko.lavinen, madhu.cr

This Patch adds basic support for all 5 MMC controllers on OMAP4.

-Kishore

Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
---
This patch doesn't include mmc-regulator support

 arch/arm/mach-omap2/devices.c          |   42 +++++++++++++++++++++++++++++----
 arch/arm/plat-omap/include/mach/irqs.h |    2 +
 arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
 drivers/mmc/host/Kconfig               |    6 ++--
 drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
 5 files changed, 60 insertions(+), 9 deletions(-)

Index: kernel-omap4-base/arch/arm/mach-omap2/devices.c
===================================================================
--- kernel-omap4-base.orig/arch/arm/mach-omap2/devices.c
+++ kernel-omap4-base/arch/arm/mach-omap2/devices.c
@@ -397,7 +397,7 @@ static inline void omap_init_sha1_md5(vo

 /*-------------------------------------------------------------------------*/

-#ifdef CONFIG_ARCH_OMAP3
+#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)

 #define MMCHS_SYSCONFIG			0x0010
 #define MMCHS_SYSCONFIG_SWRESET		(1 << 1)
@@ -424,8 +424,8 @@ static struct platform_device dummy_pdev
  **/
 static void __init omap_hsmmc_reset(void)
 {
-	u32 i, nr_controllers = cpu_is_omap34xx() ? OMAP34XX_NR_MMC :
-		OMAP24XX_NR_MMC;
+	u32 i, nr_controllers = cpu_is_omap44xx() ? OMAP44XX_NR_MMC :
+		(cpu_is_omap34xx() ? OMAP34XX_NR_MMC : OMAP24XX_NR_MMC);

 	for (i = 0; i < nr_controllers; i++) {
 		u32 v, base = 0;
@@ -442,8 +442,21 @@ static void __init omap_hsmmc_reset(void
 		case 2:
 			base = OMAP3_MMC3_BASE;
 			break;
+		case 3:
+			if (!cpu_is_omap44xx())
+				return;
+			base = OMAP4_MMC4_BASE;
+			break;
+		case 4:
+			if (!cpu_is_omap44xx())
+				return;
+			base = OMAP4_MMC5_BASE;
+			break;
 		}

+		if (cpu_is_omap44xx())
+			base += OMAP4_MMC_REG_OFFSET;
+
 		dummy_pdev.id = i;
 		dev_set_name(&dummy_pdev.dev, "mmci-omap-hs.%d", i);
 		iclk = clk_get(dev, "ick");
@@ -540,11 +553,23 @@ void __init omap2_init_mmc(struct omap_m
 			irq = INT_24XX_MMC2_IRQ;
 			break;
 		case 2:
-			if (!cpu_is_omap34xx())
+			if (!cpu_is_omap44xx() && !cpu_is_omap34xx())
 				return;
 			base = OMAP3_MMC3_BASE;
 			irq = INT_34XX_MMC3_IRQ;
 			break;
+		case 3:
+			if (!cpu_is_omap44xx())
+				return;
+			base = OMAP4_MMC4_BASE + OMAP4_MMC_REG_OFFSET;
+			irq = INT_44XX_MMC4_IRQ;
+			break;
+		case 4:
+			if (!cpu_is_omap44xx())
+				return;
+			base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
+			irq = INT_44XX_MMC5_IRQ;
+			break;
 		default:
 			continue;
 		}
@@ -552,8 +577,15 @@ void __init omap2_init_mmc(struct omap_m
 		if (cpu_is_omap2420()) {
 			size = OMAP2420_MMC_SIZE;
 			name = "mmci-omap";
+		} else if (cpu_is_omap44xx()) {
+			if (i < 3) {
+				base += OMAP4_MMC_REG_OFFSET;
+				irq += IRQ_GIC_START;
+			}
+			size = OMAP4_HSMMC_SIZE;
+			name = "mmci-omap-hs";
 		} else {
-			size = HSMMC_SIZE;
+			size = OMAP3_HSMMC_SIZE;
 			name = "mmci-omap-hs";
 		}
 		omap_mmc_add(name, i, base, size, irq, mmc_data[i]);
Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
===================================================================
--- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/irqs.h
+++ kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
@@ -503,6 +503,7 @@
 #define INT_44XX_FPKA_READY_IRQ	(50 + IRQ_GIC_START)
 #define INT_44XX_SHA1MD51_IRQ	(51 + IRQ_GIC_START)
 #define INT_44XX_RNG_IRQ	(52 + IRQ_GIC_START)
+#define INT_44XX_MMC5_IRQ	(59 + IRQ_GIC_START)
 #define INT_44XX_I2C3_IRQ	(61 + IRQ_GIC_START)
 #define INT_44XX_FPKA_ERROR_IRQ	(64 + IRQ_GIC_START)
 #define INT_44XX_PBIAS_IRQ	(75 + IRQ_GIC_START)
@@ -511,6 +512,7 @@
 #define INT_44XX_TLL_IRQ	(78 + IRQ_GIC_START)
 #define INT_44XX_PARTHASH_IRQ	(79 + IRQ_GIC_START)
 #define INT_44XX_MMC3_IRQ	(94 + IRQ_GIC_START)
+#define INT_44XX_MMC4_IRQ	(96 + IRQ_GIC_START)


 /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
===================================================================
--- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/mmc.h
+++ kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
@@ -25,11 +25,18 @@

 #define OMAP24XX_NR_MMC		2
 #define OMAP34XX_NR_MMC		3
+#define OMAP44XX_NR_MMC		5
 #define OMAP2420_MMC_SIZE	OMAP1_MMC_SIZE
-#define HSMMC_SIZE		0x200
+#define OMAP3_HSMMC_SIZE	0x200
+#define OMAP4_HSMMC_SIZE	0x1000
 #define OMAP2_MMC1_BASE		0x4809c000
 #define OMAP2_MMC2_BASE		0x480b4000
 #define OMAP3_MMC3_BASE		0x480ad000
+#define OMAP4_MMC4_BASE		0x480d1000
+#define OMAP4_MMC5_BASE		0x480d5000
+#define OMAP4_MMC_REG_OFFSET	0x100
+#define HSMMC5			(1 << 4)
+#define HSMMC4			(1 << 3)
 #define HSMMC3			(1 << 2)
 #define HSMMC2			(1 << 1)
 #define HSMMC1			(1 << 0)
Index: kernel-omap4-base/drivers/mmc/host/Kconfig
===================================================================
--- kernel-omap4-base.orig/drivers/mmc/host/Kconfig
+++ kernel-omap4-base/drivers/mmc/host/Kconfig
@@ -132,11 +132,11 @@ config MMC_OMAP

 config MMC_OMAP_HS
 	tristate "TI OMAP High Speed Multimedia Card Interface support"
-	depends on ARCH_OMAP2430 || ARCH_OMAP3
+	depends on ARCH_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
 	help
 	  This selects the TI OMAP High Speed Multimedia card Interface.
-	  If you have an OMAP2430 or OMAP3 board with a Multimedia Card slot,
-	  say Y or M here.
+	  If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
+	  Multimedia Card slot, say Y or M here.

 	  If unsure, say N.

Index: kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
===================================================================
--- kernel-omap4-base.orig/drivers/mmc/host/omap_hsmmc.c
+++ kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
@@ -101,6 +101,8 @@
 #define OMAP_MMC1_DEVID		0
 #define OMAP_MMC2_DEVID		1
 #define OMAP_MMC3_DEVID		2
+#define OMAP_MMC4_DEVID		3
+#define OMAP_MMC5_DEVID		4

 #define MMC_TIMEOUT_MS		20
 #define OMAP_MMC_MASTER_CLOCK	96000000
@@ -1096,6 +1098,14 @@ static int __init omap_mmc_probe(struct
 		host->dma_line_tx = OMAP34XX_DMA_MMC3_TX;
 		host->dma_line_rx = OMAP34XX_DMA_MMC3_RX;
 		break;
+	case OMAP_MMC4_DEVID:
+		host->dma_line_tx = OMAP44XX_DMA_MMC4_TX;
+		host->dma_line_rx = OMAP44XX_DMA_MMC4_RX;
+		break;
+	case OMAP_MMC5_DEVID:
+		host->dma_line_tx = OMAP44XX_DMA_MMC5_TX;
+		host->dma_line_rx = OMAP44XX_DMA_MMC5_RX;
+		break;
 	default:
 		dev_err(mmc_dev(host->mmc), "Invalid MMC id\n");
 		goto err_irq;



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

* Re: [PATCH] OMAP4: MMC driver support on OMAP4
       [not found] <34590.192.168.10.89.1251897877.squirrel@dbdmail.itg.ti.com>
@ 2009-09-02 13:30 ` kishore kadiyala
  2009-09-02 16:30     ` Madhusudhan
  0 siblings, 1 reply; 18+ messages in thread
From: kishore kadiyala @ 2009-09-02 13:30 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-omap, jarkko.lavinen, madhu.cr

Resending the patch, CC'ing LO.

--Kishore

This Patch adds basic support for all 5 MMC controllers on OMAP4.

Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
---
This patch doesn't include mmc-regulator support

 arch/arm/mach-omap2/devices.c          |   42 +++++++++++++++++++++++++++++----
 arch/arm/plat-omap/include/mach/irqs.h |    2 +
 arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
 drivers/mmc/host/Kconfig               |    6 ++--
 drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
 5 files changed, 60 insertions(+), 9 deletions(-)

Index: kernel-omap4-base/arch/arm/mach-omap2/devices.c
===================================================================
--- kernel-omap4-base.orig/arch/arm/mach-omap2/devices.c
+++ kernel-omap4-base/arch/arm/mach-omap2/devices.c
@@ -397,7 +397,7 @@ static inline void omap_init_sha1_md5(vo

 /*-------------------------------------------------------------------------*/

-#ifdef CONFIG_ARCH_OMAP3
+#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)

 #define MMCHS_SYSCONFIG			0x0010
 #define MMCHS_SYSCONFIG_SWRESET		(1 << 1)
@@ -424,8 +424,8 @@ static struct platform_device dummy_pdev
  **/
 static void __init omap_hsmmc_reset(void)
 {
-	u32 i, nr_controllers = cpu_is_omap34xx() ? OMAP34XX_NR_MMC :
-		OMAP24XX_NR_MMC;
+	u32 i, nr_controllers = cpu_is_omap44xx() ? OMAP44XX_NR_MMC :
+		(cpu_is_omap34xx() ? OMAP34XX_NR_MMC : OMAP24XX_NR_MMC);

 	for (i = 0; i < nr_controllers; i++) {
 		u32 v, base = 0;
@@ -442,8 +442,21 @@ static void __init omap_hsmmc_reset(void
 		case 2:
 			base = OMAP3_MMC3_BASE;
 			break;
+		case 3:
+			if (!cpu_is_omap44xx())
+				return;
+			base = OMAP4_MMC4_BASE;
+			break;
+		case 4:
+			if (!cpu_is_omap44xx())
+				return;
+			base = OMAP4_MMC5_BASE;
+			break;
 		}

+		if (cpu_is_omap44xx())
+			base += OMAP4_MMC_REG_OFFSET;
+
 		dummy_pdev.id = i;
 		dev_set_name(&dummy_pdev.dev, "mmci-omap-hs.%d", i);
 		iclk = clk_get(dev, "ick");
@@ -540,11 +553,23 @@ void __init omap2_init_mmc(struct omap_m
 			irq = INT_24XX_MMC2_IRQ;
 			break;
 		case 2:
-			if (!cpu_is_omap34xx())
+			if (!cpu_is_omap44xx() && !cpu_is_omap34xx())
 				return;
 			base = OMAP3_MMC3_BASE;
 			irq = INT_34XX_MMC3_IRQ;
 			break;
+		case 3:
+			if (!cpu_is_omap44xx())
+				return;
+			base = OMAP4_MMC4_BASE + OMAP4_MMC_REG_OFFSET;
+			irq = INT_44XX_MMC4_IRQ;
+			break;
+		case 4:
+			if (!cpu_is_omap44xx())
+				return;
+			base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
+			irq = INT_44XX_MMC5_IRQ;
+			break;
 		default:
 			continue;
 		}
@@ -552,8 +577,15 @@ void __init omap2_init_mmc(struct omap_m
 		if (cpu_is_omap2420()) {
 			size = OMAP2420_MMC_SIZE;
 			name = "mmci-omap";
+		} else if (cpu_is_omap44xx()) {
+			if (i < 3) {
+				base += OMAP4_MMC_REG_OFFSET;
+				irq += IRQ_GIC_START;
+			}
+			size = OMAP4_HSMMC_SIZE;
+			name = "mmci-omap-hs";
 		} else {
-			size = HSMMC_SIZE;
+			size = OMAP3_HSMMC_SIZE;
 			name = "mmci-omap-hs";
 		}
 		omap_mmc_add(name, i, base, size, irq, mmc_data[i]);
Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
===================================================================
--- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/irqs.h
+++ kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
@@ -503,6 +503,7 @@
 #define INT_44XX_FPKA_READY_IRQ	(50 + IRQ_GIC_START)
 #define INT_44XX_SHA1MD51_IRQ	(51 + IRQ_GIC_START)
 #define INT_44XX_RNG_IRQ	(52 + IRQ_GIC_START)
+#define INT_44XX_MMC5_IRQ	(59 + IRQ_GIC_START)
 #define INT_44XX_I2C3_IRQ	(61 + IRQ_GIC_START)
 #define INT_44XX_FPKA_ERROR_IRQ	(64 + IRQ_GIC_START)
 #define INT_44XX_PBIAS_IRQ	(75 + IRQ_GIC_START)
@@ -511,6 +512,7 @@
 #define INT_44XX_TLL_IRQ	(78 + IRQ_GIC_START)
 #define INT_44XX_PARTHASH_IRQ	(79 + IRQ_GIC_START)
 #define INT_44XX_MMC3_IRQ	(94 + IRQ_GIC_START)
+#define INT_44XX_MMC4_IRQ	(96 + IRQ_GIC_START)


 /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
===================================================================
--- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/mmc.h
+++ kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
@@ -25,11 +25,18 @@

 #define OMAP24XX_NR_MMC		2
 #define OMAP34XX_NR_MMC		3
+#define OMAP44XX_NR_MMC		5
 #define OMAP2420_MMC_SIZE	OMAP1_MMC_SIZE
-#define HSMMC_SIZE		0x200
+#define OMAP3_HSMMC_SIZE	0x200
+#define OMAP4_HSMMC_SIZE	0x1000
 #define OMAP2_MMC1_BASE		0x4809c000
 #define OMAP2_MMC2_BASE		0x480b4000
 #define OMAP3_MMC3_BASE		0x480ad000
+#define OMAP4_MMC4_BASE		0x480d1000
+#define OMAP4_MMC5_BASE		0x480d5000
+#define OMAP4_MMC_REG_OFFSET	0x100
+#define HSMMC5			(1 << 4)
+#define HSMMC4			(1 << 3)
 #define HSMMC3			(1 << 2)
 #define HSMMC2			(1 << 1)
 #define HSMMC1			(1 << 0)
Index: kernel-omap4-base/drivers/mmc/host/Kconfig
===================================================================
--- kernel-omap4-base.orig/drivers/mmc/host/Kconfig
+++ kernel-omap4-base/drivers/mmc/host/Kconfig
@@ -132,11 +132,11 @@ config MMC_OMAP

 config MMC_OMAP_HS
 	tristate "TI OMAP High Speed Multimedia Card Interface support"
-	depends on ARCH_OMAP2430 || ARCH_OMAP3
+	depends on ARCH_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
 	help
 	  This selects the TI OMAP High Speed Multimedia card Interface.
-	  If you have an OMAP2430 or OMAP3 board with a Multimedia Card slot,
-	  say Y or M here.
+	  If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
+	  Multimedia Card slot, say Y or M here.

 	  If unsure, say N.

Index: kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
===================================================================
--- kernel-omap4-base.orig/drivers/mmc/host/omap_hsmmc.c
+++ kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
@@ -101,6 +101,8 @@
 #define OMAP_MMC1_DEVID		0
 #define OMAP_MMC2_DEVID		1
 #define OMAP_MMC3_DEVID		2
+#define OMAP_MMC4_DEVID		3
+#define OMAP_MMC5_DEVID		4

 #define MMC_TIMEOUT_MS		20
 #define OMAP_MMC_MASTER_CLOCK	96000000
@@ -1096,6 +1098,14 @@ static int __init omap_mmc_probe(struct
 		host->dma_line_tx = OMAP34XX_DMA_MMC3_TX;
 		host->dma_line_rx = OMAP34XX_DMA_MMC3_RX;
 		break;
+	case OMAP_MMC4_DEVID:
+		host->dma_line_tx = OMAP44XX_DMA_MMC4_TX;
+		host->dma_line_rx = OMAP44XX_DMA_MMC4_RX;
+		break;
+	case OMAP_MMC5_DEVID:
+		host->dma_line_tx = OMAP44XX_DMA_MMC5_TX;
+		host->dma_line_rx = OMAP44XX_DMA_MMC5_RX;
+		break;
 	default:
 		dev_err(mmc_dev(host->mmc), "Invalid MMC id\n");
 		goto err_irq;



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

* RE: [PATCH] OMAP4: MMC driver support on OMAP4
  2009-09-02 13:30 ` kishore kadiyala
@ 2009-09-02 16:30     ` Madhusudhan
  0 siblings, 0 replies; 18+ messages in thread
From: Madhusudhan @ 2009-09-02 16:30 UTC (permalink / raw)
  To: 'kishore kadiyala', linux-kernel; +Cc: linux-omap, jarkko.lavinen



> -----Original Message-----
> From: kishore kadiyala [mailto:kishore.kadiyala@ti.com]
> Sent: Wednesday, September 02, 2009 8:30 AM
> To: linux-kernel@vger.kernel.org
> Cc: linux-omap@vger.kernel.org; jarkko.lavinen@nokia.com; madhu.cr@ti.com
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> Resending the patch, CC'ing LO.
> 
> --Kishore
> 
> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> 
> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> ---
> This patch doesn't include mmc-regulator support

What is the specific reason? How are MMC4 and MMC5 powered up then?
Does MMC1 and MMC2 work with mmctwl4030 wrapper?

> 
>  arch/arm/mach-omap2/devices.c          |   42
> +++++++++++++++++++++++++++++----
>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
>  drivers/mmc/host/Kconfig               |    6 ++--
>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
>  5 files changed, 60 insertions(+), 9 deletions(-)
> 
> Index: kernel-omap4-base/arch/arm/mach-omap2/devices.c
> ===================================================================
> --- kernel-omap4-base.orig/arch/arm/mach-omap2/devices.c
> +++ kernel-omap4-base/arch/arm/mach-omap2/devices.c
> @@ -397,7 +397,7 @@ static inline void omap_init_sha1_md5(vo
> 
>  /*-----------------------------------------------------------------------
> --*/
> 
> -#ifdef CONFIG_ARCH_OMAP3
> +#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
> 
>  #define MMCHS_SYSCONFIG			0x0010
>  #define MMCHS_SYSCONFIG_SWRESET		(1 << 1)
> @@ -424,8 +424,8 @@ static struct platform_device dummy_pdev
>   **/
>  static void __init omap_hsmmc_reset(void)
>  {
> -	u32 i, nr_controllers = cpu_is_omap34xx() ? OMAP34XX_NR_MMC :
> -		OMAP24XX_NR_MMC;
> +	u32 i, nr_controllers = cpu_is_omap44xx() ? OMAP44XX_NR_MMC :
> +		(cpu_is_omap34xx() ? OMAP34XX_NR_MMC : OMAP24XX_NR_MMC);
> 
>  	for (i = 0; i < nr_controllers; i++) {
>  		u32 v, base = 0;
> @@ -442,8 +442,21 @@ static void __init omap_hsmmc_reset(void
>  		case 2:
>  			base = OMAP3_MMC3_BASE;
>  			break;
> +		case 3:
> +			if (!cpu_is_omap44xx())
> +				return;
> +			base = OMAP4_MMC4_BASE;
> +			break;
> +		case 4:
> +			if (!cpu_is_omap44xx())
> +				return;
> +			base = OMAP4_MMC5_BASE;
> +			break;
>  		}
> 
> +		if (cpu_is_omap44xx())
> +			base += OMAP4_MMC_REG_OFFSET;
> +
>  		dummy_pdev.id = i;
>  		dev_set_name(&dummy_pdev.dev, "mmci-omap-hs.%d", i);
>  		iclk = clk_get(dev, "ick");
> @@ -540,11 +553,23 @@ void __init omap2_init_mmc(struct omap_m
>  			irq = INT_24XX_MMC2_IRQ;
>  			break;
>  		case 2:
> -			if (!cpu_is_omap34xx())
> +			if (!cpu_is_omap44xx() && !cpu_is_omap34xx())
>  				return;
>  			base = OMAP3_MMC3_BASE;
>  			irq = INT_34XX_MMC3_IRQ;
>  			break;
> +		case 3:
> +			if (!cpu_is_omap44xx())
> +				return;
> +			base = OMAP4_MMC4_BASE + OMAP4_MMC_REG_OFFSET;

The reset fn sets up the base as "OMAP4_MMC4_BASE". Why add the OFFSET here?

> +			irq = INT_44XX_MMC4_IRQ;
> +			break;
> +		case 4:
> +			if (!cpu_is_omap44xx())
> +				return;
> +			base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
Ditto
> +			irq = INT_44XX_MMC5_IRQ;
> +			break;
>  		default:
>  			continue;
>  		}
> @@ -552,8 +577,15 @@ void __init omap2_init_mmc(struct omap_m
>  		if (cpu_is_omap2420()) {
>  			size = OMAP2420_MMC_SIZE;
>  			name = "mmci-omap";
> +		} else if (cpu_is_omap44xx()) {
> +			if (i < 3) {
> +				base += OMAP4_MMC_REG_OFFSET;
> +				irq += IRQ_GIC_START;
Why base is updated at multiple places within this fn?
> +			}
> +			size = OMAP4_HSMMC_SIZE;
> +			name = "mmci-omap-hs";
>  		} else {
> -			size = HSMMC_SIZE;
> +			size = OMAP3_HSMMC_SIZE;
>  			name = "mmci-omap-hs";
>  		}
>  		omap_mmc_add(name, i, base, size, irq, mmc_data[i]);
> Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
> ===================================================================
> --- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/irqs.h
> +++ kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
> @@ -503,6 +503,7 @@
>  #define INT_44XX_FPKA_READY_IRQ	(50 + IRQ_GIC_START)
>  #define INT_44XX_SHA1MD51_IRQ	(51 + IRQ_GIC_START)
>  #define INT_44XX_RNG_IRQ	(52 + IRQ_GIC_START)
> +#define INT_44XX_MMC5_IRQ	(59 + IRQ_GIC_START)
>  #define INT_44XX_I2C3_IRQ	(61 + IRQ_GIC_START)
>  #define INT_44XX_FPKA_ERROR_IRQ	(64 + IRQ_GIC_START)
>  #define INT_44XX_PBIAS_IRQ	(75 + IRQ_GIC_START)
> @@ -511,6 +512,7 @@
>  #define INT_44XX_TLL_IRQ	(78 + IRQ_GIC_START)
>  #define INT_44XX_PARTHASH_IRQ	(79 + IRQ_GIC_START)
>  #define INT_44XX_MMC3_IRQ	(94 + IRQ_GIC_START)
> +#define INT_44XX_MMC4_IRQ	(96 + IRQ_GIC_START)
> 
> 
>  /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
> Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
> ===================================================================
> --- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/mmc.h
> +++ kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
> @@ -25,11 +25,18 @@
> 
>  #define OMAP24XX_NR_MMC		2
>  #define OMAP34XX_NR_MMC		3
> +#define OMAP44XX_NR_MMC		5
>  #define OMAP2420_MMC_SIZE	OMAP1_MMC_SIZE
> -#define HSMMC_SIZE		0x200
> +#define OMAP3_HSMMC_SIZE	0x200
> +#define OMAP4_HSMMC_SIZE	0x1000
>  #define OMAP2_MMC1_BASE		0x4809c000
>  #define OMAP2_MMC2_BASE		0x480b4000
>  #define OMAP3_MMC3_BASE		0x480ad000
> +#define OMAP4_MMC4_BASE		0x480d1000
> +#define OMAP4_MMC5_BASE		0x480d5000
> +#define OMAP4_MMC_REG_OFFSET	0x100
> +#define HSMMC5			(1 << 4)
> +#define HSMMC4			(1 << 3)
>  #define HSMMC3			(1 << 2)
>  #define HSMMC2			(1 << 1)
>  #define HSMMC1			(1 << 0)
> Index: kernel-omap4-base/drivers/mmc/host/Kconfig
> ===================================================================
> --- kernel-omap4-base.orig/drivers/mmc/host/Kconfig
> +++ kernel-omap4-base/drivers/mmc/host/Kconfig
> @@ -132,11 +132,11 @@ config MMC_OMAP
> 
>  config MMC_OMAP_HS
>  	tristate "TI OMAP High Speed Multimedia Card Interface support"
> -	depends on ARCH_OMAP2430 || ARCH_OMAP3
> +	depends on ARCH_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
>  	help
>  	  This selects the TI OMAP High Speed Multimedia card Interface.
> -	  If you have an OMAP2430 or OMAP3 board with a Multimedia Card
> slot,
> -	  say Y or M here.
> +	  If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
> +	  Multimedia Card slot, say Y or M here.
> 
>  	  If unsure, say N.
> 
> Index: kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
> ===================================================================
> --- kernel-omap4-base.orig/drivers/mmc/host/omap_hsmmc.c
> +++ kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c

Does changes here conflict with Adrian's patches lined up for merge
upstream? From a merge perspective as well as functionality?

> @@ -101,6 +101,8 @@
>  #define OMAP_MMC1_DEVID		0
>  #define OMAP_MMC2_DEVID		1
>  #define OMAP_MMC3_DEVID		2
> +#define OMAP_MMC4_DEVID		3
> +#define OMAP_MMC5_DEVID		4
> 
>  #define MMC_TIMEOUT_MS		20
>  #define OMAP_MMC_MASTER_CLOCK	96000000
> @@ -1096,6 +1098,14 @@ static int __init omap_mmc_probe(struct
>  		host->dma_line_tx = OMAP34XX_DMA_MMC3_TX;
>  		host->dma_line_rx = OMAP34XX_DMA_MMC3_RX;
>  		break;
> +	case OMAP_MMC4_DEVID:
> +		host->dma_line_tx = OMAP44XX_DMA_MMC4_TX;
> +		host->dma_line_rx = OMAP44XX_DMA_MMC4_RX;
> +		break;
> +	case OMAP_MMC5_DEVID:
> +		host->dma_line_tx = OMAP44XX_DMA_MMC5_TX;
> +		host->dma_line_rx = OMAP44XX_DMA_MMC5_RX;
> +		break;
>  	default:
>  		dev_err(mmc_dev(host->mmc), "Invalid MMC id\n");
>  		goto err_irq;
> 



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

* RE: [PATCH] OMAP4: MMC driver support on OMAP4
@ 2009-09-02 16:30     ` Madhusudhan
  0 siblings, 0 replies; 18+ messages in thread
From: Madhusudhan @ 2009-09-02 16:30 UTC (permalink / raw)
  To: 'kishore kadiyala', linux-kernel; +Cc: linux-omap, jarkko.lavinen



> -----Original Message-----
> From: kishore kadiyala [mailto:kishore.kadiyala@ti.com]
> Sent: Wednesday, September 02, 2009 8:30 AM
> To: linux-kernel@vger.kernel.org
> Cc: linux-omap@vger.kernel.org; jarkko.lavinen@nokia.com; madhu.cr@ti.com
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> Resending the patch, CC'ing LO.
> 
> --Kishore
> 
> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> 
> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> ---
> This patch doesn't include mmc-regulator support

What is the specific reason? How are MMC4 and MMC5 powered up then?
Does MMC1 and MMC2 work with mmctwl4030 wrapper?

> 
>  arch/arm/mach-omap2/devices.c          |   42
> +++++++++++++++++++++++++++++----
>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
>  drivers/mmc/host/Kconfig               |    6 ++--
>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
>  5 files changed, 60 insertions(+), 9 deletions(-)
> 
> Index: kernel-omap4-base/arch/arm/mach-omap2/devices.c
> ===================================================================
> --- kernel-omap4-base.orig/arch/arm/mach-omap2/devices.c
> +++ kernel-omap4-base/arch/arm/mach-omap2/devices.c
> @@ -397,7 +397,7 @@ static inline void omap_init_sha1_md5(vo
> 
>  /*-----------------------------------------------------------------------
> --*/
> 
> -#ifdef CONFIG_ARCH_OMAP3
> +#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
> 
>  #define MMCHS_SYSCONFIG			0x0010
>  #define MMCHS_SYSCONFIG_SWRESET		(1 << 1)
> @@ -424,8 +424,8 @@ static struct platform_device dummy_pdev
>   **/
>  static void __init omap_hsmmc_reset(void)
>  {
> -	u32 i, nr_controllers = cpu_is_omap34xx() ? OMAP34XX_NR_MMC :
> -		OMAP24XX_NR_MMC;
> +	u32 i, nr_controllers = cpu_is_omap44xx() ? OMAP44XX_NR_MMC :
> +		(cpu_is_omap34xx() ? OMAP34XX_NR_MMC : OMAP24XX_NR_MMC);
> 
>  	for (i = 0; i < nr_controllers; i++) {
>  		u32 v, base = 0;
> @@ -442,8 +442,21 @@ static void __init omap_hsmmc_reset(void
>  		case 2:
>  			base = OMAP3_MMC3_BASE;
>  			break;
> +		case 3:
> +			if (!cpu_is_omap44xx())
> +				return;
> +			base = OMAP4_MMC4_BASE;
> +			break;
> +		case 4:
> +			if (!cpu_is_omap44xx())
> +				return;
> +			base = OMAP4_MMC5_BASE;
> +			break;
>  		}
> 
> +		if (cpu_is_omap44xx())
> +			base += OMAP4_MMC_REG_OFFSET;
> +
>  		dummy_pdev.id = i;
>  		dev_set_name(&dummy_pdev.dev, "mmci-omap-hs.%d", i);
>  		iclk = clk_get(dev, "ick");
> @@ -540,11 +553,23 @@ void __init omap2_init_mmc(struct omap_m
>  			irq = INT_24XX_MMC2_IRQ;
>  			break;
>  		case 2:
> -			if (!cpu_is_omap34xx())
> +			if (!cpu_is_omap44xx() && !cpu_is_omap34xx())
>  				return;
>  			base = OMAP3_MMC3_BASE;
>  			irq = INT_34XX_MMC3_IRQ;
>  			break;
> +		case 3:
> +			if (!cpu_is_omap44xx())
> +				return;
> +			base = OMAP4_MMC4_BASE + OMAP4_MMC_REG_OFFSET;

The reset fn sets up the base as "OMAP4_MMC4_BASE". Why add the OFFSET here?

> +			irq = INT_44XX_MMC4_IRQ;
> +			break;
> +		case 4:
> +			if (!cpu_is_omap44xx())
> +				return;
> +			base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
Ditto
> +			irq = INT_44XX_MMC5_IRQ;
> +			break;
>  		default:
>  			continue;
>  		}
> @@ -552,8 +577,15 @@ void __init omap2_init_mmc(struct omap_m
>  		if (cpu_is_omap2420()) {
>  			size = OMAP2420_MMC_SIZE;
>  			name = "mmci-omap";
> +		} else if (cpu_is_omap44xx()) {
> +			if (i < 3) {
> +				base += OMAP4_MMC_REG_OFFSET;
> +				irq += IRQ_GIC_START;
Why base is updated at multiple places within this fn?
> +			}
> +			size = OMAP4_HSMMC_SIZE;
> +			name = "mmci-omap-hs";
>  		} else {
> -			size = HSMMC_SIZE;
> +			size = OMAP3_HSMMC_SIZE;
>  			name = "mmci-omap-hs";
>  		}
>  		omap_mmc_add(name, i, base, size, irq, mmc_data[i]);
> Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
> ===================================================================
> --- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/irqs.h
> +++ kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
> @@ -503,6 +503,7 @@
>  #define INT_44XX_FPKA_READY_IRQ	(50 + IRQ_GIC_START)
>  #define INT_44XX_SHA1MD51_IRQ	(51 + IRQ_GIC_START)
>  #define INT_44XX_RNG_IRQ	(52 + IRQ_GIC_START)
> +#define INT_44XX_MMC5_IRQ	(59 + IRQ_GIC_START)
>  #define INT_44XX_I2C3_IRQ	(61 + IRQ_GIC_START)
>  #define INT_44XX_FPKA_ERROR_IRQ	(64 + IRQ_GIC_START)
>  #define INT_44XX_PBIAS_IRQ	(75 + IRQ_GIC_START)
> @@ -511,6 +512,7 @@
>  #define INT_44XX_TLL_IRQ	(78 + IRQ_GIC_START)
>  #define INT_44XX_PARTHASH_IRQ	(79 + IRQ_GIC_START)
>  #define INT_44XX_MMC3_IRQ	(94 + IRQ_GIC_START)
> +#define INT_44XX_MMC4_IRQ	(96 + IRQ_GIC_START)
> 
> 
>  /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
> Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
> ===================================================================
> --- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/mmc.h
> +++ kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
> @@ -25,11 +25,18 @@
> 
>  #define OMAP24XX_NR_MMC		2
>  #define OMAP34XX_NR_MMC		3
> +#define OMAP44XX_NR_MMC		5
>  #define OMAP2420_MMC_SIZE	OMAP1_MMC_SIZE
> -#define HSMMC_SIZE		0x200
> +#define OMAP3_HSMMC_SIZE	0x200
> +#define OMAP4_HSMMC_SIZE	0x1000
>  #define OMAP2_MMC1_BASE		0x4809c000
>  #define OMAP2_MMC2_BASE		0x480b4000
>  #define OMAP3_MMC3_BASE		0x480ad000
> +#define OMAP4_MMC4_BASE		0x480d1000
> +#define OMAP4_MMC5_BASE		0x480d5000
> +#define OMAP4_MMC_REG_OFFSET	0x100
> +#define HSMMC5			(1 << 4)
> +#define HSMMC4			(1 << 3)
>  #define HSMMC3			(1 << 2)
>  #define HSMMC2			(1 << 1)
>  #define HSMMC1			(1 << 0)
> Index: kernel-omap4-base/drivers/mmc/host/Kconfig
> ===================================================================
> --- kernel-omap4-base.orig/drivers/mmc/host/Kconfig
> +++ kernel-omap4-base/drivers/mmc/host/Kconfig
> @@ -132,11 +132,11 @@ config MMC_OMAP
> 
>  config MMC_OMAP_HS
>  	tristate "TI OMAP High Speed Multimedia Card Interface support"
> -	depends on ARCH_OMAP2430 || ARCH_OMAP3
> +	depends on ARCH_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
>  	help
>  	  This selects the TI OMAP High Speed Multimedia card Interface.
> -	  If you have an OMAP2430 or OMAP3 board with a Multimedia Card
> slot,
> -	  say Y or M here.
> +	  If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
> +	  Multimedia Card slot, say Y or M here.
> 
>  	  If unsure, say N.
> 
> Index: kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
> ===================================================================
> --- kernel-omap4-base.orig/drivers/mmc/host/omap_hsmmc.c
> +++ kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c

Does changes here conflict with Adrian's patches lined up for merge
upstream? From a merge perspective as well as functionality?

> @@ -101,6 +101,8 @@
>  #define OMAP_MMC1_DEVID		0
>  #define OMAP_MMC2_DEVID		1
>  #define OMAP_MMC3_DEVID		2
> +#define OMAP_MMC4_DEVID		3
> +#define OMAP_MMC5_DEVID		4
> 
>  #define MMC_TIMEOUT_MS		20
>  #define OMAP_MMC_MASTER_CLOCK	96000000
> @@ -1096,6 +1098,14 @@ static int __init omap_mmc_probe(struct
>  		host->dma_line_tx = OMAP34XX_DMA_MMC3_TX;
>  		host->dma_line_rx = OMAP34XX_DMA_MMC3_RX;
>  		break;
> +	case OMAP_MMC4_DEVID:
> +		host->dma_line_tx = OMAP44XX_DMA_MMC4_TX;
> +		host->dma_line_rx = OMAP44XX_DMA_MMC4_RX;
> +		break;
> +	case OMAP_MMC5_DEVID:
> +		host->dma_line_tx = OMAP44XX_DMA_MMC5_TX;
> +		host->dma_line_rx = OMAP44XX_DMA_MMC5_RX;
> +		break;
>  	default:
>  		dev_err(mmc_dev(host->mmc), "Invalid MMC id\n");
>  		goto err_irq;
> 



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

* Re: [PATCH] OMAP4: MMC driver support on OMAP4
  2009-09-02 16:30     ` Madhusudhan
  (?)
@ 2009-09-03 16:04     ` kishore kadiyala
  2009-09-04  0:45         ` Madhusudhan
  -1 siblings, 1 reply; 18+ messages in thread
From: kishore kadiyala @ 2009-09-03 16:04 UTC (permalink / raw)
  To: Madhusudhan; +Cc: kishore kadiyala, linux-kernel, linux-omap, jarkko.lavinen

On Wed, Sep 2, 2009 at 10:00 PM, Madhusudhan <madhu.cr@ti.com> wrote:
>
>
> > -----Original Message-----
> > From: kishore kadiyala [mailto:kishore.kadiyala@ti.com]
> > Sent: Wednesday, September 02, 2009 8:30 AM
> > To: linux-kernel@vger.kernel.org
> > Cc: linux-omap@vger.kernel.org; jarkko.lavinen@nokia.com; madhu.cr@ti.com
> > Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> >
> > Resending the patch, CC'ing LO.
> >
> > --Kishore
> >
> > This Patch adds basic support for all 5 MMC controllers on OMAP4.
> >
> > Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> > ---
> > This patch doesn't include mmc-regulator support
>
> What is the specific reason? How are MMC4 and MMC5 powered up then?
> Does MMC1 and MMC2 work with mmctwl4030 wrapper?

OMAP4 uses twl6030 instead of twl4030 and the MMC1 & MMC2 doesn't
work as it is with the mmc-twl4030 . I will be sending a Patch for mmc-regulator
which will have dependency on regulator patches  from Rajendra Nayak.
>
> >
> >  arch/arm/mach-omap2/devices.c          |   42
> > +++++++++++++++++++++++++++++----
> >  arch/arm/plat-omap/include/mach/irqs.h |    2 +
> >  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
> >  drivers/mmc/host/Kconfig               |    6 ++--
> >  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
> >  5 files changed, 60 insertions(+), 9 deletions(-)
> >
> > Index: kernel-omap4-base/arch/arm/mach-omap2/devices.c
> > ===================================================================
> > --- kernel-omap4-base.orig/arch/arm/mach-omap2/devices.c
> > +++ kernel-omap4-base/arch/arm/mach-omap2/devices.c
> > @@ -397,7 +397,7 @@ static inline void omap_init_sha1_md5(vo
> >
> >  /*-----------------------------------------------------------------------
> > --*/
> >
> > -#ifdef CONFIG_ARCH_OMAP3
> > +#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
> >
> >  #define MMCHS_SYSCONFIG                      0x0010
> >  #define MMCHS_SYSCONFIG_SWRESET              (1 << 1)
> > @@ -424,8 +424,8 @@ static struct platform_device dummy_pdev
> >   **/
> >  static void __init omap_hsmmc_reset(void)
> >  {
> > -     u32 i, nr_controllers = cpu_is_omap34xx() ? OMAP34XX_NR_MMC :
> > -             OMAP24XX_NR_MMC;
> > +     u32 i, nr_controllers = cpu_is_omap44xx() ? OMAP44XX_NR_MMC :
> > +             (cpu_is_omap34xx() ? OMAP34XX_NR_MMC : OMAP24XX_NR_MMC);
> >
> >       for (i = 0; i < nr_controllers; i++) {
> >               u32 v, base = 0;
> > @@ -442,8 +442,21 @@ static void __init omap_hsmmc_reset(void
> >               case 2:
> >                       base = OMAP3_MMC3_BASE;
> >                       break;
> > +             case 3:
> > +                     if (!cpu_is_omap44xx())
> > +                             return;
> > +                     base = OMAP4_MMC4_BASE;
> > +                     break;
> > +             case 4:
> > +                     if (!cpu_is_omap44xx())
> > +                             return;
> > +                     base = OMAP4_MMC5_BASE;
> > +                     break;
> >               }
> >
> > +             if (cpu_is_omap44xx())
> > +                     base += OMAP4_MMC_REG_OFFSET;
> > +
> >               dummy_pdev.id = i;
> >               dev_set_name(&dummy_pdev.dev, "mmci-omap-hs.%d", i);
> >               iclk = clk_get(dev, "ick");
> > @@ -540,11 +553,23 @@ void __init omap2_init_mmc(struct omap_m
> >                       irq = INT_24XX_MMC2_IRQ;
> >                       break;
> >               case 2:
> > -                     if (!cpu_is_omap34xx())
> > +                     if (!cpu_is_omap44xx() && !cpu_is_omap34xx())
> >                               return;
> >                       base = OMAP3_MMC3_BASE;
> >                       irq = INT_34XX_MMC3_IRQ;
> >                       break;
> > +             case 3:
> > +                     if (!cpu_is_omap44xx())
> > +                             return;
> > +                     base = OMAP4_MMC4_BASE + OMAP4_MMC_REG_OFFSET;
>
> The reset fn sets up the base as "OMAP4_MMC4_BASE". Why add the OFFSET here?

Check in reset fn , if it is omap44xx its adding OFFSET there as well.
>
> > +                     irq = INT_44XX_MMC4_IRQ;
> > +                     break;
> > +             case 4:
> > +                     if (!cpu_is_omap44xx())
> > +                             return;
> > +                     base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
> Ditto
> > +                     irq = INT_44XX_MMC5_IRQ;
> > +                     break;
> >               default:
> >                       continue;
> >               }
> > @@ -552,8 +577,15 @@ void __init omap2_init_mmc(struct omap_m
> >               if (cpu_is_omap2420()) {
> >                       size = OMAP2420_MMC_SIZE;
> >                       name = "mmci-omap";
> > +             } else if (cpu_is_omap44xx()) {
> > +                     if (i < 3) {
> > +                             base += OMAP4_MMC_REG_OFFSET;
> > +                             irq += IRQ_GIC_START;
> Why base is updated at multiple places within this fn?

For OMAP3 mmc controllers to support OMAP4 the OFFSET is added here and these
avoids adding the offset to all controller registers in omap_hsmmc.c .
For new OMAP4 mmc controllers 4 & 5 , the addition of OFFSET has been
taken care in respective case statements
>
> > +                     }
> > +                     size = OMAP4_HSMMC_SIZE;
> > +                     name = "mmci-omap-hs";
> >               } else {
> > -                     size = HSMMC_SIZE;
> > +                     size = OMAP3_HSMMC_SIZE;
> >                       name = "mmci-omap-hs";
> >               }
> >               omap_mmc_add(name, i, base, size, irq, mmc_data[i]);
> > Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
> > ===================================================================
> > --- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/irqs.h
> > +++ kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
> > @@ -503,6 +503,7 @@
> >  #define INT_44XX_FPKA_READY_IRQ      (50 + IRQ_GIC_START)
> >  #define INT_44XX_SHA1MD51_IRQ        (51 + IRQ_GIC_START)
> >  #define INT_44XX_RNG_IRQ     (52 + IRQ_GIC_START)
> > +#define INT_44XX_MMC5_IRQ    (59 + IRQ_GIC_START)
> >  #define INT_44XX_I2C3_IRQ    (61 + IRQ_GIC_START)
> >  #define INT_44XX_FPKA_ERROR_IRQ      (64 + IRQ_GIC_START)
> >  #define INT_44XX_PBIAS_IRQ   (75 + IRQ_GIC_START)
> > @@ -511,6 +512,7 @@
> >  #define INT_44XX_TLL_IRQ     (78 + IRQ_GIC_START)
> >  #define INT_44XX_PARTHASH_IRQ        (79 + IRQ_GIC_START)
> >  #define INT_44XX_MMC3_IRQ    (94 + IRQ_GIC_START)
> > +#define INT_44XX_MMC4_IRQ    (96 + IRQ_GIC_START)
> >
> >
> >  /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
> > Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
> > ===================================================================
> > --- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/mmc.h
> > +++ kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
> > @@ -25,11 +25,18 @@
> >
> >  #define OMAP24XX_NR_MMC              2
> >  #define OMAP34XX_NR_MMC              3
> > +#define OMAP44XX_NR_MMC              5
> >  #define OMAP2420_MMC_SIZE    OMAP1_MMC_SIZE
> > -#define HSMMC_SIZE           0x200
> > +#define OMAP3_HSMMC_SIZE     0x200
> > +#define OMAP4_HSMMC_SIZE     0x1000
> >  #define OMAP2_MMC1_BASE              0x4809c000
> >  #define OMAP2_MMC2_BASE              0x480b4000
> >  #define OMAP3_MMC3_BASE              0x480ad000
> > +#define OMAP4_MMC4_BASE              0x480d1000
> > +#define OMAP4_MMC5_BASE              0x480d5000
> > +#define OMAP4_MMC_REG_OFFSET 0x100
> > +#define HSMMC5                       (1 << 4)
> > +#define HSMMC4                       (1 << 3)
> >  #define HSMMC3                       (1 << 2)
> >  #define HSMMC2                       (1 << 1)
> >  #define HSMMC1                       (1 << 0)
> > Index: kernel-omap4-base/drivers/mmc/host/Kconfig
> > ===================================================================
> > --- kernel-omap4-base.orig/drivers/mmc/host/Kconfig
> > +++ kernel-omap4-base/drivers/mmc/host/Kconfig
> > @@ -132,11 +132,11 @@ config MMC_OMAP
> >
> >  config MMC_OMAP_HS
> >       tristate "TI OMAP High Speed Multimedia Card Interface support"
> > -     depends on ARCH_OMAP2430 || ARCH_OMAP3
> > +     depends on ARCH_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
> >       help
> >         This selects the TI OMAP High Speed Multimedia card Interface.
> > -       If you have an OMAP2430 or OMAP3 board with a Multimedia Card
> > slot,
> > -       say Y or M here.
> > +       If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
> > +       Multimedia Card slot, say Y or M here.
> >
> >         If unsure, say N.
> >
> > Index: kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
> > ===================================================================
> > --- kernel-omap4-base.orig/drivers/mmc/host/omap_hsmmc.c
> > +++ kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
>
> Does changes here conflict with Adrian's patches lined up for merge
> upstream? From a merge perspective as well as functionality?

This patch applies with couple of hunks on Adrain's 32 series

>
> > @@ -101,6 +101,8 @@
> >  #define OMAP_MMC1_DEVID              0
> >  #define OMAP_MMC2_DEVID              1
> >  #define OMAP_MMC3_DEVID              2
> > +#define OMAP_MMC4_DEVID              3
> > +#define OMAP_MMC5_DEVID              4
> >
> >  #define MMC_TIMEOUT_MS               20
> >  #define OMAP_MMC_MASTER_CLOCK        96000000
> > @@ -1096,6 +1098,14 @@ static int __init omap_mmc_probe(struct
> >               host->dma_line_tx = OMAP34XX_DMA_MMC3_TX;
> >               host->dma_line_rx = OMAP34XX_DMA_MMC3_RX;
> >               break;
> > +     case OMAP_MMC4_DEVID:
> > +             host->dma_line_tx = OMAP44XX_DMA_MMC4_TX;
> > +             host->dma_line_rx = OMAP44XX_DMA_MMC4_RX;
> > +             break;
> > +     case OMAP_MMC5_DEVID:
> > +             host->dma_line_tx = OMAP44XX_DMA_MMC5_TX;
> > +             host->dma_line_rx = OMAP44XX_DMA_MMC5_RX;
> > +             break;
> >       default:
> >               dev_err(mmc_dev(host->mmc), "Invalid MMC id\n");
> >               goto err_irq;
> >
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

* RE: [PATCH] OMAP4: MMC driver support on OMAP4
  2009-09-03 16:04     ` kishore kadiyala
@ 2009-09-04  0:45         ` Madhusudhan
  0 siblings, 0 replies; 18+ messages in thread
From: Madhusudhan @ 2009-09-04  0:45 UTC (permalink / raw)
  To: 'kishore kadiyala'
  Cc: 'kishore kadiyala', linux-kernel, linux-omap,
	jarkko.lavinen



> -----Original Message-----
> From: kishore kadiyala [mailto:kishorek.kadiyala@gmail.com]
> Sent: Thursday, September 03, 2009 11:04 AM
> To: Madhusudhan
> Cc: kishore kadiyala; linux-kernel@vger.kernel.org; linux-
> omap@vger.kernel.org; jarkko.lavinen@nokia.com
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> On Wed, Sep 2, 2009 at 10:00 PM, Madhusudhan <madhu.cr@ti.com> wrote:
> >
> >
> > > -----Original Message-----
> > > From: kishore kadiyala [mailto:kishore.kadiyala@ti.com]
> > > Sent: Wednesday, September 02, 2009 8:30 AM
> > > To: linux-kernel@vger.kernel.org
> > > Cc: linux-omap@vger.kernel.org; jarkko.lavinen@nokia.com;
> madhu.cr@ti.com
> > > Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> > >
> > > Resending the patch, CC'ing LO.
> > >
> > > --Kishore
> > >
> > > This Patch adds basic support for all 5 MMC controllers on OMAP4.
> > >
> > > Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> > > ---
> > > This patch doesn't include mmc-regulator support
> >
> > What is the specific reason? How are MMC4 and MMC5 powered up then?
> > Does MMC1 and MMC2 work with mmctwl4030 wrapper?
> 
> OMAP4 uses twl6030 instead of twl4030 and the MMC1 & MMC2 doesn't
> work as it is with the mmc-twl4030 . I will be sending a Patch for mmc-
> regulator
> which will have dependency on regulator patches  from Rajendra Nayak.

Which of the OMAP4 controllers become useable with this patch?
I guess you might be supporting only one-bit bus width with this patch.
It would be good if your patch header describes what is supported with this
patch.

Please CC linux-mmc@vger.kernel.org.



> >
> > >
> > >  arch/arm/mach-omap2/devices.c          |   42
> > > +++++++++++++++++++++++++++++----
> > >  arch/arm/plat-omap/include/mach/irqs.h |    2 +
> > >  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
> > >  drivers/mmc/host/Kconfig               |    6 ++--
> > >  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
> > >  5 files changed, 60 insertions(+), 9 deletions(-)
> > >
> > > Index: kernel-omap4-base/arch/arm/mach-omap2/devices.c
> > > ===================================================================
> > > --- kernel-omap4-base.orig/arch/arm/mach-omap2/devices.c
> > > +++ kernel-omap4-base/arch/arm/mach-omap2/devices.c
> > > @@ -397,7 +397,7 @@ static inline void omap_init_sha1_md5(vo
> > >
> > >  /*-------------------------------------------------------------------
> ----
> > > --*/
> > >
> > > -#ifdef CONFIG_ARCH_OMAP3
> > > +#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
> > >
> > >  #define MMCHS_SYSCONFIG                      0x0010
> > >  #define MMCHS_SYSCONFIG_SWRESET              (1 << 1)
> > > @@ -424,8 +424,8 @@ static struct platform_device dummy_pdev
> > >   **/
> > >  static void __init omap_hsmmc_reset(void)
> > >  {
> > > -     u32 i, nr_controllers = cpu_is_omap34xx() ? OMAP34XX_NR_MMC :
> > > -             OMAP24XX_NR_MMC;
> > > +     u32 i, nr_controllers = cpu_is_omap44xx() ? OMAP44XX_NR_MMC :
> > > +             (cpu_is_omap34xx() ? OMAP34XX_NR_MMC : OMAP24XX_NR_MMC);
> > >
> > >       for (i = 0; i < nr_controllers; i++) {
> > >               u32 v, base = 0;
> > > @@ -442,8 +442,21 @@ static void __init omap_hsmmc_reset(void
> > >               case 2:
> > >                       base = OMAP3_MMC3_BASE;
> > >                       break;
> > > +             case 3:
> > > +                     if (!cpu_is_omap44xx())
> > > +                             return;
> > > +                     base = OMAP4_MMC4_BASE;
> > > +                     break;
> > > +             case 4:
> > > +                     if (!cpu_is_omap44xx())
> > > +                             return;
> > > +                     base = OMAP4_MMC5_BASE;
> > > +                     break;
> > >               }
> > >
> > > +             if (cpu_is_omap44xx())
> > > +                     base += OMAP4_MMC_REG_OFFSET;
> > > +
> > >               dummy_pdev.id = i;
> > >               dev_set_name(&dummy_pdev.dev, "mmci-omap-hs.%d", i);
> > >               iclk = clk_get(dev, "ick");
> > > @@ -540,11 +553,23 @@ void __init omap2_init_mmc(struct omap_m
> > >                       irq = INT_24XX_MMC2_IRQ;
> > >                       break;
> > >               case 2:
> > > -                     if (!cpu_is_omap34xx())
> > > +                     if (!cpu_is_omap44xx() && !cpu_is_omap34xx())
> > >                               return;
> > >                       base = OMAP3_MMC3_BASE;
> > >                       irq = INT_34XX_MMC3_IRQ;
> > >                       break;
> > > +             case 3:
> > > +                     if (!cpu_is_omap44xx())
> > > +                             return;
> > > +                     base = OMAP4_MMC4_BASE + OMAP4_MMC_REG_OFFSET;
> >
> > The reset fn sets up the base as "OMAP4_MMC4_BASE". Why add the OFFSET
> here?
> 
> Check in reset fn , if it is omap44xx its adding OFFSET there as well.
> >
> > > +                     irq = INT_44XX_MMC4_IRQ;
> > > +                     break;
> > > +             case 4:
> > > +                     if (!cpu_is_omap44xx())
> > > +                             return;
> > > +                     base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
> > Ditto
> > > +                     irq = INT_44XX_MMC5_IRQ;
> > > +                     break;
> > >               default:
> > >                       continue;
> > >               }
> > > @@ -552,8 +577,15 @@ void __init omap2_init_mmc(struct omap_m
> > >               if (cpu_is_omap2420()) {
> > >                       size = OMAP2420_MMC_SIZE;
> > >                       name = "mmci-omap";
> > > +             } else if (cpu_is_omap44xx()) {
> > > +                     if (i < 3) {
> > > +                             base += OMAP4_MMC_REG_OFFSET;
> > > +                             irq += IRQ_GIC_START;
> > Why base is updated at multiple places within this fn?
> 
> For OMAP3 mmc controllers to support OMAP4 the OFFSET is added here and
> these
> avoids adding the offset to all controller registers in omap_hsmmc.c .
> For new OMAP4 mmc controllers 4 & 5 , the addition of OFFSET has been
> taken care in respective case statements
> >
> > > +                     }
> > > +                     size = OMAP4_HSMMC_SIZE;
> > > +                     name = "mmci-omap-hs";
> > >               } else {
> > > -                     size = HSMMC_SIZE;
> > > +                     size = OMAP3_HSMMC_SIZE;
> > >                       name = "mmci-omap-hs";
> > >               }
> > >               omap_mmc_add(name, i, base, size, irq, mmc_data[i]);
> > > Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
> > > ===================================================================
> > > --- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/irqs.h
> > > +++ kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
> > > @@ -503,6 +503,7 @@
> > >  #define INT_44XX_FPKA_READY_IRQ      (50 + IRQ_GIC_START)
> > >  #define INT_44XX_SHA1MD51_IRQ        (51 + IRQ_GIC_START)
> > >  #define INT_44XX_RNG_IRQ     (52 + IRQ_GIC_START)
> > > +#define INT_44XX_MMC5_IRQ    (59 + IRQ_GIC_START)
> > >  #define INT_44XX_I2C3_IRQ    (61 + IRQ_GIC_START)
> > >  #define INT_44XX_FPKA_ERROR_IRQ      (64 + IRQ_GIC_START)
> > >  #define INT_44XX_PBIAS_IRQ   (75 + IRQ_GIC_START)
> > > @@ -511,6 +512,7 @@
> > >  #define INT_44XX_TLL_IRQ     (78 + IRQ_GIC_START)
> > >  #define INT_44XX_PARTHASH_IRQ        (79 + IRQ_GIC_START)
> > >  #define INT_44XX_MMC3_IRQ    (94 + IRQ_GIC_START)
> > > +#define INT_44XX_MMC4_IRQ    (96 + IRQ_GIC_START)
> > >
> > >
> > >  /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
> > > Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
> > > ===================================================================
> > > --- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/mmc.h
> > > +++ kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
> > > @@ -25,11 +25,18 @@
> > >
> > >  #define OMAP24XX_NR_MMC              2
> > >  #define OMAP34XX_NR_MMC              3
> > > +#define OMAP44XX_NR_MMC              5
> > >  #define OMAP2420_MMC_SIZE    OMAP1_MMC_SIZE
> > > -#define HSMMC_SIZE           0x200
> > > +#define OMAP3_HSMMC_SIZE     0x200
> > > +#define OMAP4_HSMMC_SIZE     0x1000
> > >  #define OMAP2_MMC1_BASE              0x4809c000
> > >  #define OMAP2_MMC2_BASE              0x480b4000
> > >  #define OMAP3_MMC3_BASE              0x480ad000
> > > +#define OMAP4_MMC4_BASE              0x480d1000
> > > +#define OMAP4_MMC5_BASE              0x480d5000
> > > +#define OMAP4_MMC_REG_OFFSET 0x100
> > > +#define HSMMC5                       (1 << 4)
> > > +#define HSMMC4                       (1 << 3)
> > >  #define HSMMC3                       (1 << 2)
> > >  #define HSMMC2                       (1 << 1)
> > >  #define HSMMC1                       (1 << 0)
> > > Index: kernel-omap4-base/drivers/mmc/host/Kconfig
> > > ===================================================================
> > > --- kernel-omap4-base.orig/drivers/mmc/host/Kconfig
> > > +++ kernel-omap4-base/drivers/mmc/host/Kconfig
> > > @@ -132,11 +132,11 @@ config MMC_OMAP
> > >
> > >  config MMC_OMAP_HS
> > >       tristate "TI OMAP High Speed Multimedia Card Interface support"
> > > -     depends on ARCH_OMAP2430 || ARCH_OMAP3
> > > +     depends on ARCH_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
> > >       help
> > >         This selects the TI OMAP High Speed Multimedia card Interface.
> > > -       If you have an OMAP2430 or OMAP3 board with a Multimedia Card
> > > slot,
> > > -       say Y or M here.
> > > +       If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
> > > +       Multimedia Card slot, say Y or M here.
> > >
> > >         If unsure, say N.
> > >
> > > Index: kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
> > > ===================================================================
> > > --- kernel-omap4-base.orig/drivers/mmc/host/omap_hsmmc.c
> > > +++ kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
> >
> > Does changes here conflict with Adrian's patches lined up for merge
> > upstream? From a merge perspective as well as functionality?
> 
> This patch applies with couple of hunks on Adrain's 32 series
> 
Sorry, I forgot to mention that there is one more patch submitted by me
lined up for merge upstream to handle the debounce clock on top of Adrian's
series.

http://userweb.kernel.org/~akpm/mmotm/broken-out/omap_hsmmc-ensure-all-clock
-enables-and-disables-are-paired-fix-for-the-db-clock-failure-message.patch

You might want to rebase on top of this and test the driver on both
OMAP3/OMAP4 to make sure nothing is broken.


> >
> > > @@ -101,6 +101,8 @@
> > >  #define OMAP_MMC1_DEVID              0
> > >  #define OMAP_MMC2_DEVID              1
> > >  #define OMAP_MMC3_DEVID              2
> > > +#define OMAP_MMC4_DEVID              3
> > > +#define OMAP_MMC5_DEVID              4
> > >
> > >  #define MMC_TIMEOUT_MS               20
> > >  #define OMAP_MMC_MASTER_CLOCK        96000000
> > > @@ -1096,6 +1098,14 @@ static int __init omap_mmc_probe(struct
> > >               host->dma_line_tx = OMAP34XX_DMA_MMC3_TX;
> > >               host->dma_line_rx = OMAP34XX_DMA_MMC3_RX;
> > >               break;
> > > +     case OMAP_MMC4_DEVID:
> > > +             host->dma_line_tx = OMAP44XX_DMA_MMC4_TX;
> > > +             host->dma_line_rx = OMAP44XX_DMA_MMC4_RX;
> > > +             break;
> > > +     case OMAP_MMC5_DEVID:
> > > +             host->dma_line_tx = OMAP44XX_DMA_MMC5_TX;
> > > +             host->dma_line_rx = OMAP44XX_DMA_MMC5_RX;
> > > +             break;
> > >       default:
> > >               dev_err(mmc_dev(host->mmc), "Invalid MMC id\n");
> > >               goto err_irq;
> > >
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel"
> in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at  http://www.tux.org/lkml/



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

* RE: [PATCH] OMAP4: MMC driver support on OMAP4
@ 2009-09-04  0:45         ` Madhusudhan
  0 siblings, 0 replies; 18+ messages in thread
From: Madhusudhan @ 2009-09-04  0:45 UTC (permalink / raw)
  To: 'kishore kadiyala'
  Cc: 'kishore kadiyala', linux-kernel, linux-omap,
	jarkko.lavinen



> -----Original Message-----
> From: kishore kadiyala [mailto:kishorek.kadiyala@gmail.com]
> Sent: Thursday, September 03, 2009 11:04 AM
> To: Madhusudhan
> Cc: kishore kadiyala; linux-kernel@vger.kernel.org; linux-
> omap@vger.kernel.org; jarkko.lavinen@nokia.com
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> On Wed, Sep 2, 2009 at 10:00 PM, Madhusudhan <madhu.cr@ti.com> wrote:
> >
> >
> > > -----Original Message-----
> > > From: kishore kadiyala [mailto:kishore.kadiyala@ti.com]
> > > Sent: Wednesday, September 02, 2009 8:30 AM
> > > To: linux-kernel@vger.kernel.org
> > > Cc: linux-omap@vger.kernel.org; jarkko.lavinen@nokia.com;
> madhu.cr@ti.com
> > > Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> > >
> > > Resending the patch, CC'ing LO.
> > >
> > > --Kishore
> > >
> > > This Patch adds basic support for all 5 MMC controllers on OMAP4.
> > >
> > > Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> > > ---
> > > This patch doesn't include mmc-regulator support
> >
> > What is the specific reason? How are MMC4 and MMC5 powered up then?
> > Does MMC1 and MMC2 work with mmctwl4030 wrapper?
> 
> OMAP4 uses twl6030 instead of twl4030 and the MMC1 & MMC2 doesn't
> work as it is with the mmc-twl4030 . I will be sending a Patch for mmc-
> regulator
> which will have dependency on regulator patches  from Rajendra Nayak.

Which of the OMAP4 controllers become useable with this patch?
I guess you might be supporting only one-bit bus width with this patch.
It would be good if your patch header describes what is supported with this
patch.

Please CC linux-mmc@vger.kernel.org.



> >
> > >
> > >  arch/arm/mach-omap2/devices.c          |   42
> > > +++++++++++++++++++++++++++++----
> > >  arch/arm/plat-omap/include/mach/irqs.h |    2 +
> > >  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
> > >  drivers/mmc/host/Kconfig               |    6 ++--
> > >  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
> > >  5 files changed, 60 insertions(+), 9 deletions(-)
> > >
> > > Index: kernel-omap4-base/arch/arm/mach-omap2/devices.c
> > > ===================================================================
> > > --- kernel-omap4-base.orig/arch/arm/mach-omap2/devices.c
> > > +++ kernel-omap4-base/arch/arm/mach-omap2/devices.c
> > > @@ -397,7 +397,7 @@ static inline void omap_init_sha1_md5(vo
> > >
> > >  /*-------------------------------------------------------------------
> ----
> > > --*/
> > >
> > > -#ifdef CONFIG_ARCH_OMAP3
> > > +#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
> > >
> > >  #define MMCHS_SYSCONFIG                      0x0010
> > >  #define MMCHS_SYSCONFIG_SWRESET              (1 << 1)
> > > @@ -424,8 +424,8 @@ static struct platform_device dummy_pdev
> > >   **/
> > >  static void __init omap_hsmmc_reset(void)
> > >  {
> > > -     u32 i, nr_controllers = cpu_is_omap34xx() ? OMAP34XX_NR_MMC :
> > > -             OMAP24XX_NR_MMC;
> > > +     u32 i, nr_controllers = cpu_is_omap44xx() ? OMAP44XX_NR_MMC :
> > > +             (cpu_is_omap34xx() ? OMAP34XX_NR_MMC : OMAP24XX_NR_MMC);
> > >
> > >       for (i = 0; i < nr_controllers; i++) {
> > >               u32 v, base = 0;
> > > @@ -442,8 +442,21 @@ static void __init omap_hsmmc_reset(void
> > >               case 2:
> > >                       base = OMAP3_MMC3_BASE;
> > >                       break;
> > > +             case 3:
> > > +                     if (!cpu_is_omap44xx())
> > > +                             return;
> > > +                     base = OMAP4_MMC4_BASE;
> > > +                     break;
> > > +             case 4:
> > > +                     if (!cpu_is_omap44xx())
> > > +                             return;
> > > +                     base = OMAP4_MMC5_BASE;
> > > +                     break;
> > >               }
> > >
> > > +             if (cpu_is_omap44xx())
> > > +                     base += OMAP4_MMC_REG_OFFSET;
> > > +
> > >               dummy_pdev.id = i;
> > >               dev_set_name(&dummy_pdev.dev, "mmci-omap-hs.%d", i);
> > >               iclk = clk_get(dev, "ick");
> > > @@ -540,11 +553,23 @@ void __init omap2_init_mmc(struct omap_m
> > >                       irq = INT_24XX_MMC2_IRQ;
> > >                       break;
> > >               case 2:
> > > -                     if (!cpu_is_omap34xx())
> > > +                     if (!cpu_is_omap44xx() && !cpu_is_omap34xx())
> > >                               return;
> > >                       base = OMAP3_MMC3_BASE;
> > >                       irq = INT_34XX_MMC3_IRQ;
> > >                       break;
> > > +             case 3:
> > > +                     if (!cpu_is_omap44xx())
> > > +                             return;
> > > +                     base = OMAP4_MMC4_BASE + OMAP4_MMC_REG_OFFSET;
> >
> > The reset fn sets up the base as "OMAP4_MMC4_BASE". Why add the OFFSET
> here?
> 
> Check in reset fn , if it is omap44xx its adding OFFSET there as well.
> >
> > > +                     irq = INT_44XX_MMC4_IRQ;
> > > +                     break;
> > > +             case 4:
> > > +                     if (!cpu_is_omap44xx())
> > > +                             return;
> > > +                     base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
> > Ditto
> > > +                     irq = INT_44XX_MMC5_IRQ;
> > > +                     break;
> > >               default:
> > >                       continue;
> > >               }
> > > @@ -552,8 +577,15 @@ void __init omap2_init_mmc(struct omap_m
> > >               if (cpu_is_omap2420()) {
> > >                       size = OMAP2420_MMC_SIZE;
> > >                       name = "mmci-omap";
> > > +             } else if (cpu_is_omap44xx()) {
> > > +                     if (i < 3) {
> > > +                             base += OMAP4_MMC_REG_OFFSET;
> > > +                             irq += IRQ_GIC_START;
> > Why base is updated at multiple places within this fn?
> 
> For OMAP3 mmc controllers to support OMAP4 the OFFSET is added here and
> these
> avoids adding the offset to all controller registers in omap_hsmmc.c .
> For new OMAP4 mmc controllers 4 & 5 , the addition of OFFSET has been
> taken care in respective case statements
> >
> > > +                     }
> > > +                     size = OMAP4_HSMMC_SIZE;
> > > +                     name = "mmci-omap-hs";
> > >               } else {
> > > -                     size = HSMMC_SIZE;
> > > +                     size = OMAP3_HSMMC_SIZE;
> > >                       name = "mmci-omap-hs";
> > >               }
> > >               omap_mmc_add(name, i, base, size, irq, mmc_data[i]);
> > > Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
> > > ===================================================================
> > > --- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/irqs.h
> > > +++ kernel-omap4-base/arch/arm/plat-omap/include/mach/irqs.h
> > > @@ -503,6 +503,7 @@
> > >  #define INT_44XX_FPKA_READY_IRQ      (50 + IRQ_GIC_START)
> > >  #define INT_44XX_SHA1MD51_IRQ        (51 + IRQ_GIC_START)
> > >  #define INT_44XX_RNG_IRQ     (52 + IRQ_GIC_START)
> > > +#define INT_44XX_MMC5_IRQ    (59 + IRQ_GIC_START)
> > >  #define INT_44XX_I2C3_IRQ    (61 + IRQ_GIC_START)
> > >  #define INT_44XX_FPKA_ERROR_IRQ      (64 + IRQ_GIC_START)
> > >  #define INT_44XX_PBIAS_IRQ   (75 + IRQ_GIC_START)
> > > @@ -511,6 +512,7 @@
> > >  #define INT_44XX_TLL_IRQ     (78 + IRQ_GIC_START)
> > >  #define INT_44XX_PARTHASH_IRQ        (79 + IRQ_GIC_START)
> > >  #define INT_44XX_MMC3_IRQ    (94 + IRQ_GIC_START)
> > > +#define INT_44XX_MMC4_IRQ    (96 + IRQ_GIC_START)
> > >
> > >
> > >  /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
> > > Index: kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
> > > ===================================================================
> > > --- kernel-omap4-base.orig/arch/arm/plat-omap/include/mach/mmc.h
> > > +++ kernel-omap4-base/arch/arm/plat-omap/include/mach/mmc.h
> > > @@ -25,11 +25,18 @@
> > >
> > >  #define OMAP24XX_NR_MMC              2
> > >  #define OMAP34XX_NR_MMC              3
> > > +#define OMAP44XX_NR_MMC              5
> > >  #define OMAP2420_MMC_SIZE    OMAP1_MMC_SIZE
> > > -#define HSMMC_SIZE           0x200
> > > +#define OMAP3_HSMMC_SIZE     0x200
> > > +#define OMAP4_HSMMC_SIZE     0x1000
> > >  #define OMAP2_MMC1_BASE              0x4809c000
> > >  #define OMAP2_MMC2_BASE              0x480b4000
> > >  #define OMAP3_MMC3_BASE              0x480ad000
> > > +#define OMAP4_MMC4_BASE              0x480d1000
> > > +#define OMAP4_MMC5_BASE              0x480d5000
> > > +#define OMAP4_MMC_REG_OFFSET 0x100
> > > +#define HSMMC5                       (1 << 4)
> > > +#define HSMMC4                       (1 << 3)
> > >  #define HSMMC3                       (1 << 2)
> > >  #define HSMMC2                       (1 << 1)
> > >  #define HSMMC1                       (1 << 0)
> > > Index: kernel-omap4-base/drivers/mmc/host/Kconfig
> > > ===================================================================
> > > --- kernel-omap4-base.orig/drivers/mmc/host/Kconfig
> > > +++ kernel-omap4-base/drivers/mmc/host/Kconfig
> > > @@ -132,11 +132,11 @@ config MMC_OMAP
> > >
> > >  config MMC_OMAP_HS
> > >       tristate "TI OMAP High Speed Multimedia Card Interface support"
> > > -     depends on ARCH_OMAP2430 || ARCH_OMAP3
> > > +     depends on ARCH_OMAP2430 || ARCH_OMAP3 || ARCH_OMAP4
> > >       help
> > >         This selects the TI OMAP High Speed Multimedia card Interface.
> > > -       If you have an OMAP2430 or OMAP3 board with a Multimedia Card
> > > slot,
> > > -       say Y or M here.
> > > +       If you have an OMAP2430 or OMAP3 board or OMAP4 board with a
> > > +       Multimedia Card slot, say Y or M here.
> > >
> > >         If unsure, say N.
> > >
> > > Index: kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
> > > ===================================================================
> > > --- kernel-omap4-base.orig/drivers/mmc/host/omap_hsmmc.c
> > > +++ kernel-omap4-base/drivers/mmc/host/omap_hsmmc.c
> >
> > Does changes here conflict with Adrian's patches lined up for merge
> > upstream? From a merge perspective as well as functionality?
> 
> This patch applies with couple of hunks on Adrain's 32 series
> 
Sorry, I forgot to mention that there is one more patch submitted by me
lined up for merge upstream to handle the debounce clock on top of Adrian's
series.

http://userweb.kernel.org/~akpm/mmotm/broken-out/omap_hsmmc-ensure-all-clock
-enables-and-disables-are-paired-fix-for-the-db-clock-failure-message.patch

You might want to rebase on top of this and test the driver on both
OMAP3/OMAP4 to make sure nothing is broken.


> >
> > > @@ -101,6 +101,8 @@
> > >  #define OMAP_MMC1_DEVID              0
> > >  #define OMAP_MMC2_DEVID              1
> > >  #define OMAP_MMC3_DEVID              2
> > > +#define OMAP_MMC4_DEVID              3
> > > +#define OMAP_MMC5_DEVID              4
> > >
> > >  #define MMC_TIMEOUT_MS               20
> > >  #define OMAP_MMC_MASTER_CLOCK        96000000
> > > @@ -1096,6 +1098,14 @@ static int __init omap_mmc_probe(struct
> > >               host->dma_line_tx = OMAP34XX_DMA_MMC3_TX;
> > >               host->dma_line_rx = OMAP34XX_DMA_MMC3_RX;
> > >               break;
> > > +     case OMAP_MMC4_DEVID:
> > > +             host->dma_line_tx = OMAP44XX_DMA_MMC4_TX;
> > > +             host->dma_line_rx = OMAP44XX_DMA_MMC4_RX;
> > > +             break;
> > > +     case OMAP_MMC5_DEVID:
> > > +             host->dma_line_tx = OMAP44XX_DMA_MMC5_TX;
> > > +             host->dma_line_rx = OMAP44XX_DMA_MMC5_RX;
> > > +             break;
> > >       default:
> > >               dev_err(mmc_dev(host->mmc), "Invalid MMC id\n");
> > >               goto err_irq;
> > >
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel"
> in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at  http://www.tux.org/lkml/



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

* Re: [PATCH] OMAP4: MMC driver support on OMAP4
  2009-09-02 13:24 [PATCH] OMAP4: MMC driver support on OMAP4 kishore kadiyala
@ 2009-09-04 19:19   ` Andrew Morton
  0 siblings, 0 replies; 18+ messages in thread
From: Andrew Morton @ 2009-09-04 19:19 UTC (permalink / raw)
  To: kishore kadiyala
  Cc: linux-kernel, linux-omap, jarkko.lavinen, madhu.cr,
	linux-arm-kernel, linux-arm-kernel, linux-mmc

On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:

> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> 
> -Kishore
> 
> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> ---
> This patch doesn't include mmc-regulator support
> 
>  arch/arm/mach-omap2/devices.c          |   42 +++++++++++++++++++++++++++++----
>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
>  drivers/mmc/host/Kconfig               |    6 ++--
>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
>  5 files changed, 60 insertions(+), 9 deletions(-)

This looks like an ARM patch more than an MMC patch.  I grabbed it as
an MMC thing but hopefully someone else will grab it for a more
appropriate tree.

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

* [PATCH] OMAP4: MMC driver support on OMAP4
@ 2009-09-04 19:19   ` Andrew Morton
  0 siblings, 0 replies; 18+ messages in thread
From: Andrew Morton @ 2009-09-04 19:19 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:

> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> 
> -Kishore
> 
> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> ---
> This patch doesn't include mmc-regulator support
> 
>  arch/arm/mach-omap2/devices.c          |   42 +++++++++++++++++++++++++++++----
>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
>  drivers/mmc/host/Kconfig               |    6 ++--
>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
>  5 files changed, 60 insertions(+), 9 deletions(-)

This looks like an ARM patch more than an MMC patch.  I grabbed it as
an MMC thing but hopefully someone else will grab it for a more
appropriate tree.

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

* RE: [PATCH] OMAP4: MMC driver support on OMAP4
  2009-09-04 19:19   ` Andrew Morton
@ 2009-09-04 19:23     ` Pandita, Vikram
  -1 siblings, 0 replies; 18+ messages in thread
From: Pandita, Vikram @ 2009-09-04 19:23 UTC (permalink / raw)
  To: Andrew Morton, Kadiyala, Kishore
  Cc: linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
	jarkko.lavinen@nokia.com, Chikkature Rajashekar, Madhusudhan,
	linux-arm-kernel@lists.arm.linux.org.uk,
	linux-arm-kernel@lists.infradead.org, linux-mmc@vger.kernel.org

Andrew/Kishore

>-----Original Message-----
>From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of Andrew
>Morton
>Sent: Friday, September 04, 2009 2:19 PM
>
>On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
>"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:
>
>> This Patch adds basic support for all 5 MMC controllers on OMAP4.
>>
>> -Kishore
>>
>> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
>> ---
>> This patch doesn't include mmc-regulator support
>>
>
>This looks like an ARM patch more than an MMC patch.  I grabbed it as
>an MMC thing but hopefully someone else will grab it for a more
>appropriate tree.

A patch split is required:

>>  arch/arm/mach-omap2/devices.c          |   42 +++++++++++++++++++++++++++++----
>>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
>>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-

These files will go through linux-omap -> arm: to RMK

>>  drivers/mmc/host/Kconfig               |    6 ++--
>>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
>>  5 files changed, 60 insertions(+), 9 deletions(-)

These files can go through Andrew.

>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

* [PATCH] OMAP4: MMC driver support on OMAP4
@ 2009-09-04 19:23     ` Pandita, Vikram
  0 siblings, 0 replies; 18+ messages in thread
From: Pandita, Vikram @ 2009-09-04 19:23 UTC (permalink / raw)
  To: linux-arm-kernel

Andrew/Kishore

>-----Original Message-----
From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-owner at vger.kernel.org] On Behalf Of Andrew
>Morton
>Sent: Friday, September 04, 2009 2:19 PM
>
>On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
>"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:
>
>> This Patch adds basic support for all 5 MMC controllers on OMAP4.
>>
>> -Kishore
>>
>> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
>> ---
>> This patch doesn't include mmc-regulator support
>>
>
>This looks like an ARM patch more than an MMC patch.  I grabbed it as
>an MMC thing but hopefully someone else will grab it for a more
>appropriate tree.

A patch split is required:

>>  arch/arm/mach-omap2/devices.c          |   42 +++++++++++++++++++++++++++++----
>>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
>>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-

These files will go through linux-omap -> arm: to RMK

>>  drivers/mmc/host/Kconfig               |    6 ++--
>>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
>>  5 files changed, 60 insertions(+), 9 deletions(-)

These files can go through Andrew.

>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>the body of a message to majordomo at vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH] OMAP4: MMC driver support on OMAP4
  2009-09-04 19:23     ` Pandita, Vikram
@ 2009-09-04 19:33       ` Tony Lindgren
  -1 siblings, 0 replies; 18+ messages in thread
From: Tony Lindgren @ 2009-09-04 19:33 UTC (permalink / raw)
  To: Pandita, Vikram
  Cc: Andrew Morton, Kadiyala, Kishore, linux-kernel@vger.kernel.org,
	linux-omap@vger.kernel.org, jarkko.lavinen@nokia.com,
	Chikkature Rajashekar, Madhusudhan,
	linux-arm-kernel@lists.arm.linux.org.uk,
	linux-arm-kernel@lists.infradead.org, linux-mmc@vger.kernel.org

* Pandita, Vikram <vikram.pandita@ti.com> [090904 12:24]:
> Andrew/Kishore
> 
> >-----Original Message-----
> >From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of Andrew
> >Morton
> >Sent: Friday, September 04, 2009 2:19 PM
> >
> >On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
> >"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:
> >
> >> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> >>
> >> -Kishore
> >>
> >> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> >> ---
> >> This patch doesn't include mmc-regulator support
> >>
> >
> >This looks like an ARM patch more than an MMC patch.  I grabbed it as
> >an MMC thing but hopefully someone else will grab it for a more
> >appropriate tree.
> 
> A patch split is required:
> 
> >>  arch/arm/mach-omap2/devices.c          |   42 +++++++++++++++++++++++++++++----
> >>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
> >>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
> 
> These files will go through linux-omap -> arm: to RMK
> 
> >>  drivers/mmc/host/Kconfig               |    6 ++--
> >>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
> >>  5 files changed, 60 insertions(+), 9 deletions(-)
> 
> These files can go through Andrew.

No need to split it IMHO, it's best to merge it all together
via Andrew's MMC queue as it should not conflict with other
arch/arm/*omap* stuff.

Acked-by: Tony Lindgren <tony@atomide.com>

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

* [PATCH] OMAP4: MMC driver support on OMAP4
@ 2009-09-04 19:33       ` Tony Lindgren
  0 siblings, 0 replies; 18+ messages in thread
From: Tony Lindgren @ 2009-09-04 19:33 UTC (permalink / raw)
  To: linux-arm-kernel

* Pandita, Vikram <vikram.pandita@ti.com> [090904 12:24]:
> Andrew/Kishore
> 
> >-----Original Message-----
> >From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-owner at vger.kernel.org] On Behalf Of Andrew
> >Morton
> >Sent: Friday, September 04, 2009 2:19 PM
> >
> >On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
> >"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:
> >
> >> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> >>
> >> -Kishore
> >>
> >> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> >> ---
> >> This patch doesn't include mmc-regulator support
> >>
> >
> >This looks like an ARM patch more than an MMC patch.  I grabbed it as
> >an MMC thing but hopefully someone else will grab it for a more
> >appropriate tree.
> 
> A patch split is required:
> 
> >>  arch/arm/mach-omap2/devices.c          |   42 +++++++++++++++++++++++++++++----
> >>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
> >>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
> 
> These files will go through linux-omap -> arm: to RMK
> 
> >>  drivers/mmc/host/Kconfig               |    6 ++--
> >>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
> >>  5 files changed, 60 insertions(+), 9 deletions(-)
> 
> These files can go through Andrew.

No need to split it IMHO, it's best to merge it all together
via Andrew's MMC queue as it should not conflict with other
arch/arm/*omap* stuff.

Acked-by: Tony Lindgren <tony@atomide.com>

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

* RE: [PATCH] OMAP4: MMC driver support on OMAP4
  2009-09-04 19:33       ` Tony Lindgren
  (?)
@ 2009-09-04 19:43         ` Madhusudhan
  -1 siblings, 0 replies; 18+ messages in thread
From: Madhusudhan @ 2009-09-04 19:43 UTC (permalink / raw)
  To: 'Tony Lindgren', 'Pandita, Vikram'
  Cc: 'Andrew Morton', 'Kadiyala, Kishore',
	linux-kernel, linux-omap, jarkko.lavinen, linux-arm-kernel,
	linux-arm-kernel, linux-mmc



> -----Original Message-----
> From: Tony Lindgren [mailto:tony@atomide.com]
> Sent: Friday, September 04, 2009 2:34 PM
> To: Pandita, Vikram
> Cc: Andrew Morton; Kadiyala, Kishore; linux-kernel@vger.kernel.org; linux-
> omap@vger.kernel.org; jarkko.lavinen@nokia.com; Chikkature Rajashekar,
> Madhusudhan; linux-arm-kernel@lists.arm.linux.org.uk; linux-arm-
> kernel@lists.infradead.org; linux-mmc@vger.kernel.org
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> * Pandita, Vikram <vikram.pandita@ti.com> [090904 12:24]:
> > Andrew/Kishore
> >
> > >-----Original Message-----
> > >From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Andrew
> > >Morton
> > >Sent: Friday, September 04, 2009 2:19 PM
> > >
> > >On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
> > >"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:
> > >
> > >> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> > >>
> > >> -Kishore
> > >>
> > >> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> > >> ---
> > >> This patch doesn't include mmc-regulator support
> > >>
> > >
> > >This looks like an ARM patch more than an MMC patch.  I grabbed it as
> > >an MMC thing but hopefully someone else will grab it for a more
> > >appropriate tree.
> >
> > A patch split is required:
> >
> > >>  arch/arm/mach-omap2/devices.c          |   42
> +++++++++++++++++++++++++++++----
> > >>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
> > >>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
> >
> > These files will go through linux-omap -> arm: to RMK
> >
> > >>  drivers/mmc/host/Kconfig               |    6 ++--
> > >>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
> > >>  5 files changed, 60 insertions(+), 9 deletions(-)
> >
> > These files can go through Andrew.
> 
> No need to split it IMHO, it's best to merge it all together
> via Andrew's MMC queue as it should not conflict with other
> arch/arm/*omap* stuff.
> 
> Acked-by: Tony Lindgren <tony@atomide.com>

Request to add my ACK.

Acked-by: Madhusudhan Chikkature <madhu.cr@ti.com>



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

* [PATCH] OMAP4: MMC driver support on OMAP4
@ 2009-09-04 19:43         ` Madhusudhan
  0 siblings, 0 replies; 18+ messages in thread
From: Madhusudhan @ 2009-09-04 19:43 UTC (permalink / raw)
  To: linux-arm-kernel



> -----Original Message-----
> From: Tony Lindgren [mailto:tony at atomide.com]
> Sent: Friday, September 04, 2009 2:34 PM
> To: Pandita, Vikram
> Cc: Andrew Morton; Kadiyala, Kishore; linux-kernel at vger.kernel.org; linux-
> omap at vger.kernel.org; jarkko.lavinen at nokia.com; Chikkature Rajashekar,
> Madhusudhan; linux-arm-kernel at lists.arm.linux.org.uk; linux-arm-
> kernel at lists.infradead.org; linux-mmc at vger.kernel.org
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> * Pandita, Vikram <vikram.pandita@ti.com> [090904 12:24]:
> > Andrew/Kishore
> >
> > >-----Original Message-----
> > >From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
> owner at vger.kernel.org] On Behalf Of Andrew
> > >Morton
> > >Sent: Friday, September 04, 2009 2:19 PM
> > >
> > >On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
> > >"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:
> > >
> > >> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> > >>
> > >> -Kishore
> > >>
> > >> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> > >> ---
> > >> This patch doesn't include mmc-regulator support
> > >>
> > >
> > >This looks like an ARM patch more than an MMC patch.  I grabbed it as
> > >an MMC thing but hopefully someone else will grab it for a more
> > >appropriate tree.
> >
> > A patch split is required:
> >
> > >>  arch/arm/mach-omap2/devices.c          |   42
> +++++++++++++++++++++++++++++----
> > >>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
> > >>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
> >
> > These files will go through linux-omap -> arm: to RMK
> >
> > >>  drivers/mmc/host/Kconfig               |    6 ++--
> > >>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
> > >>  5 files changed, 60 insertions(+), 9 deletions(-)
> >
> > These files can go through Andrew.
> 
> No need to split it IMHO, it's best to merge it all together
> via Andrew's MMC queue as it should not conflict with other
> arch/arm/*omap* stuff.
> 
> Acked-by: Tony Lindgren <tony@atomide.com>

Request to add my ACK.

Acked-by: Madhusudhan Chikkature <madhu.cr@ti.com>

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

* RE: [PATCH] OMAP4: MMC driver support on OMAP4
@ 2009-09-04 19:43         ` Madhusudhan
  0 siblings, 0 replies; 18+ messages in thread
From: Madhusudhan @ 2009-09-04 19:43 UTC (permalink / raw)
  To: 'Tony Lindgren', 'Pandita, Vikram'
  Cc: 'Andrew Morton', 'Kadiyala, Kishore',
	linux-kernel, linux-omap, jarkko.lavinen, linux-arm-kernel,
	linux-arm-kernel, linux-mmc



> -----Original Message-----
> From: Tony Lindgren [mailto:tony@atomide.com]
> Sent: Friday, September 04, 2009 2:34 PM
> To: Pandita, Vikram
> Cc: Andrew Morton; Kadiyala, Kishore; linux-kernel@vger.kernel.org; linux-
> omap@vger.kernel.org; jarkko.lavinen@nokia.com; Chikkature Rajashekar,
> Madhusudhan; linux-arm-kernel@lists.arm.linux.org.uk; linux-arm-
> kernel@lists.infradead.org; linux-mmc@vger.kernel.org
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> * Pandita, Vikram <vikram.pandita@ti.com> [090904 12:24]:
> > Andrew/Kishore
> >
> > >-----Original Message-----
> > >From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Andrew
> > >Morton
> > >Sent: Friday, September 04, 2009 2:19 PM
> > >
> > >On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
> > >"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:
> > >
> > >> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> > >>
> > >> -Kishore
> > >>
> > >> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> > >> ---
> > >> This patch doesn't include mmc-regulator support
> > >>
> > >
> > >This looks like an ARM patch more than an MMC patch.  I grabbed it as
> > >an MMC thing but hopefully someone else will grab it for a more
> > >appropriate tree.
> >
> > A patch split is required:
> >
> > >>  arch/arm/mach-omap2/devices.c          |   42
> +++++++++++++++++++++++++++++----
> > >>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
> > >>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
> >
> > These files will go through linux-omap -> arm: to RMK
> >
> > >>  drivers/mmc/host/Kconfig               |    6 ++--
> > >>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
> > >>  5 files changed, 60 insertions(+), 9 deletions(-)
> >
> > These files can go through Andrew.
> 
> No need to split it IMHO, it's best to merge it all together
> via Andrew's MMC queue as it should not conflict with other
> arch/arm/*omap* stuff.
> 
> Acked-by: Tony Lindgren <tony@atomide.com>

Request to add my ACK.

Acked-by: Madhusudhan Chikkature <madhu.cr@ti.com>



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

* RE: [PATCH] OMAP4: MMC driver support on OMAP4
  2009-09-04 19:33       ` Tony Lindgren
@ 2009-09-04 19:47         ` Madhusudhan
  -1 siblings, 0 replies; 18+ messages in thread
From: Madhusudhan @ 2009-09-04 19:47 UTC (permalink / raw)
  To: 'Tony Lindgren', 'Pandita, Vikram'
  Cc: 'Andrew Morton', 'Kadiyala, Kishore',
	linux-kernel, linux-omap



> -----Original Message-----
> From: Tony Lindgren [mailto:tony@atomide.com]
> Sent: Friday, September 04, 2009 2:34 PM
> To: Pandita, Vikram
> Cc: Andrew Morton; Kadiyala, Kishore; linux-kernel@vger.kernel.org; linux-
> omap@vger.kernel.org; jarkko.lavinen@nokia.com; Chikkature Rajashekar,
> Madhusudhan; linux-arm-kernel@lists.arm.linux.org.uk; linux-arm-
> kernel@lists.infradead.org; linux-mmc@vger.kernel.org
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> * Pandita, Vikram <vikram.pandita@ti.com> [090904 12:24]:
> > Andrew/Kishore
> >
> > >-----Original Message-----
> > >From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Andrew
> > >Morton
> > >Sent: Friday, September 04, 2009 2:19 PM
> > >
> > >On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
> > >"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:
> > >
> > >> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> > >>
> > >> -Kishore
> > >>
> > >> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> > >> ---
> > >> This patch doesn't include mmc-regulator support
> > >>
> > >
> > >This looks like an ARM patch more than an MMC patch.  I grabbed it as
> > >an MMC thing but hopefully someone else will grab it for a more
> > >appropriate tree.
> >
> > A patch split is required:
> >
> > >>  arch/arm/mach-omap2/devices.c          |   42
> +++++++++++++++++++++++++++++----
> > >>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
> > >>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
> >
> > These files will go through linux-omap -> arm: to RMK
> >
> > >>  drivers/mmc/host/Kconfig               |    6 ++--
> > >>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
> > >>  5 files changed, 60 insertions(+), 9 deletions(-)
> >
> > These files can go through Andrew.
> 
> No need to split it IMHO, it's best to merge it all together
> via Andrew's MMC queue as it should not conflict with other
> arch/arm/*omap* stuff.
> 
> Acked-by: Tony Lindgren <tony@atomide.com>

Request to add my ACK.

Acked-by: Madhusudhan Chikkature <madhu.cr@ti.com>



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

* RE: [PATCH] OMAP4: MMC driver support on OMAP4
@ 2009-09-04 19:47         ` Madhusudhan
  0 siblings, 0 replies; 18+ messages in thread
From: Madhusudhan @ 2009-09-04 19:47 UTC (permalink / raw)
  To: 'Tony Lindgren', 'Pandita, Vikram'
  Cc: 'Andrew Morton', 'Kadiyala, Kishore',
	linux-kernel, linux-omap



> -----Original Message-----
> From: Tony Lindgren [mailto:tony@atomide.com]
> Sent: Friday, September 04, 2009 2:34 PM
> To: Pandita, Vikram
> Cc: Andrew Morton; Kadiyala, Kishore; linux-kernel@vger.kernel.org; linux-
> omap@vger.kernel.org; jarkko.lavinen@nokia.com; Chikkature Rajashekar,
> Madhusudhan; linux-arm-kernel@lists.arm.linux.org.uk; linux-arm-
> kernel@lists.infradead.org; linux-mmc@vger.kernel.org
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> * Pandita, Vikram <vikram.pandita@ti.com> [090904 12:24]:
> > Andrew/Kishore
> >
> > >-----Original Message-----
> > >From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Andrew
> > >Morton
> > >Sent: Friday, September 04, 2009 2:19 PM
> > >
> > >On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
> > >"kishore kadiyala" <kishore.kadiyala@ti.com> wrote:
> > >
> > >> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> > >>
> > >> -Kishore
> > >>
> > >> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
> > >> ---
> > >> This patch doesn't include mmc-regulator support
> > >>
> > >
> > >This looks like an ARM patch more than an MMC patch.  I grabbed it as
> > >an MMC thing but hopefully someone else will grab it for a more
> > >appropriate tree.
> >
> > A patch split is required:
> >
> > >>  arch/arm/mach-omap2/devices.c          |   42
> +++++++++++++++++++++++++++++----
> > >>  arch/arm/plat-omap/include/mach/irqs.h |    2 +
> > >>  arch/arm/plat-omap/include/mach/mmc.h  |    9 ++++++-
> >
> > These files will go through linux-omap -> arm: to RMK
> >
> > >>  drivers/mmc/host/Kconfig               |    6 ++--
> > >>  drivers/mmc/host/omap_hsmmc.c          |   10 +++++++
> > >>  5 files changed, 60 insertions(+), 9 deletions(-)
> >
> > These files can go through Andrew.
> 
> No need to split it IMHO, it's best to merge it all together
> via Andrew's MMC queue as it should not conflict with other
> arch/arm/*omap* stuff.
> 
> Acked-by: Tony Lindgren <tony@atomide.com>

Request to add my ACK.

Acked-by: Madhusudhan Chikkature <madhu.cr@ti.com>



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

end of thread, other threads:[~2009-09-04 19:48 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-02 13:24 [PATCH] OMAP4: MMC driver support on OMAP4 kishore kadiyala
2009-09-04 19:19 ` Andrew Morton
2009-09-04 19:19   ` Andrew Morton
2009-09-04 19:23   ` Pandita, Vikram
2009-09-04 19:23     ` Pandita, Vikram
2009-09-04 19:33     ` Tony Lindgren
2009-09-04 19:33       ` Tony Lindgren
2009-09-04 19:43       ` Madhusudhan
2009-09-04 19:43         ` Madhusudhan
2009-09-04 19:43         ` Madhusudhan
2009-09-04 19:47       ` Madhusudhan
2009-09-04 19:47         ` Madhusudhan
     [not found] <34590.192.168.10.89.1251897877.squirrel@dbdmail.itg.ti.com>
2009-09-02 13:30 ` kishore kadiyala
2009-09-02 16:30   ` Madhusudhan
2009-09-02 16:30     ` Madhusudhan
2009-09-03 16:04     ` kishore kadiyala
2009-09-04  0:45       ` Madhusudhan
2009-09-04  0:45         ` Madhusudhan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.