]> Pileus Git - ~andy/linux/commitdiff
ARM : i.MX27 : split code for allocation of ressources of camera and eMMA
authorGaëtan Carlier <gcembed@gmail.com>
Wed, 5 Sep 2012 11:06:15 +0000 (13:06 +0200)
committerSascha Hauer <s.hauer@pengutronix.de>
Fri, 16 Nov 2012 15:21:48 +0000 (16:21 +0100)
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>
Acked-by: Javier Martin <javier.martin@vista-silicon.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/mach-imx/Kconfig
arch/arm/mach-imx/devices-imx27.h
arch/arm/mach-imx/devices/Kconfig
arch/arm/mach-imx/devices/Makefile
arch/arm/mach-imx/devices/devices-common.h
arch/arm/mach-imx/devices/platform-mx2-camera.c
arch/arm/plat-mxc/devices/platform-mx2-emma.c [new file with mode: 0644]

index f1bf610e29005c4ca6c87b038bb59ad061446de8..01a2597314d9ab1a71cbe99bf44316d964cfc976 100644 (file)
@@ -394,6 +394,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
index 8a1ad7972d4c0843a096dcf7d21810737b16075b..130962519751ea0e4c4ad8aa752cc818c8487602 100644 (file)
@@ -53,8 +53,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)  \
index a35d9841f494ee4e5f5de92a52664e438b6ba7cd..9a8f1ca7bcb1870245c143b75ea874815b2a3d50 100644 (file)
@@ -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
 
index 2abe2a5144d0365312af9a6a9431ec9fd141a265..6acf37e0c1191aa2b6f44960971e0f445e41dee8 100644 (file)
@@ -30,3 +30,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
index e4b790b9e2aaaea5d708371354ec83d9adc28844..6277baf1b7be74496c4f000867bc9a899d7a7adb 100644 (file)
@@ -232,8 +232,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 <linux/platform_data/usb-ehci-mxc.h>
 struct imx_mxc_ehci_data {
index f4910160346b4fc89e5793a650f6717afcc4b6e3..b53e1f348f518f5de7ec9aa8745a7299d5c26df4 100644 (file)
@@ -65,20 +65,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 (file)
index 0000000..508404d
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * 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));
+}