RE: [PATCH] OMAP4: MMC driver support on OMAP4

2009-09-04 Thread Madhusudhan


> -Original Message-
> From: Tony Lindgren [mailto:t...@atomide.com]
> Sent: Friday, September 04, 2009 2:34 PM
> To: Pandita, Vikram
> Cc: Andrew Morton; Kadiyala, Kishore; linux-ker...@vger.kernel.org; linux-
> o...@vger.kernel.org; jarkko.lavi...@nokia.com; Chikkature Rajashekar,
> Madhusudhan; linux-arm-ker...@lists.arm.linux.org.uk; linux-arm-
> ker...@lists.infradead.org; linux-...@vger.kernel.org
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> * Pandita, Vikram  [090904 12:24]:
> > Andrew/Kishore
> >
> > >-Original Message-
> > >From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
> ow...@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"  wrote:
> > >
> > >> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> > >>
> > >> -Kishore
> > >>
> > >> Signed-off-by: Kishore Kadiyala 
> > >> ---
> > >> 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 

Request to add my ACK.

Acked-by: Madhusudhan Chikkature 


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


RE: [PATCH] OMAP4: MMC driver support on OMAP4

2009-09-04 Thread Madhusudhan


> -Original Message-
> From: Tony Lindgren [mailto:t...@atomide.com]
> Sent: Friday, September 04, 2009 2:34 PM
> To: Pandita, Vikram
> Cc: Andrew Morton; Kadiyala, Kishore; linux-ker...@vger.kernel.org; linux-
> o...@vger.kernel.org; jarkko.lavi...@nokia.com; Chikkature Rajashekar,
> Madhusudhan; linux-arm-ker...@lists.arm.linux.org.uk; linux-arm-
> ker...@lists.infradead.org; linux-...@vger.kernel.org
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> * Pandita, Vikram  [090904 12:24]:
> > Andrew/Kishore
> >
> > >-Original Message-
> > >From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
> ow...@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"  wrote:
> > >
> > >> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> > >>
> > >> -Kishore
> > >>
> > >> Signed-off-by: Kishore Kadiyala 
> > >> ---
> > >> 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 

Request to add my ACK.

Acked-by: Madhusudhan Chikkature 


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


Re: [PATCH] OMAP4: MMC driver support on OMAP4

2009-09-04 Thread Tony Lindgren
* Pandita, Vikram  [090904 12:24]:
> Andrew/Kishore
> 
> >-Original Message-
> >From: linux-omap-ow...@vger.kernel.org 
> >[mailto:linux-omap-ow...@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"  wrote:
> >
> >> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> >>
> >> -Kishore
> >>
> >> Signed-off-by: Kishore Kadiyala 
> >> ---
> >> 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 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH] OMAP4: MMC driver support on OMAP4

2009-09-04 Thread Pandita, Vikram
Andrew/Kishore

>-Original Message-
>From: linux-omap-ow...@vger.kernel.org 
>[mailto:linux-omap-ow...@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"  wrote:
>
>> This Patch adds basic support for all 5 MMC controllers on OMAP4.
>>
>> -Kishore
>>
>> Signed-off-by: Kishore Kadiyala 
>> ---
>> 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 majord...@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html

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


Re: [PATCH] OMAP4: MMC driver support on OMAP4

2009-09-04 Thread Andrew Morton
On Wed, 2 Sep 2009 18:54:36 +0530 (IST)
"kishore kadiyala"  wrote:

> This Patch adds basic support for all 5 MMC controllers on OMAP4.
> 
> -Kishore
> 
> Signed-off-by: Kishore Kadiyala 
> ---
> 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.

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


RE: [PATCH] OMAP4: MMC driver support on OMAP4

2009-09-03 Thread Madhusudhan


> -Original Message-
> From: kishore kadiyala [mailto:kishorek.kadiy...@gmail.com]
> Sent: Thursday, September 03, 2009 11:04 AM
> To: Madhusudhan
> Cc: kishore kadiyala; linux-ker...@vger.kernel.org; linux-
> o...@vger.kernel.org; jarkko.lavi...@nokia.com
> Subject: Re: [PATCH] OMAP4: MMC driver support on OMAP4
> 
> On Wed, Sep 2, 2009 at 10:00 PM, Madhusudhan  wrote:
> >
> >
> > > -Original Message-
> > > From: kishore kadiyala [mailto:kishore.kadiy...@ti.com]
> > > Sent: Wednesday, September 02, 2009 8:30 AM
> > > To: linux-ker...@vger.kernel.org
> > > Cc: linux-omap@vger.kernel.org; jarkko.lavi...@nokia.com;
> madhu...@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 
> > > ---
> > > 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-...@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;
> > > 

Re: [PATCH] OMAP4: MMC driver support on OMAP4

2009-09-03 Thread kishore kadiyala
On Wed, Sep 2, 2009 at 10:00 PM, Madhusudhan  wrote:
>
>
> > -Original Message-
> > From: kishore kadiyala [mailto:kishore.kadiy...@ti.com]
> > Sent: Wednesday, September 02, 2009 8:30 AM
> > To: linux-ker...@vger.kernel.org
> > Cc: linux-omap@vger.kernel.org; jarkko.lavi...@nokia.com; madhu...@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 
> > ---
> > 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_

RE: [PATCH] OMAP4: MMC driver support on OMAP4

2009-09-02 Thread Madhusudhan


> -Original Message-
> From: kishore kadiyala [mailto:kishore.kadiy...@ti.com]
> Sent: Wednesday, September 02, 2009 8:30 AM
> To: linux-ker...@vger.kernel.org
> Cc: linux-omap@vger.kernel.org; jarkko.lavi...@nokia.com; madhu...@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 
> ---
> 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"

Re: [PATCH] OMAP4: MMC driver support on OMAP4

2009-09-02 Thread kishore kadiyala
Resending the patch, CC'ing LO.

--Kishore

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

Signed-off-by: Kishore Kadiyala 
---
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_SYSCONFIG0x0010
 #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_4