From: Tony Lindgren <tony@atomide.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Grazvydas Ignotas <notasas@gmail.com>,
linux-arm-kernel@lists.arm.linux.org.uk,
linux-omap@vger.kernel.org
Subject: Re: [PATCH 07/12] ARM: OMAP3: mmc-twl4030 add MMC3 support, v2
Date: Mon, 16 Mar 2009 10:56:23 -0700 [thread overview]
Message-ID: <20090316175622.GE19229@atomide.com> (raw)
In-Reply-To: <20090315174039.GB13220@n2100.arm.linux.org.uk>
[-- Attachment #1: Type: text/plain, Size: 984 bytes --]
* Russell King - ARM Linux <linux@arm.linux.org.uk> [090315 10:40]:
> On Sun, Mar 15, 2009 at 07:27:32PM +0200, Grazvydas Ignotas wrote:
> > On Sun, Mar 15, 2009 at 6:04 PM, Russell King - ARM Linux
> > <linux@arm.linux.org.uk> wrote:
> > > On Tue, Mar 10, 2009 at 02:10:00PM -0700, Tony Lindgren wrote:
> > >> ... Array size for hsmmc[] is specified
> > >> because hsmmc[2].name is needed for MMC3 name.
> > >
> > > I see nothing in this patch which requires that.
> >
> > Right, but there is already some code in twl4030_mmc_init() of mmc-twl4030.c:
> >
> > struct twl_mmc_controller *twl = hsmmc + c->mmc - 1;
> > <snip>
> > sprintf(twl->name, "mmc%islot%i", c->mmc, 1);
> >
> > .. which basically writes to hsmmc[2].name for MMC3.
>
> So, it's nothing really to do with hsmmc[2].name being required, it's
> more a case of needing to have the 3rd MMC interface included. The
> comment in the commit is *really* misleading.
Here's this one updated for the comments.
Tony
[-- Attachment #2: hsmmc-add-mmc3-v2.patch --]
[-- Type: text/x-diff, Size: 2777 bytes --]
>From 9c51c8f60fe2e33989f2c87ff9829a7eea89240e Mon Sep 17 00:00:00 2001
From: Grazvydas Ignotas <notasas@gmail.com>
Date: Mon, 16 Mar 2009 10:43:06 -0700
Subject: [PATCH] ARM: OMAP3: mmc-twl4030 add MMC3 support, v2
Device connected to MMC3 is assumed to be self-powered, so
set_power() function is empty. It can't be omited because
host driver requires it.
Array size for hsmmc[] is specified to allocate to allocate
an instance for the third MMC controller.
Also fix a leak which happens if invalid controller id
is passed.
Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index 7a46a65..6e17180 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -55,6 +55,12 @@ static struct twl4030_hsmmc_info omap3pandora_mmc[] = {
.ext_clock = 1,
.transceiver = true,
},
+ {
+ .mmc = 3,
+ .wires = 4,
+ .gpio_cd = -EINVAL,
+ .gpio_wp = -EINVAL,
+ },
{} /* Terminator */
};
diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c
index c67078d..d9fad8d 100644
--- a/arch/arm/mach-omap2/mmc-twl4030.c
+++ b/arch/arm/mach-omap2/mmc-twl4030.c
@@ -62,7 +62,7 @@ static struct twl_mmc_controller {
u8 twl_vmmc_dev_grp;
u8 twl_mmc_dedicated;
char name[HSMMC_NAME_LEN + 1];
-} hsmmc[] = {
+} hsmmc[OMAP34XX_NR_MMC] = {
{
.twl_vmmc_dev_grp = VMMC1_DEV_GRP,
.twl_mmc_dedicated = VMMC1_DEDICATED,
@@ -347,6 +347,16 @@ static int twl_mmc2_set_power(struct device *dev, int slot, int power_on, int vd
return ret;
}
+static int twl_mmc3_set_power(struct device *dev, int slot, int power_on,
+ int vdd)
+{
+ /*
+ * Assume MMC3 has self-powered device connected, for example on-board
+ * chip with external power source.
+ */
+ return 0;
+}
+
static struct omap_mmc_platform_data *hsmmc_data[OMAP34XX_NR_MMC] __initdata;
void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)
@@ -415,7 +425,7 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)
/* NOTE: we assume OMAP's MMC1 and MMC2 use
* the TWL4030's VMMC1 and VMMC2, respectively;
- * and that OMAP's MMC3 isn't used.
+ * and that MMC3 device has it's own power source.
*/
switch (c->mmc) {
@@ -430,8 +440,13 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)
else
mmc->slots[0].ocr_mask = MMC_VDD_165_195;
break;
+ case 3:
+ mmc->slots[0].set_power = twl_mmc3_set_power;
+ mmc->slots[0].ocr_mask = MMC_VDD_165_195;
+ break;
default:
pr_err("MMC%d configuration not supported!\n", c->mmc);
+ kfree(mmc);
continue;
}
hsmmc_data[c->mmc - 1] = mmc;
next prev parent reply other threads:[~2009-03-16 17:56 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-10 21:00 [PATCH 00/12] Omap3 updates for the merge window after 2.6.29 Tony Lindgren
2009-03-10 21:02 ` [PATCH 01/12] ARM: OMAP3: Remove unused CONFIG_I2C2_OMAP_BEAGLE Tony Lindgren
2009-03-10 21:03 ` [PATCH 02/12] ARM: OMAP3: Store reboot mode in scratchpad on OMAP34xx Tony Lindgren
2009-03-15 15:51 ` Russell King - ARM Linux
2009-03-16 16:07 ` Juha Yrjola
2009-03-16 17:10 ` Russell King - ARM Linux
2009-03-16 17:40 ` Juha Yrjola
2009-03-16 22:21 ` Russell King - ARM Linux
2009-03-18 18:28 ` Tony Lindgren
2009-03-18 19:26 ` Russell King - ARM Linux
2009-03-18 20:10 ` Tony Lindgren
2009-03-18 20:15 ` Tony Lindgren
2009-03-19 0:08 ` Russell King - ARM Linux
2009-03-19 15:56 ` Tony Lindgren
2009-03-24 1:11 ` Tony Lindgren
2009-03-10 21:04 ` [PATCH 03/12] ARM: OMAP3: Add more GPIO mux options Tony Lindgren
2009-03-10 21:06 ` [PATCH 04/12] ARM: OMAP3: mmc-twl4030 fix name buffer length Tony Lindgren
2009-03-15 16:00 ` Russell King - ARM Linux
2009-03-16 10:04 ` Adrian Hunter
2009-03-16 10:14 ` Russell King - ARM Linux
2009-03-16 17:42 ` Tony Lindgren
2009-03-16 22:22 ` Russell King - ARM Linux
2009-03-10 21:07 ` [PATCH 05/12] ARM: OMAP3: mmc-twl4030 voltage cleanup Tony Lindgren
2009-03-10 21:08 ` [PATCH 06/12] ARM: OMAP3: mmc-twl4030 init passes device nodes back Tony Lindgren
2009-03-15 16:02 ` Russell King - ARM Linux
2009-03-16 17:44 ` Tony Lindgren
2009-03-16 22:22 ` Russell King - ARM Linux
2009-03-10 21:10 ` [PATCH 07/12] ARM: OMAP3: mmc-twl4030 add MMC3 support Tony Lindgren
2009-03-15 16:04 ` Russell King - ARM Linux
2009-03-15 17:27 ` Grazvydas Ignotas
2009-03-15 17:40 ` Russell King - ARM Linux
2009-03-16 17:56 ` Tony Lindgren [this message]
2009-03-10 21:11 ` [PATCH 08/12] ARM: OMAP3: mmc-twl4030 fix for vmmc = 0 Tony Lindgren
2009-03-10 21:12 ` [PATCH 09/12] ARM: OMAP3: mmc-twl4030 add cover switch Tony Lindgren
2009-03-10 21:13 ` [PATCH 10/12] ARM: OMAP3: mmc-twl4030 allow arbitrary slot names Tony Lindgren
2009-03-15 16:08 ` Russell King - ARM Linux
2009-03-16 10:04 ` Adrian Hunter
2009-03-16 10:05 ` Adrian Hunter
2009-03-16 10:16 ` Russell King - ARM Linux
2009-03-16 18:01 ` Tony Lindgren
2009-03-10 21:15 ` [PATCH 11/12] ARM: OMAP3: Add base address definitions and resources for OMAP 3 IS Tony Lindgren
2009-03-24 1:37 ` [PATCH 11/12] ARM: OMAP3: Add base address definitions and resources for OMAP 3 IS, v2 Tony Lindgren
2009-03-10 21:16 ` [PATCH 12/12] ARM: OMAP3: MUSB initialization for omap hw Tony Lindgren
2009-03-15 16:14 ` Russell King - ARM Linux
2009-03-15 18:46 ` David Brownell
2009-03-16 22:42 ` [PATCH] ARM: OMAP: Add name for musb clocks Tony Lindgren
2009-05-12 17:40 ` [APPLIED] " Tony Lindgren
2009-03-16 22:37 ` [PATCH 12/12] ARM: OMAP3: MUSB initialization for omap hw, v2 Tony Lindgren
2009-03-24 2:51 ` [PATCH 00/12] Omap3 updates for the merge window after 2.6.29 Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090316175622.GE19229@atomide.com \
--to=tony@atomide.com \
--cc=linux-arm-kernel@lists.arm.linux.org.uk \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=notasas@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.