aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2011-03-03 15:32:02 -0500
committerSascha Hauer <s.hauer@pengutronix.de>2011-05-19 07:11:20 -0400
commitafa77ef30ead4865ce2c0c1c55054d45521ce1c7 (patch)
tree87a455605b7d0ae9685e71ae7fd48a1a0d87d379
parent031e912741746e4350204bb0436590ca0e993a7d (diff)
ARM: mx3: dynamically allocate "ipu-core" devices
... together with the related devices "mx3_camera" and "mx3_sdc_fb". "mx3_camera" doesn't fit the scheme of the other devices that just are allocated and registered in a single function because it needs additional care to get some dmaable memory. So currently imx31_alloc_mx3_camera duplicates most of imx_add_platform_device_dmamask, but I'm not sure it's worth to split the latter to be able to reuse more code. This gets rid of mach-mx3/devices.[ch] and so several files need to be adapted not to #include devices.h anymore. LAKML-Reference: 1299271882-2130-5-git-send-email-u.kleine-koenig@pengutronix.de Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/mach-mx3/Kconfig8
-rw-r--r--arch/arm/mach-mx3/Makefile2
-rw-r--r--arch/arm/mach-mx3/devices-imx31.h8
-rw-r--r--arch/arm/mach-mx3/devices-imx35.h8
-rw-r--r--arch/arm/mach-mx3/devices.c96
-rw-r--r--arch/arm/mach-mx3/devices.h3
-rw-r--r--arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c12
-rw-r--r--arch/arm/mach-mx3/mach-armadillo5x0.c12
-rw-r--r--arch/arm/mach-mx3/mach-cpuimx35.c1
-rw-r--r--arch/arm/mach-mx3/mach-kzm_arm11_01.c1
-rw-r--r--arch/arm/mach-mx3/mach-mx31_3ds.c49
-rw-r--r--arch/arm/mach-mx3/mach-mx31ads.c1
-rw-r--r--arch/arm/mach-mx3/mach-mx31lilly.c1
-rw-r--r--arch/arm/mach-mx3/mach-mx31lite.c1
-rw-r--r--arch/arm/mach-mx3/mach-mx31moboard.c39
-rw-r--r--arch/arm/mach-mx3/mach-mx35_3ds.c1
-rw-r--r--arch/arm/mach-mx3/mach-pcm037.c37
-rw-r--r--arch/arm/mach-mx3/mach-pcm037_eet.c1
-rw-r--r--arch/arm/mach-mx3/mach-pcm043.c12
-rw-r--r--arch/arm/mach-mx3/mach-qong.c1
-rw-r--r--arch/arm/mach-mx3/mach-vpr200.c12
-rw-r--r--arch/arm/mach-mx3/mx31lilly-db.c10
-rw-r--r--arch/arm/mach-mx3/mx31lite-db.c1
-rw-r--r--arch/arm/mach-mx3/mx31moboard-devboard.c1
-rw-r--r--arch/arm/mach-mx3/mx31moboard-marxbot.c1
-rw-r--r--arch/arm/mach-mx3/mx31moboard-smartbot.c1
-rw-r--r--arch/arm/plat-mxc/devices/Kconfig3
-rw-r--r--arch/arm/plat-mxc/devices/Makefile1
-rw-r--r--arch/arm/plat-mxc/devices/platform-ipu-core.c129
-rw-r--r--arch/arm/plat-mxc/include/mach/devices-common.h18
30 files changed, 263 insertions, 208 deletions
diff --git a/arch/arm/mach-mx3/Kconfig b/arch/arm/mach-mx3/Kconfig
index ae23211dbadc..cb7d4a3a092a 100644
--- a/arch/arm/mach-mx3/Kconfig
+++ b/arch/arm/mach-mx3/Kconfig
@@ -56,6 +56,7 @@ config MACH_PCM037
56 select IMX_HAVE_PLATFORM_IMX2_WDT 56 select IMX_HAVE_PLATFORM_IMX2_WDT
57 select IMX_HAVE_PLATFORM_IMX_I2C 57 select IMX_HAVE_PLATFORM_IMX_I2C
58 select IMX_HAVE_PLATFORM_IMX_UART 58 select IMX_HAVE_PLATFORM_IMX_UART
59 select IMX_HAVE_PLATFORM_IPU_CORE
59 select IMX_HAVE_PLATFORM_MXC_EHCI 60 select IMX_HAVE_PLATFORM_MXC_EHCI
60 select IMX_HAVE_PLATFORM_MXC_MMC 61 select IMX_HAVE_PLATFORM_MXC_MMC
61 select IMX_HAVE_PLATFORM_MXC_NAND 62 select IMX_HAVE_PLATFORM_MXC_NAND
@@ -99,6 +100,7 @@ config MACH_MX31_3DS
99 select IMX_HAVE_PLATFORM_IMX_I2C 100 select IMX_HAVE_PLATFORM_IMX_I2C
100 select IMX_HAVE_PLATFORM_IMX_KEYPAD 101 select IMX_HAVE_PLATFORM_IMX_KEYPAD
101 select IMX_HAVE_PLATFORM_IMX_UART 102 select IMX_HAVE_PLATFORM_IMX_UART
103 select IMX_HAVE_PLATFORM_IPU_CORE
102 select IMX_HAVE_PLATFORM_MXC_EHCI 104 select IMX_HAVE_PLATFORM_MXC_EHCI
103 select IMX_HAVE_PLATFORM_MXC_NAND 105 select IMX_HAVE_PLATFORM_MXC_NAND
104 select IMX_HAVE_PLATFORM_SPI_IMX 106 select IMX_HAVE_PLATFORM_SPI_IMX
@@ -122,6 +124,7 @@ config MACH_MX31MOBOARD
122 select IMX_HAVE_PLATFORM_FSL_USB2_UDC 124 select IMX_HAVE_PLATFORM_FSL_USB2_UDC
123 select IMX_HAVE_PLATFORM_IMX_I2C 125 select IMX_HAVE_PLATFORM_IMX_I2C
124 select IMX_HAVE_PLATFORM_IMX_UART 126 select IMX_HAVE_PLATFORM_IMX_UART
127 select IMX_HAVE_PLATFORM_IPU_CORE
125 select IMX_HAVE_PLATFORM_MXC_EHCI 128 select IMX_HAVE_PLATFORM_MXC_EHCI
126 select IMX_HAVE_PLATFORM_MXC_MMC 129 select IMX_HAVE_PLATFORM_MXC_MMC
127 select IMX_HAVE_PLATFORM_SPI_IMX 130 select IMX_HAVE_PLATFORM_SPI_IMX
@@ -134,6 +137,7 @@ config MACH_MX31LILLY
134 bool "Support MX31 LILLY-1131 platforms (INCO startec)" 137 bool "Support MX31 LILLY-1131 platforms (INCO startec)"
135 select SOC_IMX31 138 select SOC_IMX31
136 select IMX_HAVE_PLATFORM_IMX_UART 139 select IMX_HAVE_PLATFORM_IMX_UART
140 select IMX_HAVE_PLATFORM_IPU_CORE
137 select IMX_HAVE_PLATFORM_MXC_EHCI 141 select IMX_HAVE_PLATFORM_MXC_EHCI
138 select IMX_HAVE_PLATFORM_MXC_MMC 142 select IMX_HAVE_PLATFORM_MXC_MMC
139 select IMX_HAVE_PLATFORM_SPI_IMX 143 select IMX_HAVE_PLATFORM_SPI_IMX
@@ -159,6 +163,7 @@ config MACH_PCM043
159 select IMX_HAVE_PLATFORM_IMX_I2C 163 select IMX_HAVE_PLATFORM_IMX_I2C
160 select IMX_HAVE_PLATFORM_IMX_SSI 164 select IMX_HAVE_PLATFORM_IMX_SSI
161 select IMX_HAVE_PLATFORM_IMX_UART 165 select IMX_HAVE_PLATFORM_IMX_UART
166 select IMX_HAVE_PLATFORM_IPU_CORE
162 select IMX_HAVE_PLATFORM_MXC_EHCI 167 select IMX_HAVE_PLATFORM_MXC_EHCI
163 select IMX_HAVE_PLATFORM_MXC_NAND 168 select IMX_HAVE_PLATFORM_MXC_NAND
164 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 169 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
@@ -173,6 +178,7 @@ config MACH_ARMADILLO5X0
173 select IMX_HAVE_PLATFORM_GPIO_KEYS 178 select IMX_HAVE_PLATFORM_GPIO_KEYS
174 select IMX_HAVE_PLATFORM_IMX_I2C 179 select IMX_HAVE_PLATFORM_IMX_I2C
175 select IMX_HAVE_PLATFORM_IMX_UART 180 select IMX_HAVE_PLATFORM_IMX_UART
181 select IMX_HAVE_PLATFORM_IPU_CORE
176 select IMX_HAVE_PLATFORM_MXC_EHCI 182 select IMX_HAVE_PLATFORM_MXC_EHCI
177 select IMX_HAVE_PLATFORM_MXC_MMC 183 select IMX_HAVE_PLATFORM_MXC_MMC
178 select IMX_HAVE_PLATFORM_MXC_NAND 184 select IMX_HAVE_PLATFORM_MXC_NAND
@@ -238,6 +244,7 @@ config MACH_EUKREA_MBIMXSD35_BASEBOARD
238 bool "Eukrea MBIMXSD development board" 244 bool "Eukrea MBIMXSD development board"
239 select IMX_HAVE_PLATFORM_GPIO_KEYS 245 select IMX_HAVE_PLATFORM_GPIO_KEYS
240 select IMX_HAVE_PLATFORM_IMX_SSI 246 select IMX_HAVE_PLATFORM_IMX_SSI
247 select IMX_HAVE_PLATFORM_IPU_CORE
241 help 248 help
242 This adds board specific devices that can be found on Eukrea's 249 This adds board specific devices that can be found on Eukrea's
243 MBIMXSD evaluation board. 250 MBIMXSD evaluation board.
@@ -252,6 +259,7 @@ config MACH_VPR200
252 select IMX_HAVE_PLATFORM_IMX2_WDT 259 select IMX_HAVE_PLATFORM_IMX2_WDT
253 select IMX_HAVE_PLATFORM_IMX_UART 260 select IMX_HAVE_PLATFORM_IMX_UART
254 select IMX_HAVE_PLATFORM_IMX_I2C 261 select IMX_HAVE_PLATFORM_IMX_I2C
262 select IMX_HAVE_PLATFORM_IPU_CORE
255 select IMX_HAVE_PLATFORM_MXC_EHCI 263 select IMX_HAVE_PLATFORM_MXC_EHCI
256 select IMX_HAVE_PLATFORM_MXC_NAND 264 select IMX_HAVE_PLATFORM_MXC_NAND
257 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX 265 select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
diff --git a/arch/arm/mach-mx3/Makefile b/arch/arm/mach-mx3/Makefile
index a54faf2cf5fa..15a7ff826ce7 100644
--- a/arch/arm/mach-mx3/Makefile
+++ b/arch/arm/mach-mx3/Makefile
@@ -4,7 +4,7 @@
4 4
5# Object file lists. 5# Object file lists.
6 6
7obj-y := mm.o devices.o cpu.o 7obj-y := mm.o cpu.o
8obj-$(CONFIG_SOC_IMX31) += clock-imx31.o iomux-imx31.o ehci-imx31.o 8obj-$(CONFIG_SOC_IMX31) += clock-imx31.o iomux-imx31.o ehci-imx31.o
9obj-$(CONFIG_SOC_IMX35) += clock-imx35.o ehci-imx35.o 9obj-$(CONFIG_SOC_IMX35) += clock-imx35.o ehci-imx35.o
10obj-$(CONFIG_MACH_MX31ADS) += mach-mx31ads.o 10obj-$(CONFIG_MACH_MX31ADS) += mach-mx31ads.o
diff --git a/arch/arm/mach-mx3/devices-imx31.h b/arch/arm/mach-mx3/devices-imx31.h
index 3059b3e33dec..dbe940d9c53a 100644
--- a/arch/arm/mach-mx3/devices-imx31.h
+++ b/arch/arm/mach-mx3/devices-imx31.h
@@ -41,6 +41,14 @@ extern const struct imx_imx_uart_1irq_data imx31_imx_uart_data[];
41#define imx31_add_imx_uart3(pdata) imx31_add_imx_uart(3, pdata) 41#define imx31_add_imx_uart3(pdata) imx31_add_imx_uart(3, pdata)
42#define imx31_add_imx_uart4(pdata) imx31_add_imx_uart(4, pdata) 42#define imx31_add_imx_uart4(pdata) imx31_add_imx_uart(4, pdata)
43 43
44extern const struct imx_ipu_core_data imx31_ipu_core_data;
45#define imx31_add_ipu_core(pdata) \
46 imx_add_ipu_core(&imx31_ipu_core_data, pdata)
47#define imx31_alloc_mx3_camera(pdata) \
48 imx_alloc_mx3_camera(&imx31_ipu_core_data, pdata)
49#define imx31_add_mx3_sdc_fb(pdata) \
50 imx_add_mx3_sdc_fb(&imx31_ipu_core_data, pdata)
51
44extern const struct imx_mxc_ehci_data imx31_mxc_ehci_otg_data; 52extern const struct imx_mxc_ehci_data imx31_mxc_ehci_otg_data;
45#define imx31_add_mxc_ehci_otg(pdata) \ 53#define imx31_add_mxc_ehci_otg(pdata) \
46 imx_add_mxc_ehci(&imx31_mxc_ehci_otg_data, pdata) 54 imx_add_mxc_ehci(&imx31_mxc_ehci_otg_data, pdata)
diff --git a/arch/arm/mach-mx3/devices-imx35.h b/arch/arm/mach-mx3/devices-imx35.h
index 35826656e599..234cbd3c18af 100644
--- a/arch/arm/mach-mx3/devices-imx35.h
+++ b/arch/arm/mach-mx3/devices-imx35.h
@@ -49,6 +49,14 @@ extern const struct imx_imx_uart_1irq_data imx35_imx_uart_data[];
49#define imx35_add_imx_uart1(pdata) imx35_add_imx_uart(1, pdata) 49#define imx35_add_imx_uart1(pdata) imx35_add_imx_uart(1, pdata)
50#define imx35_add_imx_uart2(pdata) imx35_add_imx_uart(2, pdata) 50#define imx35_add_imx_uart2(pdata) imx35_add_imx_uart(2, pdata)
51 51
52extern const struct imx_ipu_core_data imx35_ipu_core_data;
53#define imx35_add_ipu_core(pdata) \
54 imx_add_ipu_core(&imx35_ipu_core_data, pdata)
55#define imx35_alloc_mx3_camera(pdata) \
56 imx_alloc_mx3_camera(&imx35_ipu_core_data, pdata)
57#define imx35_add_mx3_sdc_fb(pdata) \
58 imx_add_mx3_sdc_fb(&imx35_ipu_core_data, pdata)
59
52extern const struct imx_mxc_ehci_data imx35_mxc_ehci_otg_data; 60extern const struct imx_mxc_ehci_data imx35_mxc_ehci_otg_data;
53#define imx35_add_mxc_ehci_otg(pdata) \ 61#define imx35_add_mxc_ehci_otg(pdata) \
54 imx_add_mxc_ehci(&imx35_mxc_ehci_otg_data, pdata) 62 imx_add_mxc_ehci(&imx35_mxc_ehci_otg_data, pdat