Patchwork [v2] ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

login
register
mail settings
Submitter Gaëtan Carlier
Date Sept. 5, 2012, 11:06 a.m.
Message ID <1346843175-4166-1-git-send-email-gcembed@gmail.com>
Download mbox | patch
Permalink /patch/181845/
State New
Headers show

Comments

Gaëtan Carlier - Sept. 5, 2012, 11:06 a.m.
Hi,
This is to prepare addition of m2m-emmapp driver otherwise
 IMX_HAVE_PLATFORM_MX2_CAMERA must be declared even if only Post-Processor
is needed.

IMX_HAVE_PLATFORM_MX2_EMMA define has been added.

Changes since v1:
 - Add "select IMX_HAVE_PLATFORM_MX2_EMMA" for MACH_IMX27_VISSTRIM_M10 platform
   due to pending patch in linux-media tree that will call
   imx27_add_mx2_emmaprp().

Signed-off-by: Gaëtan Carlier <gcembed@gmail.com>
---
 arch/arm/mach-imx/Kconfig                       |    1 +
 arch/arm/mach-imx/devices-imx27.h               |    4 ++-
 arch/arm/plat-mxc/devices/Kconfig               |    3 ++
 arch/arm/plat-mxc/devices/Makefile              |    1 +
 arch/arm/plat-mxc/devices/platform-mx2-camera.c |   17 ---------
 arch/arm/plat-mxc/devices/platform-mx2-emma.c   |   41 +++++++++++++++++++++++
 arch/arm/plat-mxc/include/mach/devices-common.h |    9 ++++-
 7 files changed, 57 insertions(+), 19 deletions(-)
 create mode 100644 arch/arm/plat-mxc/devices/platform-mx2-emma.c
Sascha Hauer - Sept. 11, 2012, 9:47 a.m.
Hi Javier,

Since you worked in this area recently, can I have your Ack on this?

As a side note: Please be prepared that all this should be removed in
the not-so-far future. It would be good if you start converting your
boards to devicetree soon. You may be doing so internally already, I
don't know.

Thanks
 Sascha

On Wed, Sep 05, 2012 at 01:06:15PM +0200, Gaëtan Carlier wrote:
> Hi,
> This is to prepare addition of m2m-emmapp driver otherwise
>  IMX_HAVE_PLATFORM_MX2_CAMERA must be declared even if only Post-Processor
> is needed.
> 
> IMX_HAVE_PLATFORM_MX2_EMMA define has been added.
> 
> Changes since v1:
>  - Add "select IMX_HAVE_PLATFORM_MX2_EMMA" for MACH_IMX27_VISSTRIM_M10 platform
>    due to pending patch in linux-media tree that will call
>    imx27_add_mx2_emmaprp().
> 
> Signed-off-by: Gaëtan Carlier <gcembed@gmail.com>
> ---
>  arch/arm/mach-imx/Kconfig                       |    1 +
>  arch/arm/mach-imx/devices-imx27.h               |    4 ++-
>  arch/arm/plat-mxc/devices/Kconfig               |    3 ++
>  arch/arm/plat-mxc/devices/Makefile              |    1 +
>  arch/arm/plat-mxc/devices/platform-mx2-camera.c |   17 ---------
>  arch/arm/plat-mxc/devices/platform-mx2-emma.c   |   41 +++++++++++++++++++++++
>  arch/arm/plat-mxc/include/mach/devices-common.h |    9 ++++-
>  7 files changed, 57 insertions(+), 19 deletions(-)
>  create mode 100644 arch/arm/plat-mxc/devices/platform-mx2-emma.c
> 
> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> index afd542a..c2984d7 100644
> --- a/arch/arm/mach-imx/Kconfig
> +++ b/arch/arm/mach-imx/Kconfig
> @@ -322,6 +322,7 @@ config MACH_IMX27_VISSTRIM_M10
>  	select IMX_HAVE_PLATFORM_IMX_SSI
>  	select IMX_HAVE_PLATFORM_IMX_UART
>  	select IMX_HAVE_PLATFORM_MX2_CAMERA
> +	select IMX_HAVE_PLATFORM_MX2_EMMA
>  	select IMX_HAVE_PLATFORM_MXC_EHCI
>  	select IMX_HAVE_PLATFORM_MXC_MMC
>  	select LEDS_GPIO_REGISTER
> diff --git a/arch/arm/mach-imx/devices-imx27.h b/arch/arm/mach-imx/devices-imx27.h
> index 0482293..d8eb4a0 100644
> --- a/arch/arm/mach-imx/devices-imx27.h
> +++ b/arch/arm/mach-imx/devices-imx27.h
> @@ -54,8 +54,10 @@ extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[];
>  extern const struct imx_mx2_camera_data imx27_mx2_camera_data;
>  #define imx27_add_mx2_camera(pdata)	\
>  	imx_add_mx2_camera(&imx27_mx2_camera_data, pdata)
> +
> +extern const struct imx_mx2_emma_data imx27_mx2_emmaprp_data;
>  #define imx27_add_mx2_emmaprp()	\
> -	imx_add_mx2_emmaprp(&imx27_mx2_camera_data)
> +	imx_add_mx2_emmaprp(&imx27_mx2_emmaprp_data)
>  
>  extern const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data;
>  #define imx27_add_mxc_ehci_otg(pdata)	\
> diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig
> index 6b46cee..96feef7 100644
> --- a/arch/arm/plat-mxc/devices/Kconfig
> +++ b/arch/arm/plat-mxc/devices/Kconfig
> @@ -56,6 +56,9 @@ config IMX_HAVE_PLATFORM_MX1_CAMERA
>  config IMX_HAVE_PLATFORM_MX2_CAMERA
>  	bool
>  
> +config IMX_HAVE_PLATFORM_MX2_EMMA
> +	bool
> +
>  config IMX_HAVE_PLATFORM_MXC_EHCI
>  	bool
>  
> diff --git a/arch/arm/plat-mxc/devices/Makefile b/arch/arm/plat-mxc/devices/Makefile
> index 76f3195..7292c1f 100644
> --- a/arch/arm/plat-mxc/devices/Makefile
> +++ b/arch/arm/plat-mxc/devices/Makefile
> @@ -28,3 +28,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o
>  obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o
>  obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) +=  platform-spi_imx.o
>  obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) +=  platform-ahci-imx.o
> +obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_EMMA) += platform-mx2-emma.o
> diff --git a/arch/arm/plat-mxc/devices/platform-mx2-camera.c b/arch/arm/plat-mxc/devices/platform-mx2-camera.c
> index 11eace9..11c688f 100644
> --- a/arch/arm/plat-mxc/devices/platform-mx2-camera.c
> +++ b/arch/arm/plat-mxc/devices/platform-mx2-camera.c
> @@ -63,20 +63,3 @@ struct platform_device *__init imx_add_mx2_camera(
>  			pdata, sizeof(*pdata), DMA_BIT_MASK(32));
>  }
>  
> -struct platform_device *__init imx_add_mx2_emmaprp(
> -		const struct imx_mx2_camera_data *data)
> -{
> -	struct resource res[] = {
> -		{
> -			.start = data->iobaseemmaprp,
> -			.end = data->iobaseemmaprp + data->iosizeemmaprp - 1,
> -			.flags = IORESOURCE_MEM,
> -		}, {
> -			.start = data->irqemmaprp,
> -			.end = data->irqemmaprp,
> -			.flags = IORESOURCE_IRQ,
> -		},
> -	};
> -	return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
> -			res, 2, NULL, 0, DMA_BIT_MASK(32));
> -}
> diff --git a/arch/arm/plat-mxc/devices/platform-mx2-emma.c b/arch/arm/plat-mxc/devices/platform-mx2-emma.c
> new file mode 100644
> index 0000000..a51749a
> --- /dev/null
> +++ b/arch/arm/plat-mxc/devices/platform-mx2-emma.c
> @@ -0,0 +1,41 @@
> +/*
> + * Copyright (C) 2010 Pengutronix
> + * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
> + *
> + * This program is free software; you can redistribute it and/or modify it under
> + * the terms of the GNU General Public License version 2 as published by the
> + * Free Software Foundation.
> + */
> +#include <mach/hardware.h>
> +#include <mach/devices-common.h>
> +
> +#define imx_mx2_emmaprp_data_entry_single(soc)				\
> +	{								\
> +		.iobase = soc ## _EMMAPRP_BASE_ADDR,			\
> +		.iosize = SZ_32,					\
> +		.irq = soc ## _INT_EMMAPRP,				\
> +	}
> +
> +#ifdef CONFIG_SOC_IMX27
> +const struct imx_mx2_emma_data imx27_mx2_emmaprp_data __initconst =
> +	imx_mx2_emmaprp_data_entry_single(MX27);
> +#endif /* ifdef CONFIG_SOC_IMX27 */
> +
> +struct platform_device *__init imx_add_mx2_emmaprp(
> +		const struct imx_mx2_emma_data *data)
> +{
> +	struct resource res[] = {
> +		{
> +			.start = data->iobase,
> +			.end = data->iobase + data->iosize - 1,
> +			.flags = IORESOURCE_MEM,
> +		}, {
> +			.start = data->irq,
> +			.end = data->irq,
> +			.flags = IORESOURCE_IRQ,
> +		},
> +	};
> +	return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
> +			res, 2, NULL, 0, DMA_BIT_MASK(32));
> +}
> +
> diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
> index 762780c..2117072 100644
> --- a/arch/arm/plat-mxc/include/mach/devices-common.h
> +++ b/arch/arm/plat-mxc/include/mach/devices-common.h
> @@ -229,8 +229,15 @@ struct imx_mx2_camera_data {
>  struct platform_device *__init imx_add_mx2_camera(
>  		const struct imx_mx2_camera_data *data,
>  		const struct mx2_camera_platform_data *pdata);
> +
> +
> +struct imx_mx2_emma_data {
> +	resource_size_t iobase;
> +	resource_size_t iosize;
> +	resource_size_t irq;
> +};
>  struct platform_device *__init imx_add_mx2_emmaprp(
> -		const struct imx_mx2_camera_data *data);
> +		const struct imx_mx2_emma_data *data);
>  
>  #include <mach/mxc_ehci.h>
>  struct imx_mxc_ehci_data {
> -- 
> 1.7.7.4
> 
>
Javier Martin - Sept. 11, 2012, 11:13 a.m.
Hi,

On 11 September 2012 11:47, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> Hi Javier,
>
> Since you worked in this area recently, can I have your Ack on this?

Acked-by: Javier Martin <javier.martin@vista-silicon.com>

> As a side note: Please be prepared that all this should be removed in
> the not-so-far future. It would be good if you start converting your
> boards to devicetree soon. You may be doing so internally already, I
> don't know.

We made some tests regarding devicetree this summer but we found that
there are some things missing yet:
- pinctrl
- soc-camera and video sensor

I don't know if people from Linaro is planning to deal with pinctrl
for i.MX27 or not.


> Thanks
>  Sascha
>
> On Wed, Sep 05, 2012 at 01:06:15PM +0200, Gaëtan Carlier wrote:
>> Hi,
>> This is to prepare addition of m2m-emmapp driver otherwise
>>  IMX_HAVE_PLATFORM_MX2_CAMERA must be declared even if only Post-Processor
>> is needed.
>>
>> IMX_HAVE_PLATFORM_MX2_EMMA define has been added.
>>
>> Changes since v1:
>>  - Add "select IMX_HAVE_PLATFORM_MX2_EMMA" for MACH_IMX27_VISSTRIM_M10 platform
>>    due to pending patch in linux-media tree that will call
>>    imx27_add_mx2_emmaprp().
>>
>> Signed-off-by: Gaëtan Carlier <gcembed@gmail.com>
>> ---
>>  arch/arm/mach-imx/Kconfig                       |    1 +
>>  arch/arm/mach-imx/devices-imx27.h               |    4 ++-
>>  arch/arm/plat-mxc/devices/Kconfig               |    3 ++
>>  arch/arm/plat-mxc/devices/Makefile              |    1 +
>>  arch/arm/plat-mxc/devices/platform-mx2-camera.c |   17 ---------
>>  arch/arm/plat-mxc/devices/platform-mx2-emma.c   |   41 +++++++++++++++++++++++
>>  arch/arm/plat-mxc/include/mach/devices-common.h |    9 ++++-
>>  7 files changed, 57 insertions(+), 19 deletions(-)
>>  create mode 100644 arch/arm/plat-mxc/devices/platform-mx2-emma.c
>>
>> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
>> index afd542a..c2984d7 100644
>> --- a/arch/arm/mach-imx/Kconfig
>> +++ b/arch/arm/mach-imx/Kconfig
>> @@ -322,6 +322,7 @@ config MACH_IMX27_VISSTRIM_M10
>>       select IMX_HAVE_PLATFORM_IMX_SSI
>>       select IMX_HAVE_PLATFORM_IMX_UART
>>       select IMX_HAVE_PLATFORM_MX2_CAMERA
>> +     select IMX_HAVE_PLATFORM_MX2_EMMA
>>       select IMX_HAVE_PLATFORM_MXC_EHCI
>>       select IMX_HAVE_PLATFORM_MXC_MMC
>>       select LEDS_GPIO_REGISTER
>> diff --git a/arch/arm/mach-imx/devices-imx27.h b/arch/arm/mach-imx/devices-imx27.h
>> index 0482293..d8eb4a0 100644
>> --- a/arch/arm/mach-imx/devices-imx27.h
>> +++ b/arch/arm/mach-imx/devices-imx27.h
>> @@ -54,8 +54,10 @@ extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[];
>>  extern const struct imx_mx2_camera_data imx27_mx2_camera_data;
>>  #define imx27_add_mx2_camera(pdata)  \
>>       imx_add_mx2_camera(&imx27_mx2_camera_data, pdata)
>> +
>> +extern const struct imx_mx2_emma_data imx27_mx2_emmaprp_data;
>>  #define imx27_add_mx2_emmaprp()      \
>> -     imx_add_mx2_emmaprp(&imx27_mx2_camera_data)
>> +     imx_add_mx2_emmaprp(&imx27_mx2_emmaprp_data)
>>
>>  extern const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data;
>>  #define imx27_add_mxc_ehci_otg(pdata)        \
>> diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig
>> index 6b46cee..96feef7 100644
>> --- a/arch/arm/plat-mxc/devices/Kconfig
>> +++ b/arch/arm/plat-mxc/devices/Kconfig
>> @@ -56,6 +56,9 @@ config IMX_HAVE_PLATFORM_MX1_CAMERA
>>  config IMX_HAVE_PLATFORM_MX2_CAMERA
>>       bool
>>
>> +config IMX_HAVE_PLATFORM_MX2_EMMA
>> +     bool
>> +
>>  config IMX_HAVE_PLATFORM_MXC_EHCI
>>       bool
>>
>> diff --git a/arch/arm/plat-mxc/devices/Makefile b/arch/arm/plat-mxc/devices/Makefile
>> index 76f3195..7292c1f 100644
>> --- a/arch/arm/plat-mxc/devices/Makefile
>> +++ b/arch/arm/plat-mxc/devices/Makefile
>> @@ -28,3 +28,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o
>>  obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o
>>  obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) +=  platform-spi_imx.o
>>  obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) +=  platform-ahci-imx.o
>> +obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_EMMA) += platform-mx2-emma.o
>> diff --git a/arch/arm/plat-mxc/devices/platform-mx2-camera.c b/arch/arm/plat-mxc/devices/platform-mx2-camera.c
>> index 11eace9..11c688f 100644
>> --- a/arch/arm/plat-mxc/devices/platform-mx2-camera.c
>> +++ b/arch/arm/plat-mxc/devices/platform-mx2-camera.c
>> @@ -63,20 +63,3 @@ struct platform_device *__init imx_add_mx2_camera(
>>                       pdata, sizeof(*pdata), DMA_BIT_MASK(32));
>>  }
>>
>> -struct platform_device *__init imx_add_mx2_emmaprp(
>> -             const struct imx_mx2_camera_data *data)
>> -{
>> -     struct resource res[] = {
>> -             {
>> -                     .start = data->iobaseemmaprp,
>> -                     .end = data->iobaseemmaprp + data->iosizeemmaprp - 1,
>> -                     .flags = IORESOURCE_MEM,
>> -             }, {
>> -                     .start = data->irqemmaprp,
>> -                     .end = data->irqemmaprp,
>> -                     .flags = IORESOURCE_IRQ,
>> -             },
>> -     };
>> -     return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
>> -                     res, 2, NULL, 0, DMA_BIT_MASK(32));
>> -}
>> diff --git a/arch/arm/plat-mxc/devices/platform-mx2-emma.c b/arch/arm/plat-mxc/devices/platform-mx2-emma.c
>> new file mode 100644
>> index 0000000..a51749a
>> --- /dev/null
>> +++ b/arch/arm/plat-mxc/devices/platform-mx2-emma.c
>> @@ -0,0 +1,41 @@
>> +/*
>> + * Copyright (C) 2010 Pengutronix
>> + * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
>> + *
>> + * This program is free software; you can redistribute it and/or modify it under
>> + * the terms of the GNU General Public License version 2 as published by the
>> + * Free Software Foundation.
>> + */
>> +#include <mach/hardware.h>
>> +#include <mach/devices-common.h>
>> +
>> +#define imx_mx2_emmaprp_data_entry_single(soc)                               \
>> +     {                                                               \
>> +             .iobase = soc ## _EMMAPRP_BASE_ADDR,                    \
>> +             .iosize = SZ_32,                                        \
>> +             .irq = soc ## _INT_EMMAPRP,                             \
>> +     }
>> +
>> +#ifdef CONFIG_SOC_IMX27
>> +const struct imx_mx2_emma_data imx27_mx2_emmaprp_data __initconst =
>> +     imx_mx2_emmaprp_data_entry_single(MX27);
>> +#endif /* ifdef CONFIG_SOC_IMX27 */
>> +
>> +struct platform_device *__init imx_add_mx2_emmaprp(
>> +             const struct imx_mx2_emma_data *data)
>> +{
>> +     struct resource res[] = {
>> +             {
>> +                     .start = data->iobase,
>> +                     .end = data->iobase + data->iosize - 1,
>> +                     .flags = IORESOURCE_MEM,
>> +             }, {
>> +                     .start = data->irq,
>> +                     .end = data->irq,
>> +                     .flags = IORESOURCE_IRQ,
>> +             },
>> +     };
>> +     return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
>> +                     res, 2, NULL, 0, DMA_BIT_MASK(32));
>> +}
>> +
>> diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
>> index 762780c..2117072 100644
>> --- a/arch/arm/plat-mxc/include/mach/devices-common.h
>> +++ b/arch/arm/plat-mxc/include/mach/devices-common.h
>> @@ -229,8 +229,15 @@ struct imx_mx2_camera_data {
>>  struct platform_device *__init imx_add_mx2_camera(
>>               const struct imx_mx2_camera_data *data,
>>               const struct mx2_camera_platform_data *pdata);
>> +
>> +
>> +struct imx_mx2_emma_data {
>> +     resource_size_t iobase;
>> +     resource_size_t iosize;
>> +     resource_size_t irq;
>> +};
>>  struct platform_device *__init imx_add_mx2_emmaprp(
>> -             const struct imx_mx2_camera_data *data);
>> +             const struct imx_mx2_emma_data *data);
>>
>>  #include <mach/mxc_ehci.h>
>>  struct imx_mxc_ehci_data {
>> --
>> 1.7.7.4
Sascha Hauer - Sept. 11, 2012, 11:17 a.m.
On Tue, Sep 11, 2012 at 01:13:03PM +0200, javier Martin wrote:
> Hi,
> 
> On 11 September 2012 11:47, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > Hi Javier,
> >
> > Since you worked in this area recently, can I have your Ack on this?
> 
> Acked-by: Javier Martin <javier.martin@vista-silicon.com>

Thanks

> 
> > As a side note: Please be prepared that all this should be removed in
> > the not-so-far future. It would be good if you start converting your
> > boards to devicetree soon. You may be doing so internally already, I
> > don't know.
> 
> We made some tests regarding devicetree this summer but we found that
> there are some things missing yet:
> - pinctrl
> - soc-camera and video sensor
> 
> I don't know if people from Linaro is planning to deal with pinctrl
> for i.MX27 or not.

I don't think Linaro will do anything for the older i.MX like the
i.MX27. With soc-camera I'm optimistic that someone will come up
with patches soon.

Sascha
Gaëtan Carlier - Oct. 9, 2012, 1:01 p.m.
Hi Sascha,
On 09/11/2012 01:17 PM, Sascha Hauer wrote:
> On Tue, Sep 11, 2012 at 01:13:03PM +0200, javier Martin wrote:
>> Hi,
>>
>> On 11 September 2012 11:47, Sascha Hauer <s.hauer@pengutronix.de> wrote:
>>> Hi Javier,
>>>
>>> Since you worked in this area recently, can I have your Ack on this?
>>
>> Acked-by: Javier Martin <javier.martin@vista-silicon.com>
>
> Thanks
This patch is missing in next-20121008 and seems to be never committed. 
Is there any reason ?
>
>>
>>> As a side note: Please be prepared that all this should be removed in
>>> the not-so-far future. It would be good if you start converting your
>>> boards to devicetree soon. You may be doing so internally already, I
>>> don't know.
>>
>> We made some tests regarding devicetree this summer but we found that
>> there are some things missing yet:
>> - pinctrl
>> - soc-camera and video sensor
>>
>> I don't know if people from Linaro is planning to deal with pinctrl
>> for i.MX27 or not.
>
> I don't think Linaro will do anything for the older i.MX like the
> i.MX27. With soc-camera I'm optimistic that someone will come up
> with patches soon.
>
> Sascha
>
Thank you.
Best regards,
Gaëtan Carlier.
Sascha Hauer - Oct. 10, 2012, 8:34 a.m.
On Tue, Oct 09, 2012 at 03:01:35PM +0200, Gaëtan Carlier wrote:
> Hi Sascha,
> On 09/11/2012 01:17 PM, Sascha Hauer wrote:
> >On Tue, Sep 11, 2012 at 01:13:03PM +0200, javier Martin wrote:
> >>Hi,
> >>
> >>On 11 September 2012 11:47, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> >>>Hi Javier,
> >>>
> >>>Since you worked in this area recently, can I have your Ack on this?
> >>
> >>Acked-by: Javier Martin <javier.martin@vista-silicon.com>
> >
> >Thanks
> This patch is missing in next-20121008 and seems to be never
> committed. Is there any reason ?

Sorry, I simply missed to apply it :(

Did that now.

Sascha

> >
> >>
> >>>As a side note: Please be prepared that all this should be removed in
> >>>the not-so-far future. It would be good if you start converting your
> >>>boards to devicetree soon. You may be doing so internally already, I
> >>>don't know.
> >>
> >>We made some tests regarding devicetree this summer but we found that
> >>there are some things missing yet:
> >>- pinctrl
> >>- soc-camera and video sensor
> >>
> >>I don't know if people from Linaro is planning to deal with pinctrl
> >>for i.MX27 or not.
> >
> >I don't think Linaro will do anything for the older i.MX like the
> >i.MX27. With soc-camera I'm optimistic that someone will come up
> >with patches soon.
> >
> >Sascha
> >
> Thank you.
> Best regards,
> Gaëtan Carlier.
>

Patch

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index afd542a..c2984d7 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -322,6 +322,7 @@  config MACH_IMX27_VISSTRIM_M10
 	select IMX_HAVE_PLATFORM_IMX_SSI
 	select IMX_HAVE_PLATFORM_IMX_UART
 	select IMX_HAVE_PLATFORM_MX2_CAMERA
+	select IMX_HAVE_PLATFORM_MX2_EMMA
 	select IMX_HAVE_PLATFORM_MXC_EHCI
 	select IMX_HAVE_PLATFORM_MXC_MMC
 	select LEDS_GPIO_REGISTER
diff --git a/arch/arm/mach-imx/devices-imx27.h b/arch/arm/mach-imx/devices-imx27.h
index 0482293..d8eb4a0 100644
--- a/arch/arm/mach-imx/devices-imx27.h
+++ b/arch/arm/mach-imx/devices-imx27.h
@@ -54,8 +54,10 @@  extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[];
 extern const struct imx_mx2_camera_data imx27_mx2_camera_data;
 #define imx27_add_mx2_camera(pdata)	\
 	imx_add_mx2_camera(&imx27_mx2_camera_data, pdata)
+
+extern const struct imx_mx2_emma_data imx27_mx2_emmaprp_data;
 #define imx27_add_mx2_emmaprp()	\
-	imx_add_mx2_emmaprp(&imx27_mx2_camera_data)
+	imx_add_mx2_emmaprp(&imx27_mx2_emmaprp_data)
 
 extern const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data;
 #define imx27_add_mxc_ehci_otg(pdata)	\
diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig
index 6b46cee..96feef7 100644
--- a/arch/arm/plat-mxc/devices/Kconfig
+++ b/arch/arm/plat-mxc/devices/Kconfig
@@ -56,6 +56,9 @@  config IMX_HAVE_PLATFORM_MX1_CAMERA
 config IMX_HAVE_PLATFORM_MX2_CAMERA
 	bool
 
+config IMX_HAVE_PLATFORM_MX2_EMMA
+	bool
+
 config IMX_HAVE_PLATFORM_MXC_EHCI
 	bool
 
diff --git a/arch/arm/plat-mxc/devices/Makefile b/arch/arm/plat-mxc/devices/Makefile
index 76f3195..7292c1f 100644
--- a/arch/arm/plat-mxc/devices/Makefile
+++ b/arch/arm/plat-mxc/devices/Makefile
@@ -28,3 +28,4 @@  obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) +=  platform-spi_imx.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) +=  platform-ahci-imx.o
+obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_EMMA) += platform-mx2-emma.o
diff --git a/arch/arm/plat-mxc/devices/platform-mx2-camera.c b/arch/arm/plat-mxc/devices/platform-mx2-camera.c
index 11eace9..11c688f 100644
--- a/arch/arm/plat-mxc/devices/platform-mx2-camera.c
+++ b/arch/arm/plat-mxc/devices/platform-mx2-camera.c
@@ -63,20 +63,3 @@  struct platform_device *__init imx_add_mx2_camera(
 			pdata, sizeof(*pdata), DMA_BIT_MASK(32));
 }
 
-struct platform_device *__init imx_add_mx2_emmaprp(
-		const struct imx_mx2_camera_data *data)
-{
-	struct resource res[] = {
-		{
-			.start = data->iobaseemmaprp,
-			.end = data->iobaseemmaprp + data->iosizeemmaprp - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irqemmaprp,
-			.end = data->irqemmaprp,
-			.flags = IORESOURCE_IRQ,
-		},
-	};
-	return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
-			res, 2, NULL, 0, DMA_BIT_MASK(32));
-}
diff --git a/arch/arm/plat-mxc/devices/platform-mx2-emma.c b/arch/arm/plat-mxc/devices/platform-mx2-emma.c
new file mode 100644
index 0000000..a51749a
--- /dev/null
+++ b/arch/arm/plat-mxc/devices/platform-mx2-emma.c
@@ -0,0 +1,41 @@ 
+/*
+ * Copyright (C) 2010 Pengutronix
+ * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License version 2 as published by the
+ * Free Software Foundation.
+ */
+#include <mach/hardware.h>
+#include <mach/devices-common.h>
+
+#define imx_mx2_emmaprp_data_entry_single(soc)				\
+	{								\
+		.iobase = soc ## _EMMAPRP_BASE_ADDR,			\
+		.iosize = SZ_32,					\
+		.irq = soc ## _INT_EMMAPRP,				\
+	}
+
+#ifdef CONFIG_SOC_IMX27
+const struct imx_mx2_emma_data imx27_mx2_emmaprp_data __initconst =
+	imx_mx2_emmaprp_data_entry_single(MX27);
+#endif /* ifdef CONFIG_SOC_IMX27 */
+
+struct platform_device *__init imx_add_mx2_emmaprp(
+		const struct imx_mx2_emma_data *data)
+{
+	struct resource res[] = {
+		{
+			.start = data->iobase,
+			.end = data->iobase + data->iosize - 1,
+			.flags = IORESOURCE_MEM,
+		}, {
+			.start = data->irq,
+			.end = data->irq,
+			.flags = IORESOURCE_IRQ,
+		},
+	};
+	return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
+			res, 2, NULL, 0, DMA_BIT_MASK(32));
+}
+
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
index 762780c..2117072 100644
--- a/arch/arm/plat-mxc/include/mach/devices-common.h
+++ b/arch/arm/plat-mxc/include/mach/devices-common.h
@@ -229,8 +229,15 @@  struct imx_mx2_camera_data {
 struct platform_device *__init imx_add_mx2_camera(
 		const struct imx_mx2_camera_data *data,
 		const struct mx2_camera_platform_data *pdata);
+
+
+struct imx_mx2_emma_data {
+	resource_size_t iobase;
+	resource_size_t iosize;
+	resource_size_t irq;
+};
 struct platform_device *__init imx_add_mx2_emmaprp(
-		const struct imx_mx2_camera_data *data);
+		const struct imx_mx2_emma_data *data);
 
 #include <mach/mxc_ehci.h>
 struct imx_mxc_ehci_data {