diff options
author | Gaëtan Carlier <gcembed@gmail.com> | 2012-09-05 07:06:15 -0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-11-16 10:21:48 -0500 |
commit | 3ab3a350200c14350220fffde893f3afb640fd25 (patch) | |
tree | 8c8e537f4159ebafe97dc5977b7efd90015eb6f2 | |
parent | 89a4150331bc07014256714678ce8e9b238fc145 (diff) |
ARM : i.MX27 : split code for allocation of ressources of camera and eMMA
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>
-rw-r--r-- | arch/arm/mach-imx/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/devices-imx27.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-imx/devices/Kconfig | 3 | ||||
-rw-r--r-- | arch/arm/mach-imx/devices/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/devices/devices-common.h | 9 | ||||
-rw-r--r-- | arch/arm/mach-imx/devices/platform-mx2-camera.c | 17 | ||||
-rw-r--r-- | arch/arm/plat-mxc/devices/platform-mx2-emma.c | 40 |
7 files changed, 56 insertions, 19 deletions
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index f1bf610e290..01a2597314d 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -394,6 +394,7 @@ config MACH_IMX27_VISSTRIM_M10 | |||
394 | select IMX_HAVE_PLATFORM_IMX_SSI | 394 | select IMX_HAVE_PLATFORM_IMX_SSI |
395 | select IMX_HAVE_PLATFORM_IMX_UART | 395 | select IMX_HAVE_PLATFORM_IMX_UART |
396 | select IMX_HAVE_PLATFORM_MX2_CAMERA | 396 | select IMX_HAVE_PLATFORM_MX2_CAMERA |
397 | select IMX_HAVE_PLATFORM_MX2_EMMA | ||
397 | select IMX_HAVE_PLATFORM_MXC_EHCI | 398 | select IMX_HAVE_PLATFORM_MXC_EHCI |
398 | select IMX_HAVE_PLATFORM_MXC_MMC | 399 | select IMX_HAVE_PLATFORM_MXC_MMC |
399 | select LEDS_GPIO_REGISTER | 400 | select LEDS_GPIO_REGISTER |
diff --git a/arch/arm/mach-imx/devices-imx27.h b/arch/arm/mach-imx/devices-imx27.h index 8a1ad7972d4..13096251975 100644 --- a/arch/arm/mach-imx/devices-imx27.h +++ b/arch/arm/mach-imx/devices-imx27.h | |||
@@ -53,8 +53,10 @@ extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[]; | |||
53 | extern const struct imx_mx2_camera_data imx27_mx2_camera_data; | 53 | extern const struct imx_mx2_camera_data imx27_mx2_camera_data; |
54 | #define imx27_add_mx2_camera(pdata) \ | 54 | #define imx27_add_mx2_camera(pdata) \ |
55 | imx_add_mx2_camera(&imx27_mx2_camera_data, pdata) | 55 | imx_add_mx2_camera(&imx27_mx2_camera_data, pdata) |
56 | |||
57 | extern const struct imx_mx2_emma_data imx27_mx2_emmaprp_data; | ||
56 | #define imx27_add_mx2_emmaprp() \ | 58 | #define imx27_add_mx2_emmaprp() \ |
57 | imx_add_mx2_emmaprp(&imx27_mx2_camera_data) | 59 | imx_add_mx2_emmaprp(&imx27_mx2_emmaprp_data) |
58 | 60 | ||
59 | extern const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data; | 61 | extern const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data; |
60 | #define imx27_add_mxc_ehci_otg(pdata) \ | 62 | #define imx27_add_mxc_ehci_otg(pdata) \ |
diff --git a/arch/arm/mach-imx/devices/Kconfig b/arch/arm/mach-imx/devices/Kconfig index a35d9841f49..9a8f1ca7bcb 100644 --- a/arch/arm/mach-imx/devices/Kconfig +++ b/arch/arm/mach-imx/devices/Kconfig | |||
@@ -56,6 +56,9 @@ config IMX_HAVE_PLATFORM_MX1_CAMERA | |||
56 | config IMX_HAVE_PLATFORM_MX2_CAMERA | 56 | config IMX_HAVE_PLATFORM_MX2_CAMERA |
57 | bool | 57 | bool |
58 | 58 | ||
59 | config IMX_HAVE_PLATFORM_MX2_EMMA | ||
60 | bool | ||
61 | |||
59 | config IMX_HAVE_PLATFORM_MXC_EHCI | 62 | config IMX_HAVE_PLATFORM_MXC_EHCI |
60 | bool | 63 | bool |
61 | 64 | ||
diff --git a/arch/arm/mach-imx/devices/Makefile b/arch/arm/mach-imx/devices/Makefile index 2abe2a5144d..6acf37e0c11 100644 --- a/arch/arm/mach-imx/devices/Makefile +++ b/arch/arm/mach-imx/devices/Makefile | |||
@@ -30,3 +30,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o | |||
30 | obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o | 30 | obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o |
31 | obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o | 31 | obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o |
32 | obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) += platform-ahci-imx.o | 32 | obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) += platform-ahci-imx.o |
33 | obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_EMMA) += platform-mx2-emma.o | ||
diff --git a/arch/arm/mach-imx/devices/devices-common.h b/arch/arm/mach-imx/devices/devices-common.h index e4b790b9e2a..6277baf1b7b 100644 --- a/arch/arm/mach-imx/devices/devices-common.h +++ b/arch/arm/mach-imx/devices/devices-common.h | |||
@@ -232,8 +232,15 @@ struct imx_mx2_camera_data { | |||
232 | struct platform_device *__init imx_add_mx2_camera( | 232 | struct platform_device *__init imx_add_mx2_camera( |
233 | const struct imx_mx2_camera_data *data, | 233 | const struct imx_mx2_camera_data *data, |
234 | const struct mx2_camera_platform_data *pdata); | 234 | const struct mx2_camera_platform_data *pdata); |
235 | |||
236 | |||
237 | struct imx_mx2_emma_data { | ||
238 | resource_size_t iobase; | ||
239 | resource_size_t iosize; | ||
240 | resource_size_t irq; | ||
241 | }; | ||
235 | struct platform_device *__init imx_add_mx2_emmaprp( | 242 | struct platform_device *__init imx_add_mx2_emmaprp( |
236 | const struct imx_mx2_camera_data *data); | 243 | const struct imx_mx2_emma_data *data); |
237 | 244 | ||
238 | #include <linux/platform_data/usb-ehci-mxc.h> | 245 | #include <linux/platform_data/usb-ehci-mxc.h> |
239 | struct imx_mxc_ehci_data { | 246 | struct imx_mxc_ehci_data { |
diff --git a/arch/arm/mach-imx/devices/platform-mx2-camera.c b/arch/arm/mach-imx/devices/platform-mx2-camera.c index f4910160346..b53e1f348f5 100644 --- a/arch/arm/mach-imx/devices/platform-mx2-camera.c +++ b/arch/arm/mach-imx/devices/platform-mx2-camera.c | |||
@@ -65,20 +65,3 @@ struct platform_device *__init imx_add_mx2_camera( | |||
65 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | 65 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); |
66 | } | 66 | } |
67 | 67 | ||
68 | struct platform_device *__init imx_add_mx2_emmaprp( | ||
69 | const struct imx_mx2_camera_data *data) | ||
70 | { | ||
71 | struct resource res[] = { | ||
72 | { | ||
73 | .start = data->iobaseemmaprp, | ||
74 | .end = data->iobaseemmaprp + data->iosizeemmaprp - 1, | ||
75 | .flags = IORESOURCE_MEM, | ||
76 | }, { | ||
77 | .start = data->irqemmaprp, | ||
78 | .end = data->irqemmaprp, | ||
79 | .flags = IORESOURCE_IRQ, | ||
80 | }, | ||
81 | }; | ||
82 | return imx_add_platform_device_dmamask("m2m-emmaprp", 0, | ||
83 | res, 2, NULL, 0, DMA_BIT_MASK(32)); | ||
84 | } | ||
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 00000000000..508404ddd4e --- /dev/null +++ b/arch/arm/plat-mxc/devices/platform-mx2-emma.c | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <mach/hardware.h> | ||
10 | #include <mach/devices-common.h> | ||
11 | |||
12 | #define imx_mx2_emmaprp_data_entry_single(soc) \ | ||
13 | { \ | ||
14 | .iobase = soc ## _EMMAPRP_BASE_ADDR, \ | ||
15 | .iosize = SZ_32, \ | ||
16 | .irq = soc ## _INT_EMMAPRP, \ | ||
17 | } | ||
18 | |||
19 | #ifdef CONFIG_SOC_IMX27 | ||
20 | const struct imx_mx2_emma_data imx27_mx2_emmaprp_data __initconst = | ||
21 | imx_mx2_emmaprp_data_entry_single(MX27); | ||
22 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
23 | |||
24 | struct platform_device *__init imx_add_mx2_emmaprp( | ||
25 | const struct imx_mx2_emma_data *data) | ||
26 | { | ||
27 | struct resource res[] = { | ||
28 | { | ||
29 | .start = data->iobase, | ||
30 | .end = data->iobase + data->iosize - 1, | ||
31 | .flags = IORESOURCE_MEM, | ||
32 | }, { | ||
33 | .start = data->irq, | ||
34 | .end = data->irq, | ||
35 | .flags = IORESOURCE_IRQ, | ||
36 | }, | ||
37 | }; | ||
38 | return imx_add_platform_device_dmamask("m2m-emmaprp", 0, | ||
39 | res, 2, NULL, 0, DMA_BIT_MASK(32)); | ||
40 | } | ||