diff options
Diffstat (limited to 'arch/arm/mach-omap1/devices.c')
| -rw-r--r-- | arch/arm/mach-omap1/devices.c | 43 | 
1 files changed, 43 insertions, 0 deletions
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c index a919366a90d..63d68cf908a 100644 --- a/arch/arm/mach-omap1/devices.c +++ b/arch/arm/mach-omap1/devices.c @@ -9,6 +9,7 @@   * (at your option) any later version.   */ +#include <linux/dma-mapping.h>  #include <linux/module.h>  #include <linux/kernel.h>  #include <linux/init.h> @@ -191,6 +192,48 @@ static inline void omap_init_spi100k(void)  }  #endif + +#define OMAP1_CAMERA_BASE	0xfffb6800 +#define OMAP1_CAMERA_IOSIZE	0x1c + +static struct resource omap1_camera_resources[] = { +	[0] = { +		.start	= OMAP1_CAMERA_BASE, +		.end	= OMAP1_CAMERA_BASE + OMAP1_CAMERA_IOSIZE - 1, +		.flags	= IORESOURCE_MEM, +	}, +	[1] = { +		.start	= INT_CAMERA, +		.flags	= IORESOURCE_IRQ, +	}, +}; + +static u64 omap1_camera_dma_mask = DMA_BIT_MASK(32); + +static struct platform_device omap1_camera_device = { +	.name		= "omap1-camera", +	.id		= 0, /* This is used to put cameras on this interface */ +	.dev		= { +		.dma_mask		= &omap1_camera_dma_mask, +		.coherent_dma_mask	= DMA_BIT_MASK(32), +	}, +	.num_resources	= ARRAY_SIZE(omap1_camera_resources), +	.resource	= omap1_camera_resources, +}; + +void __init omap1_camera_init(void *info) +{ +	struct platform_device *dev = &omap1_camera_device; +	int ret; + +	dev->dev.platform_data = info; + +	ret = platform_device_register(dev); +	if (ret) +		dev_err(&dev->dev, "unable to register device: %d\n", ret); +} + +  /*-------------------------------------------------------------------------*/  static inline void omap_init_sti(void) {}  |