summaryrefslogtreecommitdiff
path: root/linux/arch/arm/mach-pxa
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2008-02-05 17:46:25 +0000
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-02-05 17:46:25 +0000
commitc6568fd43197352eb4c82e1271717a835af9fc27 (patch)
treeaf22371fa04ff55ec5f42e7b6e2f15317e7309b2 /linux/arch/arm/mach-pxa
parent5fa2b467c8f690078304940a302769c272842893 (diff)
downloadmediapointer-dvb-s2-c6568fd43197352eb4c82e1271717a835af9fc27.tar.gz
mediapointer-dvb-s2-c6568fd43197352eb4c82e1271717a835af9fc27.tar.bz2
V4L2 soc_camera driver for PXA27x processors
From: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de> This patch adds a driver for the Quick Capture Interface on the PXA270. It is based on the original driver from Intel, but has been re-worked multiple times since then, now for the first time it supports the V4L2 API. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/arch/arm/mach-pxa')
-rw-r--r--linux/arch/arm/mach-pxa/devices.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/linux/arch/arm/mach-pxa/devices.c b/linux/arch/arm/mach-pxa/devices.c
index bfccb80ac..3838aabdf 100644
--- a/linux/arch/arm/mach-pxa/devices.c
+++ b/linux/arch/arm/mach-pxa/devices.c
@@ -11,6 +11,7 @@
#include <asm/arch/irda.h>
#include <asm/arch/i2c.h>
#include <asm/arch/ohci.h>
+#include <asm/arch/camera.h>
#include "devices.h"
@@ -540,6 +541,37 @@ struct platform_device pxa27x_device_ssp3 = {
.resource = pxa27x_resource_ssp3,
.num_resources = ARRAY_SIZE(pxa27x_resource_ssp3),
};
+
+static struct resource pxa27x_resource_camera[] = {
+ [0] = {
+ .start = 0x50000000,
+ .end = 0x50000fff,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = IRQ_CAMERA,
+ .end = IRQ_CAMERA,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static u64 pxa27x_dma_mask_camera = DMA_BIT_MASK(32);
+
+static struct platform_device pxa27x_device_camera = {
+ .name = "pxa27x-camera",
+ .id = 0, /* This is used to put cameras on this interface */
+ .dev = {
+ .dma_mask = &pxa27x_dma_mask_camera,
+ .coherent_dma_mask = 0xffffffff,
+ },
+ .num_resources = ARRAY_SIZE(pxa27x_resource_camera),
+ .resource = pxa27x_resource_camera,
+};
+
+void __init pxa_set_camera_info(struct pxacamera_platform_data *info)
+{
+ pxa_register_device(&pxa27x_device_camera, info);
+}
#endif /* CONFIG_PXA27x || CONFIG_PXA3xx */
#ifdef CONFIG_PXA3xx