public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] mmc-twl4030 patches for RX51
@ 2009-03-10  9:32 Adrian Hunter
  2009-03-10  9:33 ` [PATCH 1/6] OMAP: mmc-twl4030 fix name buffer length Adrian Hunter
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Adrian Hunter @ 2009-03-10  9:32 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Jarkko Lavinen, David Brownell, Adrian Hunter,
	linux-omap Mailing List

Here are 6 patches for mmc-twl4030 for RX51.

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

* [PATCH 1/6] OMAP: mmc-twl4030 fix name buffer length
  2009-03-10  9:32 [PATCH 0/6] mmc-twl4030 patches for RX51 Adrian Hunter
@ 2009-03-10  9:33 ` Adrian Hunter
  2009-03-10 17:28   ` David Brownell
  2009-03-10 19:17   ` [APPLIED] <span class="quote">> [PATCH] OMAP: mmc-twl4030 fix name buffer length</span> Tony Lindgren
  2009-03-10  9:33 ` [PATCH 2/6] OMAP: mmc-twl4030 support VSIM is VMMC2_IO Adrian Hunter
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 15+ messages in thread
From: Adrian Hunter @ 2009-03-10  9:33 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Jarkko Lavinen, Adrian Hunter, David Brownell,
	linux-omap Mailing List

>From 60238a3a80b5be3e1843a049b39eabf729c315aa Mon Sep 17 00:00:00 2001
From: Adrian Hunter <adrian.hunter@nokia.com>
Date: Thu, 22 Jan 2009 17:58:04 +0200
Subject: [PATCH] OMAP: mmc-twl4030 fix name buffer length

Add 1 to buffer length for null terminator.

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
---
 arch/arm/mach-omap2/mmc-twl4030.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c
index 33e5b9b..aeaab5a 100644
--- a/arch/arm/mach-omap2/mmc-twl4030.c
+++ b/arch/arm/mach-omap2/mmc-twl4030.c
@@ -61,7 +61,7 @@ static struct twl_mmc_controller {
 	struct omap_mmc_platform_data	*mmc;
 	u8		twl_vmmc_dev_grp;
 	u8		twl_mmc_dedicated;
-	char		name[HSMMC_NAME_LEN];
+	char		name[HSMMC_NAME_LEN + 1];
 } hsmmc[OMAP34XX_NR_MMC] = {
 	{
 		.twl_vmmc_dev_grp		= VMMC1_DEV_GRP,
-- 
1.5.6.3


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

* [PATCH 2/6] OMAP: mmc-twl4030 support VSIM is VMMC2_IO
  2009-03-10  9:32 [PATCH 0/6] mmc-twl4030 patches for RX51 Adrian Hunter
  2009-03-10  9:33 ` [PATCH 1/6] OMAP: mmc-twl4030 fix name buffer length Adrian Hunter
@ 2009-03-10  9:33 ` Adrian Hunter
  2009-03-10 17:46   ` David Brownell
  2009-03-10  9:33 ` [PATCH 3/6] OMAP: mmc-twl4030 add cover switch Adrian Hunter
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Adrian Hunter @ 2009-03-10  9:33 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Jarkko Lavinen, David Brownell, Adrian Hunter,
	linux-omap Mailing List

>From 2f6a22e9091a09fb3cbb720356116035611636b2 Mon Sep 17 00:00:00 2001
From: Adrian Hunter <adrian.hunter@nokia.com>
Date: Fri, 23 Jan 2009 11:45:49 +0200
Subject: [PATCH] OMAP: mmc-twl4030 support VSIM is VMMC2_IO

eMMC has two voltage lines, one for I/O and one for the
NAND core.  This patch allows VSIM and VMMC2 respectively,
to be used for those two.

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
---
 arch/arm/mach-omap2/mmc-twl4030.c |   25 ++++++++++++++++++++++++-
 arch/arm/mach-omap2/mmc-twl4030.h |    1 +
 2 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c
index aeaab5a..736b039 100644
--- a/arch/arm/mach-omap2/mmc-twl4030.c
+++ b/arch/arm/mach-omap2/mmc-twl4030.c
@@ -52,6 +52,10 @@
 
 #define VMMC_DEV_GRP_P1		0x20
 
+#define VSIM_DEV_GRP		0x37
+#define VSIM_18V		0x03
+#define VSIM_DEDICATED		0x3A
+
 static u16 control_pbias_offset;
 static u16 control_devconf1_offset;
 
@@ -61,6 +65,7 @@ static struct twl_mmc_controller {
 	struct omap_mmc_platform_data	*mmc;
 	u8		twl_vmmc_dev_grp;
 	u8		twl_mmc_dedicated;
+	bool		vsim_18v;
 	char		name[HSMMC_NAME_LEN + 1];
 } hsmmc[OMAP34XX_NR_MMC] = {
 	{
@@ -251,6 +256,19 @@ doit:
 
 	ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
 					vmmc, c->twl_mmc_dedicated);
+	if (ret)
+		return ret;
+
+	if (c->vsim_18v) {
+		u8 vsim = vmmc ? VSIM_18V : 0;
+
+		ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+					   dev_grp_val, VSIM_DEV_GRP);
+		if (ret)
+			return ret;
+		ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+					   vsim, VSIM_DEDICATED);
+	}
 
 	return ret;
 }
@@ -437,7 +455,12 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)
 			mmc->slots[0].set_power = twl_mmc2_set_power;
 			if (c->transceiver)
 				mmc->slots[0].ocr_mask = MMC2_OCR;
-			else
+			else if (c->vsim_18v) {
+				mmc->slots[0].ocr_mask = MMC_VDD_27_28 |
+					MMC_VDD_28_29 | MMC_VDD_29_30 |
+					MMC_VDD_30_31 | MMC_VDD_31_32;
+				twl->vsim_18v = true;
+			} else
 				mmc->slots[0].ocr_mask = MMC_VDD_165_195;
 			break;
 		case 3:
diff --git a/arch/arm/mach-omap2/mmc-twl4030.h b/arch/arm/mach-omap2/mmc-twl4030.h
index 21d3572..087a969 100644
--- a/arch/arm/mach-omap2/mmc-twl4030.h
+++ b/arch/arm/mach-omap2/mmc-twl4030.h
@@ -11,6 +11,7 @@ struct twl4030_hsmmc_info {
 	u8	wires;		/* 1/4/8 wires */
 	bool	transceiver;	/* MMC-2 option */
 	bool	ext_clock;	/* use external pin for input clock */
+	bool	vsim_18v;	/* MMC-2 option */
 	int	gpio_cd;	/* or -EINVAL */
 	int	gpio_wp;	/* or -EINVAL */
 	struct device *dev;	/* returned: pointer to mmc adapter */
-- 
1.5.6.3


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

* [PATCH 3/6] OMAP: mmc-twl4030 add cover switch
  2009-03-10  9:32 [PATCH 0/6] mmc-twl4030 patches for RX51 Adrian Hunter
  2009-03-10  9:33 ` [PATCH 1/6] OMAP: mmc-twl4030 fix name buffer length Adrian Hunter
  2009-03-10  9:33 ` [PATCH 2/6] OMAP: mmc-twl4030 support VSIM is VMMC2_IO Adrian Hunter
@ 2009-03-10  9:33 ` Adrian Hunter
  2009-03-10 17:50   ` David Brownell
  2009-03-10  9:33 ` [PATCH 4/6] OMAP: mmc-twl4030 allow arbitrary slot names Adrian Hunter
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Adrian Hunter @ 2009-03-10  9:33 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Jarkko Lavinen, Adrian Hunter, David Brownell,
	linux-omap Mailing List

>From 1667cd29afa90d041c0782223253835e6bc25b18 Mon Sep 17 00:00:00 2001
From: Adrian Hunter <adrian.hunter@nokia.com>
Date: Mon, 26 Jan 2009 13:14:28 +0200
Subject: [PATCH] OMAP: mmc-twl4030 add cover switch

Allow a cover switch to be used to cause a rescan of the
MMC slot.

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
---
 arch/arm/mach-omap2/mmc-twl4030.c |   13 ++++++++++++-
 arch/arm/mach-omap2/mmc-twl4030.h |    1 +
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c
index 736b039..a58deba 100644
--- a/arch/arm/mach-omap2/mmc-twl4030.c
+++ b/arch/arm/mach-omap2/mmc-twl4030.c
@@ -105,6 +105,14 @@ static int twl_mmc_get_ro(struct device *dev, int slot)
 	return gpio_get_value_cansleep(mmc->slots[0].gpio_wp);
 }
 
+static int twl_mmc_get_cover_state(struct device *dev, int slot)
+{
+	struct omap_mmc_platform_data *mmc = dev->platform_data;
+
+	/* NOTE: assumes card detect signal is active-low */
+	return !gpio_get_value_cansleep(mmc->slots[0].switch_pin);
+}
+
 /*
  * MMC Slot Initialization.
  */
@@ -427,7 +435,10 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)
 
 			mmc->slots[0].switch_pin = c->gpio_cd;
 			mmc->slots[0].card_detect_irq = gpio_to_irq(c->gpio_cd);
-			mmc->slots[0].card_detect = twl_mmc_card_detect;
+			if (c->cover_only)
+				mmc->slots[0].get_cover_state = twl_mmc_get_cover_state;
+			else
+				mmc->slots[0].card_detect = twl_mmc_card_detect;
 		} else
 			mmc->slots[0].switch_pin = -EINVAL;
 
diff --git a/arch/arm/mach-omap2/mmc-twl4030.h b/arch/arm/mach-omap2/mmc-twl4030.h
index 087a969..e87bc8d 100644
--- a/arch/arm/mach-omap2/mmc-twl4030.h
+++ b/arch/arm/mach-omap2/mmc-twl4030.h
@@ -12,6 +12,7 @@ struct twl4030_hsmmc_info {
 	bool	transceiver;	/* MMC-2 option */
 	bool	ext_clock;	/* use external pin for input clock */
 	bool	vsim_18v;	/* MMC-2 option */
+	bool	cover_only;	/* No card detect - just cover switch */
 	int	gpio_cd;	/* or -EINVAL */
 	int	gpio_wp;	/* or -EINVAL */
 	struct device *dev;	/* returned: pointer to mmc adapter */
-- 
1.5.6.3


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

* [PATCH 4/6] OMAP: mmc-twl4030 allow arbitrary slot names
  2009-03-10  9:32 [PATCH 0/6] mmc-twl4030 patches for RX51 Adrian Hunter
                   ` (2 preceding siblings ...)
  2009-03-10  9:33 ` [PATCH 3/6] OMAP: mmc-twl4030 add cover switch Adrian Hunter
@ 2009-03-10  9:33 ` Adrian Hunter
  2009-03-10 17:56   ` David Brownell
  2009-03-10 19:22   ` [APPLIED] <span class="quote">> [PATCH] OMAP: mmc-twl4030 allow arbitrary slot names</span> Tony Lindgren
  2009-03-10  9:33 ` [PATCH 6/6] OMAP: mmc-twl4030: Add VAUX3 support Adrian Hunter
       [not found] ` <20090310093329.16889.76098.sendpatchset@ahunter-laptop>
  5 siblings, 2 replies; 15+ messages in thread
From: Adrian Hunter @ 2009-03-10  9:33 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Jarkko Lavinen, David Brownell, Adrian Hunter,
	linux-omap Mailing List

>From 4c4a97595cab39443a85517c66bc26f5c2a9cae3 Mon Sep 17 00:00:00 2001
From: Adrian Hunter <adrian.hunter@nokia.com>
Date: Fri, 30 Jan 2009 11:10:19 +0200
Subject: [PATCH] OMAP: mmc-twl4030 allow arbitrary slot names

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
---
 arch/arm/mach-omap2/mmc-twl4030.c |    5 ++++-
 arch/arm/mach-omap2/mmc-twl4030.h |    1 +
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c
index a58deba..8fc8e84 100644
--- a/arch/arm/mach-omap2/mmc-twl4030.c
+++ b/arch/arm/mach-omap2/mmc-twl4030.c
@@ -419,7 +419,10 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)
 			return;
 		}
 
-		sprintf(twl->name, "mmc%islot%i", c->mmc, 1);
+		if (c->name)
+			strncpy(twl->name, c->name, HSMMC_NAME_LEN);
+		else
+			sprintf(twl->name, "mmc%islot%i", c->mmc, 1);
 		mmc->slots[0].name = twl->name;
 		mmc->nr_slots = 1;
 		mmc->slots[0].wires = c->wires;
diff --git a/arch/arm/mach-omap2/mmc-twl4030.h b/arch/arm/mach-omap2/mmc-twl4030.h
index e87bc8d..69dbbc1 100644
--- a/arch/arm/mach-omap2/mmc-twl4030.h
+++ b/arch/arm/mach-omap2/mmc-twl4030.h
@@ -15,6 +15,7 @@ struct twl4030_hsmmc_info {
 	bool	cover_only;	/* No card detect - just cover switch */
 	int	gpio_cd;	/* or -EINVAL */
 	int	gpio_wp;	/* or -EINVAL */
+	char	*name;		/* or NULL for default */
 	struct device *dev;	/* returned: pointer to mmc adapter */
 };
 
-- 
1.5.6.3


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

* [PATCH 6/6] OMAP: mmc-twl4030: Add VAUX3 support
  2009-03-10  9:32 [PATCH 0/6] mmc-twl4030 patches for RX51 Adrian Hunter
                   ` (3 preceding siblings ...)
  2009-03-10  9:33 ` [PATCH 4/6] OMAP: mmc-twl4030 allow arbitrary slot names Adrian Hunter
@ 2009-03-10  9:33 ` Adrian Hunter
       [not found] ` <20090310093329.16889.76098.sendpatchset@ahunter-laptop>
  5 siblings, 0 replies; 15+ messages in thread
From: Adrian Hunter @ 2009-03-10  9:33 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Jarkko Lavinen, David Brownell, Adrian Hunter,
	linux-omap Mailing List

>From a9cdb13f11c6f38680a4bec27300ed4c4709418f Mon Sep 17 00:00:00 2001
From: Jarkko Lavinen <jarkko.lavinen@nokia.com>
Date: Wed, 25 Feb 2009 15:04:20 +0200
Subject: [PATCH] OMAP: mmc-twl4030: Add VAUX3 support

Allow overriding of VMMC2 regulator for MMC2 and use VAUX3 instead.

Signed-off-by: Jarkko Lavinen <jarkko.lavinen@nokia.com>
Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
---
 arch/arm/mach-omap2/board-rx51-flash.c |    2 +
 arch/arm/mach-omap2/mmc-twl4030.c      |  106 ++++++++++++++++++++++----------
 arch/arm/mach-omap2/mmc-twl4030.h      |    1 +
 3 files changed, 76 insertions(+), 33 deletions(-)

diff --git a/arch/arm/mach-omap2/board-rx51-flash.c b/arch/arm/mach-omap2/board-rx51-flash.c
index 20fe242..7060d26 100644
--- a/arch/arm/mach-omap2/board-rx51-flash.c
+++ b/arch/arm/mach-omap2/board-rx51-flash.c
@@ -20,6 +20,7 @@
 #include "mmc-twl4030.h"
 
 #define	RX51_FLASH_CS	0
+#define	VAUX3_DEV_GRP	0x1F
 
 extern struct mtd_partition n800_partitions[ONENAND_MAX_PARTITIONS];
 extern int n800_onenand_setup(void __iomem *onenand_base, int freq);
@@ -66,6 +67,7 @@ static struct twl4030_hsmmc_info mmc[] __initdata = {
 		.gpio_cd	= -EINVAL,
 		.gpio_wp	= -EINVAL,
 		.vsim_18v	= true,
+		.vmmc_dev_grp	= VAUX3_DEV_GRP,
 	},
 	{}	/* Terminator */
 };
diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c
index 8fc8e84..208ff43 100644
--- a/arch/arm/mach-omap2/mmc-twl4030.c
+++ b/arch/arm/mach-omap2/mmc-twl4030.c
@@ -31,30 +31,34 @@
 
 #define LDO_CLR			0x00
 #define VSEL_S2_CLR		0x40
+#define VMMC_DEV_GRP_P1		0x20
+#define DEDICATED_OFFSET	3
+#define VMMC_DEV_GRP(c)		(c->twl_vmmc_dev_grp)
 
+#define VAUX3_DEV_GRP		0x1F
 #define VMMC1_DEV_GRP		0x27
-#define VMMC1_CLR		0x00
+#define VMMC2_DEV_GRP		0x2B
+#define VSIM_DEV_GRP		0x37
+
 #define VMMC1_315V		0x03
 #define VMMC1_300V		0x02
 #define VMMC1_285V		0x01
 #define VMMC1_185V		0x00
-#define VMMC1_DEDICATED		0x2A
 
-#define VMMC2_DEV_GRP		0x2B
-#define VMMC2_CLR		0x40
 #define VMMC2_315V		0x0c
 #define VMMC2_300V		0x0b
 #define VMMC2_285V		0x0a
 #define VMMC2_280V		0x09
 #define VMMC2_260V		0x08
 #define VMMC2_185V		0x06
-#define VMMC2_DEDICATED		0x2E
 
-#define VMMC_DEV_GRP_P1		0x20
+#define VAUX3_300V		0x04
+#define VAUX3_280V		0x03
+#define VAUX3_250V		0x02
+#define VAUX3_180V		0x01
+#define VAUX3_150V		0x00
 
-#define VSIM_DEV_GRP		0x37
 #define VSIM_18V		0x03
-#define VSIM_DEDICATED		0x3A
 
 static u16 control_pbias_offset;
 static u16 control_devconf1_offset;
@@ -64,17 +68,14 @@ static u16 control_devconf1_offset;
 static struct twl_mmc_controller {
 	struct omap_mmc_platform_data	*mmc;
 	u8		twl_vmmc_dev_grp;
-	u8		twl_mmc_dedicated;
 	bool		vsim_18v;
 	char		name[HSMMC_NAME_LEN + 1];
 } hsmmc[OMAP34XX_NR_MMC] = {
 	{
 		.twl_vmmc_dev_grp		= VMMC1_DEV_GRP,
-		.twl_mmc_dedicated		= VMMC1_DEDICATED,
 	},
 	{
 		.twl_vmmc_dev_grp		= VMMC2_DEV_GRP,
-		.twl_mmc_dedicated		= VMMC2_DEDICATED,
 	},
 };
 
@@ -188,10 +189,31 @@ static int twl_mmc_resume(struct device *dev, int slot)
 		|MMC_VDD_25_26|MMC_VDD_26_27|MMC_VDD_27_28 \
 		|MMC_VDD_28_29|MMC_VDD_29_30|MMC_VDD_30_31|MMC_VDD_31_32)
 
+static int twl_mmc_set_regulator(u8 vmmc_dev_grp, u8 vmmc)
+{
+	int ret;
+
+	ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+				   VMMC_DEV_GRP_P1, vmmc_dev_grp);
+
+	if (ret)
+		return ret;
+
+	ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+				   vmmc, vmmc_dev_grp + DEDICATED_OFFSET);
+	return ret;
+}
+
+static int twl_mmc_shutdown_regulator(u8 vmmc_dev_grp)
+{
+	return twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+				    LDO_CLR, vmmc_dev_grp);
+}
+
 static int twl_mmc_set_voltage(struct twl_mmc_controller *c, int vdd)
 {
 	int ret;
-	u8 vmmc = 0, dev_grp_val;
+	u8 vmmc = 0;
 
 	if (!vdd)
 		goto doit;
@@ -221,6 +243,32 @@ static int twl_mmc_set_voltage(struct twl_mmc_controller *c, int vdd)
 		default:
 			return -EINVAL;
 		}
+	} else if (c->twl_vmmc_dev_grp == VAUX3_DEV_GRP) {
+		/* VAUX3:  max 200 mA */
+		switch (1 << vdd) {
+		case MMC_VDD_165_195:
+			vmmc = VAUX3_180V;
+			break;
+		case MMC_VDD_25_26:
+		case MMC_VDD_26_27:
+			vmmc = VAUX3_250V;
+			break;
+		case MMC_VDD_27_28:
+			vmmc = VAUX3_280V;
+			break;
+		case MMC_VDD_28_29:
+			vmmc = VAUX3_280V;
+			break;
+		case MMC_VDD_29_30:
+		case MMC_VDD_30_31:
+			vmmc = VAUX3_300V;
+			break;
+		case MMC_VDD_31_32:
+			vmmc = VAUX3_300V;
+			break;
+		default:
+			return -EINVAL;
+		}
 	} else if (c->twl_vmmc_dev_grp == VMMC2_DEV_GRP) {
 		/* VMMC2:  max 100 mA */
 		switch (1 << vdd) {
@@ -252,30 +300,20 @@ static int twl_mmc_set_voltage(struct twl_mmc_controller *c, int vdd)
 	}
 
 doit:
-	if (vdd)
-		dev_grp_val = VMMC_DEV_GRP_P1;	/* Power up */
-	else
-		dev_grp_val = LDO_CLR;		/* Power down */
-
-	ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
-					dev_grp_val, c->twl_vmmc_dev_grp);
-	if (ret || !vdd)
-		return ret;
-
-	ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
-					vmmc, c->twl_mmc_dedicated);
-	if (ret)
-		return ret;
-
-	if (c->vsim_18v) {
-		u8 vsim = vmmc ? VSIM_18V : 0;
+	if (vdd) {
+		ret = twl_mmc_set_regulator(VMMC_DEV_GRP(c), vmmc);
+		if (ret)
+			return ret;
 
-		ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
-					   dev_grp_val, VSIM_DEV_GRP);
+		if (c->vsim_18v)
+			ret = twl_mmc_set_regulator(VSIM_DEV_GRP, VSIM_18V);
+	} else {
+		ret = twl_mmc_shutdown_regulator(VMMC_DEV_GRP(c));
 		if (ret)
 			return ret;
-		ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
-					   vsim, VSIM_DEDICATED);
+
+		if (c->vsim_18v)
+			ret = twl_mmc_shutdown_regulator(VSIM_DEV_GRP);
 	}
 
 	return ret;
@@ -467,6 +505,8 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)
 			break;
 		case 2:
 			mmc->slots[0].set_power = twl_mmc2_set_power;
+			if (c->vmmc_dev_grp)
+				twl->twl_vmmc_dev_grp = c->vmmc_dev_grp;
 			if (c->transceiver)
 				mmc->slots[0].ocr_mask = MMC2_OCR;
 			else if (c->vsim_18v) {
diff --git a/arch/arm/mach-omap2/mmc-twl4030.h b/arch/arm/mach-omap2/mmc-twl4030.h
index 69dbbc1..6148ba6 100644
--- a/arch/arm/mach-omap2/mmc-twl4030.h
+++ b/arch/arm/mach-omap2/mmc-twl4030.h
@@ -11,6 +11,7 @@ struct twl4030_hsmmc_info {
 	u8	wires;		/* 1/4/8 wires */
 	bool	transceiver;	/* MMC-2 option */
 	bool	ext_clock;	/* use external pin for input clock */
+	u8      vmmc_dev_grp;   /* override default regulator */
 	bool	vsim_18v;	/* MMC-2 option */
 	bool	cover_only;	/* No card detect - just cover switch */
 	int	gpio_cd;	/* or -EINVAL */
-- 
1.5.6.3


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

* Re: [PATCH 1/6] OMAP: mmc-twl4030 fix name buffer length
  2009-03-10  9:33 ` [PATCH 1/6] OMAP: mmc-twl4030 fix name buffer length Adrian Hunter
@ 2009-03-10 17:28   ` David Brownell
  2009-03-10 19:17   ` [APPLIED] <span class="quote">> [PATCH] OMAP: mmc-twl4030 fix name buffer length</span> Tony Lindgren
  1 sibling, 0 replies; 15+ messages in thread
From: David Brownell @ 2009-03-10 17:28 UTC (permalink / raw)
  To: Adrian Hunter; +Cc: Tony Lindgren, Jarkko Lavinen, linux-omap Mailing List

On Tuesday 10 March 2009, Adrian Hunter wrote:
> >From 60238a3a80b5be3e1843a049b39eabf729c315aa Mon Sep 17 00:00:00 2001
> From: Adrian Hunter <adrian.hunter@nokia.com>
> Date: Thu, 22 Jan 2009 17:58:04 +0200
> Subject: [PATCH] OMAP: mmc-twl4030 fix name buffer length
> 
> Add 1 to buffer length for null terminator.
> 
> Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>

Acked-by: David Brownell <dbrownell@users.sourceforge.net>

An endless off-by-one bug ...


> ---
>  arch/arm/mach-omap2/mmc-twl4030.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c
> index 33e5b9b..aeaab5a 100644
> --- a/arch/arm/mach-omap2/mmc-twl4030.c
> +++ b/arch/arm/mach-omap2/mmc-twl4030.c
> @@ -61,7 +61,7 @@ static struct twl_mmc_controller {
>  	struct omap_mmc_platform_data	*mmc;
>  	u8		twl_vmmc_dev_grp;
>  	u8		twl_mmc_dedicated;
> -	char		name[HSMMC_NAME_LEN];
> +	char		name[HSMMC_NAME_LEN + 1];
>  } hsmmc[OMAP34XX_NR_MMC] = {
>  	{
>  		.twl_vmmc_dev_grp		= VMMC1_DEV_GRP,
> -- 
> 1.5.6.3
> 
> 




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

* Re: [PATCH 2/6] OMAP: mmc-twl4030 support VSIM is VMMC2_IO
  2009-03-10  9:33 ` [PATCH 2/6] OMAP: mmc-twl4030 support VSIM is VMMC2_IO Adrian Hunter
@ 2009-03-10 17:46   ` David Brownell
  0 siblings, 0 replies; 15+ messages in thread
From: David Brownell @ 2009-03-10 17:46 UTC (permalink / raw)
  To: Adrian Hunter; +Cc: Tony Lindgren, Jarkko Lavinen, linux-omap Mailing List

On Tuesday 10 March 2009, Adrian Hunter wrote:
> @@ -61,6 +65,7 @@ static struct twl_mmc_controller {
>         struct omap_mmc_platform_data   *mmc;
>         u8              twl_vmmc_dev_grp;
>         u8              twl_mmc_dedicated;
> +       bool            vsim_18v;
>         char            name[HSMMC_NAME_LEN + 1];
>  } hsmmc[OMAP34XX_NR_MMC] = {
>         {

I have an alternate approach to your patches #2, and #6 ...
basically, as part of switching the mmc-twl4030 glue over to
the regulator framework, each MMC device can have two named
supplies.  (And the glue should work with PMICs other than
just the twl4030 family chips.)

So an eMMC chip with both power rails switchable would set up
one for Vcc, and a second for VccQ ... which need not be VSIM,
and need not even use a twl4030.  MMC2 and MMC3 would be able
to switch VccQ on after Vcc, for eMMC ... or similarly for an
SDIO chip with a switchable regulator.

So your #2 patch won't be needed, since the second supply would
be handled in a more general way; ditto #6.  Some of the other
patches will also be affected.

I'll send patches implementing this as soon as I get them
working on one more board.

- Dave

--
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] 15+ messages in thread

* Re: [PATCH 3/6] OMAP: mmc-twl4030 add cover switch
  2009-03-10  9:33 ` [PATCH 3/6] OMAP: mmc-twl4030 add cover switch Adrian Hunter
@ 2009-03-10 17:50   ` David Brownell
  2009-03-10 19:29     ` Tony Lindgren
  0 siblings, 1 reply; 15+ messages in thread
From: David Brownell @ 2009-03-10 17:50 UTC (permalink / raw)
  To: Adrian Hunter; +Cc: Tony Lindgren, Jarkko Lavinen, linux-omap Mailing List

On Tuesday 10 March 2009, Adrian Hunter wrote:
> >From 1667cd29afa90d041c0782223253835e6bc25b18 Mon Sep 17 00:00:00 2001
> From: Adrian Hunter <adrian.hunter@nokia.com>
> Date: Mon, 26 Jan 2009 13:14:28 +0200
> Subject: [PATCH] OMAP: mmc-twl4030 add cover switch
> 
> Allow a cover switch to be used to cause a rescan of the
> MMC slot.
> 
> Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>

Acked-by: David Brownell <dbrownell@users.sourceforge.net>

Because a cover switch is not the same as a card detect switch...


> ---
>  arch/arm/mach-omap2/mmc-twl4030.c |   13 ++++++++++++-
>  arch/arm/mach-omap2/mmc-twl4030.h |    1 +
>  2 files changed, 13 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c
> index 736b039..a58deba 100644
> --- a/arch/arm/mach-omap2/mmc-twl4030.c
> +++ b/arch/arm/mach-omap2/mmc-twl4030.c
> @@ -105,6 +105,14 @@ static int twl_mmc_get_ro(struct device *dev, int slot)
>  	return gpio_get_value_cansleep(mmc->slots[0].gpio_wp);
>  }
>  
> +static int twl_mmc_get_cover_state(struct device *dev, int slot)
> +{
> +	struct omap_mmc_platform_data *mmc = dev->platform_data;
> +
> +	/* NOTE: assumes card detect signal is active-low */
> +	return !gpio_get_value_cansleep(mmc->slots[0].switch_pin);
> +}
> +
>  /*
>   * MMC Slot Initialization.
>   */
> @@ -427,7 +435,10 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)
>  
>  			mmc->slots[0].switch_pin = c->gpio_cd;
>  			mmc->slots[0].card_detect_irq = gpio_to_irq(c->gpio_cd);
> -			mmc->slots[0].card_detect = twl_mmc_card_detect;
> +			if (c->cover_only)
> +				mmc->slots[0].get_cover_state = twl_mmc_get_cover_state;
> +			else
> +				mmc->slots[0].card_detect = twl_mmc_card_detect;
>  		} else
>  			mmc->slots[0].switch_pin = -EINVAL;
>  
> diff --git a/arch/arm/mach-omap2/mmc-twl4030.h b/arch/arm/mach-omap2/mmc-twl4030.h
> index 087a969..e87bc8d 100644
> --- a/arch/arm/mach-omap2/mmc-twl4030.h
> +++ b/arch/arm/mach-omap2/mmc-twl4030.h
> @@ -12,6 +12,7 @@ struct twl4030_hsmmc_info {
>  	bool	transceiver;	/* MMC-2 option */
>  	bool	ext_clock;	/* use external pin for input clock */
>  	bool	vsim_18v;	/* MMC-2 option */
> +	bool	cover_only;	/* No card detect - just cover switch */
>  	int	gpio_cd;	/* or -EINVAL */
>  	int	gpio_wp;	/* or -EINVAL */
>  	struct device *dev;	/* returned: pointer to mmc adapter */
> -- 
> 1.5.6.3
> 
> 




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

* Re: [PATCH 4/6] OMAP: mmc-twl4030 allow arbitrary slot names
  2009-03-10  9:33 ` [PATCH 4/6] OMAP: mmc-twl4030 allow arbitrary slot names Adrian Hunter
@ 2009-03-10 17:56   ` David Brownell
  2009-03-10 19:22   ` [APPLIED] <span class="quote">> [PATCH] OMAP: mmc-twl4030 allow arbitrary slot names</span> Tony Lindgren
  1 sibling, 0 replies; 15+ messages in thread
From: David Brownell @ 2009-03-10 17:56 UTC (permalink / raw)
  To: Adrian Hunter; +Cc: Tony Lindgren, Jarkko Lavinen, linux-omap Mailing List

On Tuesday 10 March 2009, Adrian Hunter wrote:
> >From 4c4a97595cab39443a85517c66bc26f5c2a9cae3 Mon Sep 17 00:00:00 2001
> From: Adrian Hunter <adrian.hunter@nokia.com>
> Date: Fri, 30 Jan 2009 11:10:19 +0200
> Subject: [PATCH] OMAP: mmc-twl4030 allow arbitrary slot names
> 
> Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>

Acked-by: David Brownell <dbrownell@users.sourceforge.net>

Those current slot names are sort of useless, eh?

Actually the MMC framework itself is no help here.  If for
example "mmcblk0" always came from host "mmc0" names would
work a lot more smoothly.  Instead, "mmcblk0" comes from
the first card to be detected ... it might be from "mmc1"
on one boot, "mmc0" on the next, "mmc2" on a third boot.


> ---
>  arch/arm/mach-omap2/mmc-twl4030.c |    5 ++++-
>  arch/arm/mach-omap2/mmc-twl4030.h |    1 +
>  2 files changed, 5 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c
> index a58deba..8fc8e84 100644
> --- a/arch/arm/mach-omap2/mmc-twl4030.c
> +++ b/arch/arm/mach-omap2/mmc-twl4030.c
> @@ -419,7 +419,10 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)
>  			return;
>  		}
>  
> -		sprintf(twl->name, "mmc%islot%i", c->mmc, 1);
> +		if (c->name)
> +			strncpy(twl->name, c->name, HSMMC_NAME_LEN);
> +		else
> +			sprintf(twl->name, "mmc%islot%i", c->mmc, 1);
>  		mmc->slots[0].name = twl->name;
>  		mmc->nr_slots = 1;
>  		mmc->slots[0].wires = c->wires;
> diff --git a/arch/arm/mach-omap2/mmc-twl4030.h b/arch/arm/mach-omap2/mmc-twl4030.h
> index e87bc8d..69dbbc1 100644
> --- a/arch/arm/mach-omap2/mmc-twl4030.h
> +++ b/arch/arm/mach-omap2/mmc-twl4030.h
> @@ -15,6 +15,7 @@ struct twl4030_hsmmc_info {
>  	bool	cover_only;	/* No card detect - just cover switch */
>  	int	gpio_cd;	/* or -EINVAL */
>  	int	gpio_wp;	/* or -EINVAL */
> +	char	*name;		/* or NULL for default */
>  	struct device *dev;	/* returned: pointer to mmc adapter */
>  };
>  
> -- 
> 1.5.6.3
> 
> 




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

* Re: [PATCH 5/6] RX51: adjust hsmmc info
       [not found] ` <20090310093329.16889.76098.sendpatchset@ahunter-laptop>
@ 2009-03-10 17:58   ` David Brownell
  2009-03-10 19:30     ` Tony Lindgren
  0 siblings, 1 reply; 15+ messages in thread
From: David Brownell @ 2009-03-10 17:58 UTC (permalink / raw)
  To: Adrian Hunter; +Cc: Tony Lindgren, Jarkko Lavinen, linux-omap Mailing List

On Tuesday 10 March 2009, Adrian Hunter wrote:
> @@ -52,16 +52,20 @@ static struct platform_device *rx51_flash_devices[] = {
>  
>  static struct twl4030_hsmmc_info mmc[] __initdata = {
>         {
> +               .name           = "external",
>                 .mmc            = 1,
> -               .wires          = 8,
> +               .wires          = 4,
> +               .cover_only     = true,
>                 .gpio_cd        = 160,
>                 .gpio_wp        = -EINVAL,
>         },
>         {
> +               .name           = "internal",
>                 .mmc            = 2,
>                 .wires          = 8,

Ack on all the changes above ...


>                 .gpio_cd        = -EINVAL,
>                 .gpio_wp        = -EINVAL,
> +               .vsim_18v       = true,

... but not that one.

>         },
>         {}      /* Terminator */
>  };


--
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] 15+ messages in thread

* [APPLIED] <span class="quote">> [PATCH] OMAP: mmc-twl4030 fix name buffer length</span>
  2009-03-10  9:33 ` [PATCH 1/6] OMAP: mmc-twl4030 fix name buffer length Adrian Hunter
  2009-03-10 17:28   ` David Brownell
@ 2009-03-10 19:17   ` Tony Lindgren
  1 sibling, 0 replies; 15+ messages in thread
From: Tony Lindgren @ 2009-03-10 19:17 UTC (permalink / raw)
  To: linux-omap

This patch has been applied to the linux-omap
by youw fwiendly patch wobot.

Commit: 9ed678812ff0a8c42884ce5179b0ac34e3d0c995

PatchWorks
http://patchwork.kernel.org/patch/10840/

Git
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=9ed678812ff0a8c42884ce5179b0ac34e3d0c995



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

* [APPLIED] <span class="quote">> [PATCH] OMAP: mmc-twl4030 allow arbitrary slot names</span>
  2009-03-10  9:33 ` [PATCH 4/6] OMAP: mmc-twl4030 allow arbitrary slot names Adrian Hunter
  2009-03-10 17:56   ` David Brownell
@ 2009-03-10 19:22   ` Tony Lindgren
  1 sibling, 0 replies; 15+ messages in thread
From: Tony Lindgren @ 2009-03-10 19:22 UTC (permalink / raw)
  To: linux-omap

This patch has been applied to the linux-omap
by youw fwiendly patch wobot.

Commit: 84a26c2ee36fc899901c08ec0458be1d4999e8b5

PatchWorks
http://patchwork.kernel.org/patch/10842/

Git
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=84a26c2ee36fc899901c08ec0458be1d4999e8b5



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

* Re: [PATCH 3/6] OMAP: mmc-twl4030 add cover switch
  2009-03-10 17:50   ` David Brownell
@ 2009-03-10 19:29     ` Tony Lindgren
  0 siblings, 0 replies; 15+ messages in thread
From: Tony Lindgren @ 2009-03-10 19:29 UTC (permalink / raw)
  To: David Brownell; +Cc: Adrian Hunter, Jarkko Lavinen, linux-omap Mailing List

* David Brownell <david-b@pacbell.net> [090310 10:51]:
> On Tuesday 10 March 2009, Adrian Hunter wrote:
> > >From 1667cd29afa90d041c0782223253835e6bc25b18 Mon Sep 17 00:00:00 2001
> > From: Adrian Hunter <adrian.hunter@nokia.com>
> > Date: Mon, 26 Jan 2009 13:14:28 +0200
> > Subject: [PATCH] OMAP: mmc-twl4030 add cover switch
> > 
> > Allow a cover switch to be used to cause a rescan of the
> > MMC slot.
> > 
> > Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
> 
> Acked-by: David Brownell <dbrownell@users.sourceforge.net>
> 
> Because a cover switch is not the same as a card detect switch...

Pushed this too after after editing the header change to apply.

Tony 
 
> > ---
> >  arch/arm/mach-omap2/mmc-twl4030.c |   13 ++++++++++++-
> >  arch/arm/mach-omap2/mmc-twl4030.h |    1 +
> >  2 files changed, 13 insertions(+), 1 deletions(-)
> > 
> > diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c
> > index 736b039..a58deba 100644
> > --- a/arch/arm/mach-omap2/mmc-twl4030.c
> > +++ b/arch/arm/mach-omap2/mmc-twl4030.c
> > @@ -105,6 +105,14 @@ static int twl_mmc_get_ro(struct device *dev, int slot)
> >  	return gpio_get_value_cansleep(mmc->slots[0].gpio_wp);
> >  }
> >  
> > +static int twl_mmc_get_cover_state(struct device *dev, int slot)
> > +{
> > +	struct omap_mmc_platform_data *mmc = dev->platform_data;
> > +
> > +	/* NOTE: assumes card detect signal is active-low */
> > +	return !gpio_get_value_cansleep(mmc->slots[0].switch_pin);
> > +}
> > +
> >  /*
> >   * MMC Slot Initialization.
> >   */
> > @@ -427,7 +435,10 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)
> >  
> >  			mmc->slots[0].switch_pin = c->gpio_cd;
> >  			mmc->slots[0].card_detect_irq = gpio_to_irq(c->gpio_cd);
> > -			mmc->slots[0].card_detect = twl_mmc_card_detect;
> > +			if (c->cover_only)
> > +				mmc->slots[0].get_cover_state = twl_mmc_get_cover_state;
> > +			else
> > +				mmc->slots[0].card_detect = twl_mmc_card_detect;
> >  		} else
> >  			mmc->slots[0].switch_pin = -EINVAL;
> >  
> > diff --git a/arch/arm/mach-omap2/mmc-twl4030.h b/arch/arm/mach-omap2/mmc-twl4030.h
> > index 087a969..e87bc8d 100644
> > --- a/arch/arm/mach-omap2/mmc-twl4030.h
> > +++ b/arch/arm/mach-omap2/mmc-twl4030.h
> > @@ -12,6 +12,7 @@ struct twl4030_hsmmc_info {
> >  	bool	transceiver;	/* MMC-2 option */
> >  	bool	ext_clock;	/* use external pin for input clock */
> >  	bool	vsim_18v;	/* MMC-2 option */
> > +	bool	cover_only;	/* No card detect - just cover switch */
> >  	int	gpio_cd;	/* or -EINVAL */
> >  	int	gpio_wp;	/* or -EINVAL */
> >  	struct device *dev;	/* returned: pointer to mmc adapter */
> > -- 
> > 1.5.6.3
> > 
> > 
> 
> 
> 

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

* Re: [PATCH 5/6] RX51: adjust hsmmc info
  2009-03-10 17:58   ` [PATCH 5/6] RX51: adjust hsmmc info David Brownell
@ 2009-03-10 19:30     ` Tony Lindgren
  0 siblings, 0 replies; 15+ messages in thread
From: Tony Lindgren @ 2009-03-10 19:30 UTC (permalink / raw)
  To: David Brownell; +Cc: Adrian Hunter, Jarkko Lavinen, linux-omap Mailing List

* David Brownell <david-b@pacbell.net> [090310 10:58]:
> On Tuesday 10 March 2009, Adrian Hunter wrote:
> > @@ -52,16 +52,20 @@ static struct platform_device *rx51_flash_devices[] = {
> >  
> >  static struct twl4030_hsmmc_info mmc[] __initdata = {
> >         {
> > +               .name           = "external",
> >                 .mmc            = 1,
> > -               .wires          = 8,
> > +               .wires          = 4,
> > +               .cover_only     = true,
> >                 .gpio_cd        = 160,
> >                 .gpio_wp        = -EINVAL,
> >         },
> >         {
> > +               .name           = "internal",
> >                 .mmc            = 2,
> >                 .wires          = 8,
> 
> Ack on all the changes above ...
> 
> 
> >                 .gpio_cd        = -EINVAL,
> >                 .gpio_wp        = -EINVAL,
> > +               .vsim_18v       = true,
> 
> ... but not that one.
> 
> >         },
> >         {}      /* Terminator */
> >  };
> 
> 

Applied this too except for the vsim_18v.

Tony
--
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] 15+ messages in thread

end of thread, other threads:[~2009-03-10 19:30 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-10  9:32 [PATCH 0/6] mmc-twl4030 patches for RX51 Adrian Hunter
2009-03-10  9:33 ` [PATCH 1/6] OMAP: mmc-twl4030 fix name buffer length Adrian Hunter
2009-03-10 17:28   ` David Brownell
2009-03-10 19:17   ` [APPLIED] <span class="quote">> [PATCH] OMAP: mmc-twl4030 fix name buffer length</span> Tony Lindgren
2009-03-10  9:33 ` [PATCH 2/6] OMAP: mmc-twl4030 support VSIM is VMMC2_IO Adrian Hunter
2009-03-10 17:46   ` David Brownell
2009-03-10  9:33 ` [PATCH 3/6] OMAP: mmc-twl4030 add cover switch Adrian Hunter
2009-03-10 17:50   ` David Brownell
2009-03-10 19:29     ` Tony Lindgren
2009-03-10  9:33 ` [PATCH 4/6] OMAP: mmc-twl4030 allow arbitrary slot names Adrian Hunter
2009-03-10 17:56   ` David Brownell
2009-03-10 19:22   ` [APPLIED] <span class="quote">> [PATCH] OMAP: mmc-twl4030 allow arbitrary slot names</span> Tony Lindgren
2009-03-10  9:33 ` [PATCH 6/6] OMAP: mmc-twl4030: Add VAUX3 support Adrian Hunter
     [not found] ` <20090310093329.16889.76098.sendpatchset@ahunter-laptop>
2009-03-10 17:58   ` [PATCH 5/6] RX51: adjust hsmmc info David Brownell
2009-03-10 19:30     ` Tony Lindgren

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