diff options
| author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2011-03-03 15:32:02 -0500 |
|---|---|---|
| committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-05-19 07:11:20 -0400 |
| commit | afa77ef30ead4865ce2c0c1c55054d45521ce1c7 (patch) | |
| tree | 87a455605b7d0ae9685e71ae7fd48a1a0d87d379 | |
| parent | 031e912741746e4350204bb0436590ca0e993a7d (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>
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 | ||
| 7 | obj-y := mm.o devices.o cpu.o | 7 | obj-y := mm.o cpu.o |
| 8 | obj-$(CONFIG_SOC_IMX31) += clock-imx31.o iomux-imx31.o ehci-imx31.o | 8 | obj-$(CONFIG_SOC_IMX31) += clock-imx31.o iomux-imx31.o ehci-imx31.o |
| 9 | obj-$(CONFIG_SOC_IMX35) += clock-imx35.o ehci-imx35.o | 9 | obj-$(CONFIG_SOC_IMX35) += clock-imx35.o ehci-imx35.o |
| 10 | obj-$(CONFIG_MACH_MX31ADS) += mach-mx31ads.o | 10 | obj-$(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 | ||
| 44 | extern 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 | |||
| 44 | extern const struct imx_mxc_ehci_data imx31_mxc_ehci_otg_data; | 52 | extern 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 | ||
| 52 | extern 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 | |||
| 52 | extern const struct imx_mxc_ehci_data imx35_mxc_ehci_otg_data; | 60 | extern 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 |
