aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Almesberger <werner@openmoko.org>2009-03-05 14:39:46 +0000
committerAndy Green <agreen@octopus.localdomain>2009-03-05 14:39:46 +0000
commitf1dd23b3aecf50d856575d705964b0a868ff8edf (patch)
treea008eb29c5c9c2818a3966327f61f1da492e5c20
parent781fe463717f137894fe3d8288342630f7b62d72 (diff)
Add Samsung S3C CAMIF driver
Add Samsung S3C camera interface driver. Original code is from Samsung's BSP and was written for 2.6.21. Only tested on S3C6410. Signed-off-by: Werner Almesberger <werner@openmoko.org>
-rw-r--r--arch/arm/plat-s3c/Kconfig5
-rw-r--r--arch/arm/plat-s3c/Makefile1
-rw-r--r--arch/arm/plat-s3c/dev-camif.c65
3 files changed, 71 insertions, 0 deletions
diff --git a/arch/arm/plat-s3c/Kconfig b/arch/arm/plat-s3c/Kconfig
index 80a411d6f10..3b6199edcae 100644
--- a/arch/arm/plat-s3c/Kconfig
+++ b/arch/arm/plat-s3c/Kconfig
@@ -193,4 +193,9 @@ config S3C_DEV_FB
help
Compile in platform device definition for framebuffer
+config S3C_DEV_CAMIF
+ bool
+ help
+ Compile in platform device definitions for camera interface code
+
endif
diff --git a/arch/arm/plat-s3c/Makefile b/arch/arm/plat-s3c/Makefile
index 664ba5cc39e..8bba2f03880 100644
--- a/arch/arm/plat-s3c/Makefile
+++ b/arch/arm/plat-s3c/Makefile
@@ -35,6 +35,7 @@ obj-$(CONFIG_S3C_DEV_HSMMC1) += dev-hsmmc1.o
obj-y += dev-i2c0.o
obj-$(CONFIG_S3C_DEV_I2C1) += dev-i2c1.o
obj-$(CONFIG_S3C_DEV_FB) += dev-fb.o
+obj-$(CONFIG_S3C_DEV_CAMIF) += dev-camif.o
obj-$(CONFIG_S3C_PWM) += pwm.o
obj-$(CONFIG_S3C_DMA) += dma.o
diff --git a/arch/arm/plat-s3c/dev-camif.c b/arch/arm/plat-s3c/dev-camif.c
new file mode 100644
index 00000000000..e4e18675289
--- /dev/null
+++ b/arch/arm/plat-s3c/dev-camif.c
@@ -0,0 +1,65 @@
+/* linux/arch/arm/plat-s3c/dev-camif.c
+ *
+ * Copyright 2009 Openmoko, Inc.
+ * Werner Almesberger <werner@openmoko.org>
+ *
+ * based on dev-hsmmc.c which is
+ *
+ * Copyright (c) 2008 Simtec Electronics
+ * Ben Dooks <ben@simtec.co.uk>
+ * http://armlinux.simtec.co.uk/
+ *
+ * S3C series device definition for camera interface devices
+ *
+ * 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 <linux/kernel.h>
+#include <linux/platform_device.h>
+#include <linux/mmc/host.h>
+
+#include <mach/map.h>
+#include <plat/devs.h>
+#include <plat/cpu.h>
+
+
+#define S3C6400_PA_CAMIF 0x78000000
+#define S3C24XX_SZ_CAMIF (0x1000)
+
+
+static struct resource s3c_camif_resource[] = {
+ [0] = {
+ .start = S3C6400_PA_CAMIF,
+ .end = S3C6400_PA_CAMIF + S3C24XX_SZ_CAMIF - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = IRQ_CAMIF_C,
+ .end = IRQ_CAMIF_C,
+ .flags = IORESOURCE_IRQ,
+ },
+ [2] = {
+ .start = IRQ_CAMIF_P,
+ .end = IRQ_CAMIF_P,
+ .flags = IORESOURCE_IRQ,
+ }
+
+};
+
+static u64 s3c_device_camif_dmamask = 0xffffffffUL;
+
+struct platform_device s3c_device_camif = {
+ .name = "s3c-camif",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(s3c_camif_resource),
+ .resource = s3c_camif_resource,
+ .dev = {
+ .dma_mask = &s3c_device_camif_dmamask,
+ .coherent_dma_mask = 0xffffffffUL
+ }
+};
+
+EXPORT_SYMBOL(s3c_device_camif);
+