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>
This commit is contained in:
parent
89a4150331
commit
3ab3a35020
7 changed files with 56 additions and 19 deletions
|
@ -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
|
||||
|
|
|
@ -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) \
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
40
arch/arm/plat-mxc/devices/platform-mx2-emma.c
Normal file
40
arch/arm/plat-mxc/devices/platform-mx2-emma.c
Normal file
|
@ -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));
|
||||
}
|
Loading…
Reference in a new issue