summaryrefslogtreecommitdiff
path: root/recipes
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2009-04-15 14:59:40 -0700
committerKhem Raj <raj.khem@gmail.com>2009-04-15 14:59:40 -0700
commita91ef39c62f371125a92098d4fbd45056122c384 (patch)
tree2141ea671053b805f80348ce18bba970fca36e1e /recipes
parent3189734f8d6b1287c757cb9664d7e045ab3c57d7 (diff)
parentabf92f42db81d9049e8e517354e7f3dd5ecb5f77 (diff)
Merge branch 'org.openembedded.dev' of git@git.openembedded.net:openembedded into org.openembedded.dev
Diffstat (limited to 'recipes')
-rw-r--r--recipes/efl1/evas-native_svn.bb2
-rw-r--r--recipes/efl1/evas.inc2
-rw-r--r--recipes/gnome/gnome-bluetooth_2.27.4.bb15
-rw-r--r--recipes/haserl/haserl_0.9.25.bb9
-rw-r--r--recipes/images/initramfs-image.bb2
-rw-r--r--recipes/libfribidi/libfribidi-native_0.10.4.bb29
-rw-r--r--recipes/linux/linux-2.6.24/hipox/hipox.patch2
-rw-r--r--recipes/linux/linux-2.6.29/ep93xx/add-edb9301.patch112
-rw-r--r--recipes/linux/linux-2.6.29/ep93xx/edb9301-fix-machine-id.patch19
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0001-S3C-Backported-the-s3c2410-touchscreen-from-openmok.patch792
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0002-S3C-Backported-openmoko-s-touchscreen-filters.patch1260
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0003-VENDOR-armworks-logo.patch12079
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0004-920T-Use-specific-920t-mtune.patch28
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0005-920T-Temp-fix-for-the-40-relocation-binutils-pro.patch49
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0006-S3C-Allow-the-machine-code-to-get-the-BBT-table-fro.patch49
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0007-MINI2440-Add-machine-support.patch793
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0008-MINI2440-Delays-command-check-response-on-SD.patch30
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0009-MINI2440-Rename-the-SoC-tty-names.patch35
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0010-MINI2440-creates-a-mini2440_defconfig-file.patch2067
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0011-MINI2440-Add-touchscreen-support.patch192
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/0012-GRO-Disable-GRO-on-legacy-netif_rx-path.patch54
-rw-r--r--recipes/linux/linux-2.6.29/micro2440/defconfig2053
-rw-r--r--recipes/linux/linux/ep93xx/defconfig977
-rw-r--r--recipes/linux/linux_2.6.29.bb24
-rw-r--r--recipes/packagekit/packagekit_0.4.6.bb3
-rw-r--r--recipes/python/python-2.6.1/05-enable-ctypes-cross-build.patch2
-rw-r--r--recipes/python/python_2.6.1.bb2
-rw-r--r--recipes/sysstat/sysstat_8.1.6.bb2
-rw-r--r--recipes/u-boot/u-boot-2009.03/hipox/00-hipox.patch7034
-rw-r--r--recipes/u-boot/u-boot_2009.03.bb20
-rw-r--r--recipes/uclibc/uclibc.inc2
-rw-r--r--recipes/udev/udev-141/init60
-rw-r--r--recipes/udev/udev-141/local.rules32
-rw-r--r--recipes/udev/udev-141/permissions.rules119
-rw-r--r--recipes/udev/udev-141/run.rules14
-rw-r--r--recipes/udev/udev-141/udev.rules116
-rw-r--r--recipes/udev/udev_141.bb55
-rw-r--r--recipes/xorg-xserver/xserver-xorg_1.5.3.bb6
-rw-r--r--recipes/xserver-kdrive-common/xserver-kdrive-common/Xserver2
-rw-r--r--recipes/xserver-kdrive-common/xserver-kdrive-common_0.1.bb2
40 files changed, 27686 insertions, 459 deletions
diff --git a/recipes/efl1/evas-native_svn.bb b/recipes/efl1/evas-native_svn.bb
index 56723ca9ab..4a17942c78 100644
--- a/recipes/efl1/evas-native_svn.bb
+++ b/recipes/efl1/evas-native_svn.bb
@@ -1,6 +1,6 @@
require evas.inc
inherit native
-DEPENDS = "freetype-native libpng-native jpeg-native eet-native eina-native"
+DEPENDS = "freetype-native libpng-native jpeg-native eet-native eina-native libfribidi-native"
PR = "r1"
EXTRA_OECONF = "\
diff --git a/recipes/efl1/evas.inc b/recipes/efl1/evas.inc
index 0fb01f31a7..d2a773805d 100644
--- a/recipes/efl1/evas.inc
+++ b/recipes/efl1/evas.inc
@@ -1,7 +1,7 @@
DESCRIPTION = "Evas is the Enlightenment canvas API"
LICENSE = "MIT BSD"
# can also depend on valgrind, libsdl-x11, directfb
-DEPENDS = "eina eet freetype jpeg libpng virtual/libx11 libxext libxrender fontconfig"
+DEPENDS = "eina eet freetype jpeg libpng virtual/libx11 libxext libxrender fontconfig libfribidi"
PV = "0.9.9.050+svnr${SRCREV}"
PR = "r1"
diff --git a/recipes/gnome/gnome-bluetooth_2.27.4.bb b/recipes/gnome/gnome-bluetooth_2.27.4.bb
new file mode 100644
index 0000000000..70377a6a3c
--- /dev/null
+++ b/recipes/gnome/gnome-bluetooth_2.27.4.bb
@@ -0,0 +1,15 @@
+LICENSE = "GPL"
+SECTION = "x11/gnome"
+
+inherit autotools gnome pkgconfig
+
+DEPENDS = "obexd obex-data-server gconf-dbus gtk+ dbus-glib libunique libnotify hal bluez4 gnome-keyring"
+RRECOMMENDS_${PN} += "obexd obex-data-server"
+RCONFLICTS_${PN} = "bluez-gnome"
+
+do_configure_prepend() {
+ sed -i -e s:docs::g ${S}/Makefile.am
+ echo "EXTRA_DIST = version.xml" > gnome-doc-utils.make
+ echo "EXTRA_DIST = version.xml" > gtk-doc.make
+}
+
diff --git a/recipes/haserl/haserl_0.9.25.bb b/recipes/haserl/haserl_0.9.25.bb
new file mode 100644
index 0000000000..d1a06007c0
--- /dev/null
+++ b/recipes/haserl/haserl_0.9.25.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2007-2008, Stelios Koroneos - Digital OPSiS, All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+DESCRIPTION = "A cgi wrapper for embedding shell scripts into html documents"
+SECTION = "console/network"
+LICENSE = "GPL"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${PN}-${PV}.tar.gz"
+
+inherit autotools gettext
diff --git a/recipes/images/initramfs-image.bb b/recipes/images/initramfs-image.bb
index d3d1d751cf..e5189849ba 100644
--- a/recipes/images/initramfs-image.bb
+++ b/recipes/images/initramfs-image.bb
@@ -2,7 +2,7 @@
# command line, from teh choices of block device, loop back images (including
# recursive) and NFS.
-IMAGE_INSTALL = "initramfs-module-block initramfs-module-loop initramfs-module-nfs"
+IMAGE_INSTALL = "busybox-static initramfs-module-block initramfs-module-loop initramfs-module-nfs"
IMAGE_LINGUAS = ""
# Remove any kernel-image that the kernel-module-* packages may have pulled in.
diff --git a/recipes/libfribidi/libfribidi-native_0.10.4.bb b/recipes/libfribidi/libfribidi-native_0.10.4.bb
new file mode 100644
index 0000000000..62d706dfc5
--- /dev/null
+++ b/recipes/libfribidi/libfribidi-native_0.10.4.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Fribidi library for bidirectional text"
+SECTION = "libs"
+PRIORITY = "optional"
+
+inherit autotools pkgconfig native
+
+PR = "r0"
+
+S = "${WORKDIR}/fribidi-${PV}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/fribidi/fribidi-${PV}.tar.bz2 \
+ file://libtool-update.patch;patch=1"
+
+#PACKAGES += " ${PN}-bin"
+FILES_${PN} = "${libdir}/lib*.so.*"
+#FILES_${PN}-bin = "${libdir}/uu*"
+
+do_configure_prepend () {
+# this version of libtool is old - we have to nobble this file to get it to litoolize
+ rm ltconfig
+ rm aclocal.m4
+ rm acinclude.m4
+}
+
+do_stage () {
+ oe_libinstall -a -so -C .libs libfribidi ${STAGING_LIBDIR}
+ autotools_stage_includes
+}
+
diff --git a/recipes/linux/linux-2.6.24/hipox/hipox.patch b/recipes/linux/linux-2.6.24/hipox/hipox.patch
index 686876fb1e..e2d857570a 100644
--- a/recipes/linux/linux-2.6.24/hipox/hipox.patch
+++ b/recipes/linux/linux-2.6.24/hipox/hipox.patch
@@ -23398,7 +23398,7 @@ diff -Nurd linux-2.6.24/arch/arm/mach-hipox/hipox.c linux-2.6.24-oxe810/arch/arm
+#endif // CONFIG_HIPOX_SATA_POWER_2
+}
+
-+MACHINE_START(OXNAS, "Oxsemi NAS")
++MACHINE_START(HIPOX, "OXE810 based HydraIP")
+ /* Maintainer: Oxford Semiconductor Ltd */
+#ifdef CONFIG_ARCH_HIPOX_UART1
+ .phys_io = UART_1_BASE_PA,
diff --git a/recipes/linux/linux-2.6.29/ep93xx/add-edb9301.patch b/recipes/linux/linux-2.6.29/ep93xx/add-edb9301.patch
new file mode 100644
index 0000000000..48e7c18f42
--- /dev/null
+++ b/recipes/linux/linux-2.6.29/ep93xx/add-edb9301.patch
@@ -0,0 +1,112 @@
+Add Cirrus Logic EDB9301 Dev Board to arch/arm/mach-ep93xx
+
+Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
+
+---
+
+diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig
+index 56bddce..9ca8974 100644
+--- a/arch/arm/mach-ep93xx/Kconfig
++++ b/arch/arm/mach-ep93xx/Kconfig
+@@ -15,6 +15,12 @@ config MACH_ADSSPHERE
+ Say 'Y' here if you want your kernel to support the ADS
+ Sphere board.
+
++config MACH_EDB9301
++ bool "Support Cirrus Logic EDB9301"
++ help
++ Say 'Y' here if you want your kernel to support the Cirrus
++ Logic EDB9301 Evaluation Board.
++
+ config MACH_EDB9302
+ bool "Support Cirrus Logic EDB9302"
+ help
+diff --git a/arch/arm/mach-ep93xx/Makefile
+b/arch/arm/mach-ep93xx/Makefile
+index 944e42d..7e7536f 100644
+--- a/arch/arm/mach-ep93xx/Makefile
++++ b/arch/arm/mach-ep93xx/Makefile
+@@ -7,6 +7,7 @@ obj-n :=
+ obj- :=
+
+ obj-$(CONFIG_MACH_ADSSPHERE) += adssphere.o
++obj-$(CONFIG_MACH_EDB9301) += edb9301.o
+ obj-$(CONFIG_MACH_EDB9302) += edb9302.o
+ obj-$(CONFIG_MACH_EDB9302A) += edb9302a.o
+ obj-$(CONFIG_MACH_EDB9307) += edb9307.o
+diff --git a/arch/arm/mach-ep93xx/edb9301.c
+b/arch/arm/mach-ep93xx/edb9301.c
+new file mode 100644
+index 0000000..4108c7c
+--- /dev/null
++++ b/arch/arm/mach-ep93xx/edb9301.c
+@@ -0,0 +1,68 @@
++/*
++ * arch/arm/mach-ep93xx/edb9301.c
++ * Cirrus Logic EDB9301 support.
++ *
++ * Copyright (C) 2009 H Hartley Sweeten <hsweeten@visionengravers.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or (at
++ * your option) any later version.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/mm.h>
++#include <linux/sched.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/mtd/physmap.h>
++#include <linux/platform_device.h>
++#include <linux/io.h>
++#include <linux/i2c.h>
++#include <mach/hardware.h>
++#include <asm/mach-types.h>
++#include <asm/mach/arch.h>
++
++static struct physmap_flash_data edb9301_flash_data = {
++ .width = 2,
++};
++
++static struct resource edb9301_flash_resource = {
++ .start = EP93XX_CS6_PHYS_BASE,
++ .end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1,
++ .flags = IORESOURCE_MEM,
++};
++
++static struct platform_device edb9301_flash = {
++ .name = "physmap-flash",
++ .id = 0,
++ .dev = {
++ .platform_data = &edb9301_flash_data,
++ },
++ .num_resources = 1,
++ .resource = &edb9301_flash_resource,
++};
++
++static struct ep93xx_eth_data edb9301_eth_data = {
++ .phy_id = 1,
++};
++
++static void __init edb9301_init_machine(void)
++{
++ ep93xx_init_devices();
++ platform_device_register(&edb9301_flash);
++
++ ep93xx_register_eth(&edb9301_eth_data, 1);
++}
++
++MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board")
++ /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */
++ .phys_io = EP93XX_APB_PHYS_BASE,
++ .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
++ .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100,
++ .map_io = ep93xx_map_io,
++ .init_irq = ep93xx_init_irq,
++ .timer = &ep93xx_timer,
++ .init_machine = edb9301_init_machine,
++MACHINE_END
+
diff --git a/recipes/linux/linux-2.6.29/ep93xx/edb9301-fix-machine-id.patch b/recipes/linux/linux-2.6.29/ep93xx/edb9301-fix-machine-id.patch
new file mode 100644
index 0000000000..65bfc9bc5e
--- /dev/null
+++ b/recipes/linux/linux-2.6.29/ep93xx/edb9301-fix-machine-id.patch
@@ -0,0 +1,19 @@
+---
+ arch/arm/tools/mach-types | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.29.orig/arch/arm/tools/mach-types
++++ linux-2.6.29/arch/arm/tools/mach-types
+@@ -473,11 +473,11 @@ hawk MACH_HAWK HAWK 456
+ ccat91sbc001 MACH_CCAT91SBC001 CCAT91SBC001 457
+ expresso MACH_EXPRESSO EXPRESSO 458
+ h4000 MACH_H4000 H4000 459
+ dino MACH_DINO DINO 460
+ ml675k MACH_ML675K ML675K 461
+-edb9301 MACH_EDB9301 EDB9301 462
++edb9301 MACH_EDB9301 EDB9301 454
+ edb9315 MACH_EDB9315 EDB9315 463
+ reciva_tt MACH_RECIVA_TT RECIVA_TT 464
+ cstcb01 MACH_CSTCB01 CSTCB01 465
+ cstcb1 MACH_CSTCB1 CSTCB1 466
+ shadwell MACH_SHADWELL SHADWELL 467
diff --git a/recipes/linux/linux-2.6.29/micro2440/0001-S3C-Backported-the-s3c2410-touchscreen-from-openmok.patch b/recipes/linux/linux-2.6.29/micro2440/0001-S3C-Backported-the-s3c2410-touchscreen-from-openmok.patch
new file mode 100644
index 0000000000..4e3b3001f8
--- /dev/null
+++ b/recipes/linux/linux-2.6.29/micro2440/0001-S3C-Backported-the-s3c2410-touchscreen-from-openmok.patch
@@ -0,0 +1,792 @@
+From d13aef4d7aff3b01ea349a07b899debe094bf33e Mon Sep 17 00:00:00 2001
+From: Michel Pollet <buserror@gmail.com>
+Date: Fri, 13 Mar 2009 18:43:43 +0000
+Subject: [PATCH] S3C: Backported the s3c2410 touchscreen from openmoko
+
+This peripheral is pretty essential for the s3c and is missing
+from mainstream linux. This is a straight port of the moko
+kernel.
+---
+ arch/arm/mach-s3c2410/include/mach/ts.h | 35 ++
+ arch/arm/plat-s3c/include/plat/devs.h | 3 +-
+ arch/arm/plat-s3c24xx/devs.c | 19 +
+ arch/arm/plat-s3c24xx/s3c244x.c | 3 +
+ drivers/input/touchscreen/Kconfig | 18 +
+ drivers/input/touchscreen/Makefile | 1 +
+ drivers/input/touchscreen/s3c2410_ts.c | 609 +++++++++++++++++++++++++++++++
+ 7 files changed, 687 insertions(+), 1 deletions(-)
+ create mode 100644 arch/arm/mach-s3c2410/include/mach/ts.h
+ create mode 100644 drivers/input/touchscreen/s3c2410_ts.c
+
+diff --git a/arch/arm/mach-s3c2410/include/mach/ts.h b/arch/arm/mach-s3c2410/include/mach/ts.h
+new file mode 100644
+index 0000000..1b451ea
+--- /dev/null
++++ b/arch/arm/mach-s3c2410/include/mach/ts.h
+@@ -0,0 +1,35 @@
++/* arch/arm/mach-s3c2410/include/mach/ts.h
++ *
++ * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
++ *
++ *
++ * 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.
++ *
++ *
++ * Changelog:
++ * 24-Mar-2005 RTP Created file
++ * 03-Aug-2005 RTP Renamed to ts.h
++ */
++
++#ifndef __ASM_ARM_TS_H
++#define __ASM_ARM_TS_H
++
++#include <../drivers/input/touchscreen/ts_filter.h>
++
++struct s3c2410_ts_mach_info {
++ int delay;
++ int presc;
++ /* array of pointers to filter APIs we want to use, in order
++ * ends on first NULL, all NULL is OK
++ */
++ struct ts_filter_api *filter_sequence[MAX_TS_FILTER_CHAIN];
++ /* array of configuration ints, one for each filter above */
++ void *filter_config[MAX_TS_FILTER_CHAIN];
++};
++
++void set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info);
++
++#endif /* __ASM_ARM_TS_H */
++
+diff --git a/arch/arm/plat-s3c/include/plat/devs.h b/arch/arm/plat-s3c/include/plat/devs.h
+index 6b1b523..cf160ab 100644
+--- a/arch/arm/plat-s3c/include/plat/devs.h
++++ b/arch/arm/plat-s3c/include/plat/devs.h
+@@ -45,10 +45,11 @@ extern struct platform_device s3c_device_nand;
+
+ extern struct platform_device s3c_device_usbgadget;
+
++extern struct platform_device s3c_device_ts;
++
+ /* s3c2440 specific devices */
+
+ #ifdef CONFIG_CPU_S3C2440
+
+ extern struct platform_device s3c_device_camif;
+-
+ #endif
+diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c
+index 16ac01d..a3f8102 100644
+--- a/arch/arm/plat-s3c24xx/devs.c
++++ b/arch/arm/plat-s3c24xx/devs.c
+@@ -26,6 +26,8 @@
+ #include <asm/mach/irq.h>
+ #include <mach/fb.h>
+ #include <mach/hardware.h>
++#include <mach/ts.h>
++#include <asm/io.h>
+ #include <asm/irq.h>
+
+ #include <plat/regs-serial.h>
+@@ -229,6 +231,23 @@ struct platform_device s3c_device_nand = {
+
+ EXPORT_SYMBOL(s3c_device_nand);
+
++/* Touchscreen */
++struct platform_device s3c_device_ts = {
++ .name = "s3c2410-ts",
++ .id = -1,
++};
++
++EXPORT_SYMBOL(s3c_device_ts);
++
++static struct s3c2410_ts_mach_info s3c2410ts_info;
++
++void set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)
++{
++ memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(struct s3c2410_ts_mach_info));
++ s3c_device_ts.dev.platform_data = &s3c2410ts_info;
++}
++EXPORT_SYMBOL(set_s3c2410ts_info);
++
+ /* USB Device (Gadget)*/
+
+ static struct resource s3c_usbgadget_resource[] = {
+diff --git a/arch/arm/plat-s3c24xx/s3c244x.c b/arch/arm/plat-s3c24xx/s3c244x.c
+index c1de6bb..df78a15 100644
+--- a/arch/arm/plat-s3c24xx/s3c244x.c
++++ b/arch/arm/plat-s3c24xx/s3c244x.c
+@@ -59,6 +59,8 @@ void __init s3c244x_init_uarts(struct s3c2410_uartcfg *cfg, int no)
+ s3c24xx_init_uartdevs("s3c2440-uart", s3c2410_uart_resources, cfg, no);
+ }
+
++extern struct platform_device s3c_device_ts;
++
+ void __init s3c244x_map_io(void)
+ {
+ /* register our io-tables */
+@@ -70,6 +72,7 @@ void __init s3c244x_map_io(void)
+ s3c_device_sdi.name = "s3c2440-sdi";
+ s3c_device_i2c0.name = "s3c2440-i2c";
+ s3c_device_nand.name = "s3c2440-nand";
++ s3c_device_ts.name = "s3c2440-ts";
+ s3c_device_usbgadget.name = "s3c2440-usbgadget";
+ }
+
+diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
+index bb6486a..9076492 100644
+--- a/drivers/input/touchscreen/Kconfig
++++ b/drivers/input/touchscreen/Kconfig
+@@ -79,6 +79,24 @@ config TOUCHSCREEN_FUJITSU
+ To compile this driver as a module, choose M here: the
+ module will be called fujitsu-ts.
+
++config TOUCHSCREEN_S3C2410
++ tristate "Samsung S3C2410 touchscreen input driver"
++ depends on ARCH_S3C2410 && INPUT && INPUT_TOUCHSCREEN
++ select SERIO
++ help
++ Say Y here if you have the s3c2410 touchscreen.
++
++ If unsure, say N.
++
++ To compile this driver as a module, choose M here: the
++ module will be called s3c2410_ts.
++
++config TOUCHSCREEN_S3C2410_DEBUG
++ boolean "Samsung S3C2410 touchscreen debug messages"
++ depends on TOUCHSCREEN_S3C2410
++ help
++ Select this if you want debug messages
++
+ config TOUCHSCREEN_GUNZE
+ tristate "Gunze AHL-51S touchscreen"
+ select SERIO
+diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
+index d3375af..fbcde99 100644
+--- a/drivers/input/touchscreen/Makefile
++++ b/drivers/input/touchscreen/Makefile
+@@ -34,3 +34,4 @@ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9705) += wm9705.o
+ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9712) += wm9712.o
+ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9713) += wm9713.o
+ obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE) += mainstone-wm97xx.o
++obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o
+diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c
+new file mode 100644
+index 0000000..ea0777c
+--- /dev/null
++++ b/drivers/input/touchscreen/s3c2410_ts.c
+@@ -0,0 +1,609 @@
++/*
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org>
++ * iPAQ H1940 touchscreen support
++ *
++ * ChangeLog
++ *
++ * 2004-09-05: Herbert Pƶtzl <herbert@13thfloor.at>
++ * - added clock (de-)allocation code
++ *
++ * 2005-03-06: Arnaud Patard <arnaud.patard@rtp-net.org>
++ * - h1940_ -> s3c2410 (this driver is now also used on the n30
++ * machines :P)
++ * - Debug messages are now enabled with the config option
++ * TOUCHSCREEN_S3C2410_DEBUG
++ * - Changed the way the value are read
++ * - Input subsystem should now work
++ * - Use ioremap and readl/writel
++ *
++ * 2005-03-23: Arnaud Patard <arnaud.patard@rtp-net.org>
++ * - Make use of some undocumented features of the touchscreen
++ * controller
++ *
++ * 2007-05-23: Harald Welte <laforge@openmoko.org>
++ * - Add proper support for S32440
++ *
++ * 2008-06-23: Andy Green <andy@openmoko.com>
++ * - removed averaging system
++ * - added generic Touchscreen filter stuff
++ *
++ * 2008-11-27: Nelson Castillo <arhuaco@freaks-unidos.net>
++ * - improve interrupt handling
++ */
++
++#include <linux/errno.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/slab.h>
++#include <linux/input.h>
++#include <linux/init.h>
++#include <linux/serio.h>
++#include <linux/timer.h>
++#include <linux/kfifo.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++
++#include <mach/regs-gpio.h>
++#include <mach/ts.h>
++
++#include <plat/regs-adc.h>
++
++#include "ts_filter.h"
++
++/* For ts.dev.id.version */
++#define S3C2410TSVERSION 0x0101
++
++#define TSC_SLEEP (S3C2410_ADCTSC_PULL_UP_DISABLE | S3C2410_ADCTSC_XY_PST(0))
++
++#define WAIT4INT(x) (((x)<<8) | \
++ S3C2410_ADCTSC_YM_SEN | \
++ S3C2410_ADCTSC_YP_SEN | \
++ S3C2410_ADCTSC_XP_SEN | \
++ S3C2410_ADCTSC_XY_PST(3))
++
++#define AUTOPST (S3C2410_ADCTSC_YM_SEN | \
++ S3C2410_ADCTSC_YP_SEN | \
++ S3C2410_ADCTSC_XP_SEN | \
++ S3C2410_ADCTSC_AUTO_PST | \
++ S3C2410_ADCTSC_XY_PST(0))
++
++#define DEBUG_LVL KERN_DEBUG
++
++MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>");
++MODULE_DESCRIPTION("s3c2410 touchscreen driver");
++MODULE_LICENSE("GPL");
++
++/*
++ * Definitions & global arrays.
++ */
++
++static char *s3c2410ts_name = "s3c2410 TouchScreen";
++
++#define TS_RELEASE_TIMEOUT (HZ >> 7 ? HZ >> 7 : 1) /* 8ms (5ms if HZ is 200) */
++#define TS_EVENT_FIFO_SIZE (2 << 6) /* must be a power of 2 */
++
++#define TS_STATE_STANDBY 0 /* initial state */
++#define TS_STATE_PRESSED 1
++#define TS_STATE_RELEASE_PENDING 2
++#define TS_STATE_RELEASE 3
++
++/*
++ * Per-touchscreen data.
++ */
++
++struct s3c2410ts {
++ struct input_dev *dev;
++ struct ts_filter *tsf[MAX_TS_FILTER_CHAIN];
++ int coords[2]; /* just X and Y for us */
++ int is_down;
++ int state;
++ struct kfifo *event_fifo;
++};
++
++static struct s3c2410ts ts;
++
++static void __iomem *base_addr;
++
++/*
++ * A few low level functions.
++ */
++
++static inline void s3c2410_ts_connect(void)
++{
++ s3c2410_gpio_cfgpin(S3C2410_GPG12, S3C2410_GPG12_XMON);
++ s3c2410_gpio_cfgpin(S3C2410_GPG13, S3C2410_GPG13_nXPON);
++ s3c2410_gpio_cfgpin(S3C2410_GPG14, S3C2410_GPG14_YMON);
++ s3c2410_gpio_cfgpin(S3C2410_GPG15, S3C2410_GPG15_nYPON);
++}
++
++static void s3c2410_ts_start_adc_conversion(void)
++{
++ writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST,
++ base_addr + S3C2410_ADCTSC);
++ writel(readl(base_addr + S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START,
++ base_addr + S3C2410_ADCCON);
++}
++
++/*
++ * Just send the input events.
++ */
++
++enum ts_input_event {IE_DOWN = 0, IE_UP};
++
++static void ts_input_report(int event, int coords[])
++{
++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
++ static char *s[] = {"down", "up"};
++ struct timeval tv;
++
++ do_gettimeofday(&tv);
++#endif
++
++ if (event == IE_DOWN) {
++ input_report_abs(ts.dev, ABS_X, coords[0]);
++ input_report_abs(ts.dev, ABS_Y, coords[1]);
++ input_report_key(ts.dev, BTN_TOUCH, 1);
++ input_report_abs(ts.dev, ABS_PRESSURE, 1);
++
++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
++ printk(DEBUG_LVL "T:%06d %6s (X:%03d, Y:%03d)\n",
++ (int)tv.tv_usec, s[event], coords[0], coords[1]);
++#endif
++ } else {
++ input_report_key(ts.dev, BTN_TOUCH, 0);
++ input_report_abs(ts.dev, ABS_PRESSURE, 0);
++
++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
++ printk(DEBUG_LVL "T:%06d %6s\n",
++ (int)tv.tv_usec, s[event]);
++#endif
++ }
++
++ input_sync(ts.dev);
++}
++
++/*
++ * Manage the state of the touchscreen.
++ */
++
++static void event_send_timer_f(unsigned long data);
++
++static struct timer_list event_send_timer =
++ TIMER_INITIALIZER(event_send_timer_f, 0, 0);
++
++static void event_send_timer_f(unsigned long data)
++{
++ static int noop_counter;
++ int event_type;
++
++ while (__kfifo_get(ts.event_fifo, (unsigned char *)&event_type,
++ sizeof(int))) {
++ int buf[2];
++
++ switch (event_type) {
++ case 'D':
++ if (ts.state == TS_STATE_RELEASE_PENDING)
++ /* Ignore short UP event */
++ ts.state = TS_STATE_PRESSED;
++ break;
++
++ case 'U':
++ ts.state = TS_STATE_RELEASE_PENDING;
++ break;
++
++ case 'P':
++ if (ts.is_down) /* stylus_action needs a conversion */
++ s3c2410_ts_start_adc_conversion();
++
++ if (unlikely(__kfifo_get(ts.event_fifo,
++ (unsigned char *)buf,
++ sizeof(int) * 2)
++ != sizeof(int) * 2))
++ goto ts_exit_error;
++
++ ts_input_report(IE_DOWN, buf);
++ ts.state = TS_STATE_PRESSED;
++ break;
++
++ default:
++ goto ts_exit_error;
++ }
++
++ noop_counter = 0;
++ }
++
++ if (noop_counter++ >= 1) {
++ noop_counter = 0;
++ if (ts.state == TS_STATE_RELEASE_PENDING) {
++ /* We delay the UP event for a
++ * while to avoid jitter. If we get a DOWN
++ * event we do not send it. */
++
++ ts_input_report(IE_UP, NULL);
++ ts.state = TS_STATE_STANDBY;
++
++ if (ts.tsf[0])
++ (ts.tsf[0]->api->clear)(ts.tsf[0]);
++ }
++ } else {
++ mod_timer(&event_send_timer, jiffies + TS_RELEASE_TIMEOUT);
++ }
++
++ return;
++
++ts_exit_error: /* should not happen unless we have a bug */
++ printk(KERN_ERR __FILE__ ": event_send_timer_f failed\n");
++}
++
++/*
++ * Manage interrupts.
++ */
++
++static irqreturn_t stylus_updown(int irq, void *dev_id)</