diff options
41 files changed, 903 insertions, 1314 deletions
diff --git a/classes/insane.bbclass b/classes/insane.bbclass index e5a1cd03d4..21348a8bb6 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -255,6 +255,10 @@ def package_qa_check_arch(path,name,d): import bb, os target_os = bb.data.getVar('TARGET_OS', d, True) target_arch = bb.data.getVar('TARGET_ARCH', d, True) + + # FIXME: Cross package confuse this check, so just skip them + if bb.data.inherits_class('cross', d): + return True # avoid following links to /usr/bin (e.g. on udev builds) # we will check the files pointed to anyway... diff --git a/conf/distro/angstrom-2007.1.conf b/conf/distro/angstrom-2007.1.conf index e7f4fdc654..86e87f31d6 100644 --- a/conf/distro/angstrom-2007.1.conf +++ b/conf/distro/angstrom-2007.1.conf @@ -8,7 +8,7 @@ #DISTRO_VERSION = "2007.4" DISTRO_VERSION = "test-${DATE}" -DISTRO_REVISION = "39" +DISTRO_REVISION = "41" require conf/distro/include/angstrom.inc require conf/distro/include/sane-srcdates.inc @@ -133,7 +133,7 @@ PREFERRED_VERSION_fontconfig = "2.4.1" PREFERRED_VERSION_freetype = "2.3.1" PREFERRED_VERSION_freetype-native = "2.2.1" PREFERRED_VERSION_cairo = "1.4.2" -PREFERRED_VERSION_glib-2.0 = "2.12.10" +PREFERRED_VERSION_glib-2.0 = "2.12.11" #Small machines prefer kdrive, but we might ship full Xorg in other images PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive" @@ -198,8 +198,8 @@ PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-uclibcgnueabi-libc-for-gcc = "uc #use EABI toolchain PREFERRED_VERSION_gcc ?= "4.1.2" -PREFERRED_VERSION_gcc-cross ?= "4.1.1" -PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.1" +PREFERRED_VERSION_gcc-cross ?= "4.1.2" +PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2" PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1" PREFERRED_VERSION_binutils ?= "2.17.50.0.5" diff --git a/conf/distro/generic.conf b/conf/distro/generic.conf index 17d7d657b1..a9d667372f 100644 --- a/conf/distro/generic.conf +++ b/conf/distro/generic.conf @@ -25,7 +25,7 @@ INHERIT += "debian multimachine" # Packaging and output format # INHERIT += "package_ipk" -IMAGE_FSTYPES = "tar.gz ext2.gz jffs2" +IMAGE_FSTYPES ?= "tar.gz ext2.gz jffs2" # # Kernel diff --git a/conf/distro/include/slugos.inc b/conf/distro/include/slugos.inc index df16ad557f..bc1a6fbfdd 100644 --- a/conf/distro/include/slugos.inc +++ b/conf/distro/include/slugos.inc @@ -133,8 +133,8 @@ INHERIT += "nslu2-mirrors" PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r63" -PREFERRED_VERSION_ipkg ?= "0.99.154" -PREFERRED_VERSION_ipkg-native ?= "0.99.154" +PREFERRED_VERSION_ipkg ?= "0.99.163" +PREFERRED_VERSION_ipkg-native ?= "0.99.163" #FIXME: HACK: REMOVE THIS IGNORE_STRIP_ERRORS = "" diff --git a/conf/machine/netvista.conf b/conf/machine/netvista.conf index 25bf6649bd..65a797c680 100644 --- a/conf/machine/netvista.conf +++ b/conf/machine/netvista.conf @@ -7,6 +7,8 @@ TARGET_ARCH = "i486" # TARGET_VENDOR = "-oe" PACKAGE_EXTRA_ARCHS = "netvista" PREFERRED_PROVIDER_virtual/kernel = "linux-x86" +XSERVER = "xserver-kdrive-vesa" + # todo: convert to task-base # BOOTSTRAP_EXTRA_RDEPENDS = "kernel pciutils udev kernel-modules" MACHINE_EXTRA_RRECOMMENDS = " kernel-modules" @@ -14,7 +16,7 @@ MACHINE_EXTRA_RRECOMMENDS = " kernel-modules" MACHINE_TASK_PROVIDER = "task-base" MACHINE_FEATURES = "kernel26 pci usbhost ext2 screen keyboard irda apm alsa" -ROOT_FLASH_SIZE = "32" +ROOT_FLASH_SIZE = "64" GUI_MACHINE_CLASS = "bigscreen" udevdir = "/dev" diff --git a/packages/btscanner/btscanner_2.0.bb b/packages/btscanner/btscanner_2.0.bb index ac991ef078..1e75824c0e 100644 --- a/packages/btscanner/btscanner_2.0.bb +++ b/packages/btscanner/btscanner_2.0.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Extract information from Bluetooth devices in range." SECTION = "libs" PRIORITY = "optional" HOMEPAGE = "http://www.pentest.co.uk/cgi-bin/viewcat.cgi?cat=downloads§ion=01_bluetooth" -DEPENDS = "bluez-libs gdbm ncurses" +DEPENDS = "bluez-libs gdbm ncurses libxml2" PR = "r0" LICENSE = "GPLv2" diff --git a/packages/cups/cups_1.2.10.bb b/packages/cups/cups_1.2.10.bb new file mode 100644 index 0000000000..8201dd9201 --- /dev/null +++ b/packages/cups/cups_1.2.10.bb @@ -0,0 +1,76 @@ +DESCRIPTION = "An Internet printing system for Unix." +SECTION = "console/utils" +LICENSE = "GPL LGPL" +DEPENDS = "gnutls jpeg dbus dbus-glib libpng zlib install-native fakeroot-native" +PR = "r0" + +SRC_URI = "ftp://ftp3.easysw.com/pub/cups/${PV}/cups-${PV}-source.tar.bz2 \ + " + +inherit autotools binconfig + +LDFLAGS += " -L${STAGING_LIBDIR} " + +EXTRA_OECONF = " \ + --enable-gnutls \ + --enable-dbus \ + --enable-browsing \ + --disable-openssl \ + --disable-tiff \ + --without-php \ + --without-perl \ + --without-python \ + --without-java \ + " + + +do_configure() { + gnu-configize + libtoolize --force + oe_runconf +} + +do_compile () { + sed -i s:STRIP:NOSTRIP: Makedefs + sed -i s:serial:: backend/Makefile + + echo "all:" > man/Makefile + echo "install:" >> man/Makefile + + oe_runmake "SSLLIBS=-lgnutls -L${STAGING_LIBDIR}" \ + "LIBPNG=-lpng -lm -L${STAGING_LIBDIR}" \ + "LIBJPEG=-ljpeg -L${STAGING_LIBDIR}" \ + "LIBZ=-lz -L${STAGING_LIBDIR}" \ + "-I." +} + +fakeroot do_install () { + oe_runmake "DSTROOT=${D}" install +} + +do_stage () { + install -d ${STAGING_INCDIR}/cups + install ${S}/cups/*.h ${STAGING_INCDIR}/cups/ + install ${S}/filter/*.h ${STAGING_INCDIR}/cups/ + oe_libinstall -C cups -so libcups ${STAGING_LIBDIR} + oe_libinstall -C filter -so libcupsimage ${STAGING_LIBDIR} +} + +FILES_${PN}-dbg += "${libdir}/cups/backend/.debug \ + ${libdir}/cups/cgi-bin/.debug \ + ${libdir}/cups/filter/.debug \ + ${libdir}/cups/monitor/.debug \ + ${libdir}/cups/notifier/.debug \ + ${libdir}/cups/daemon/.debug \ + " +#package the html for the webgui inside the main packages (~1MB uncompressed) + +FILES_${PN} += "${datadir}/doc/cups/images \ + ${datadir}/doc/cups/*html \ + ${datadir}/doc/cups/*.css \ + ${datadir}/icons/ \ + " + + + + diff --git a/packages/gcc/gcc-cross-sdk_4.1.2.bb b/packages/gcc/gcc-cross-sdk_4.1.2.bb new file mode 100644 index 0000000000..f3968f512d --- /dev/null +++ b/packages/gcc/gcc-cross-sdk_4.1.2.bb @@ -0,0 +1,42 @@ +DESCRIPTION = "The GNU cc and gcc C compilers." +HOMEPAGE = "http://www.gnu.org/software/gcc/" +SECTION = "devel" +LICENSE = "GPL" +PR = "r0" + +inherit sdk + +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}" + +DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc" +PACKAGES = "${PN}" + +require gcc_${PV}.bb +require gcc4-build-sdk.inc +require gcc-package-sdk.inc + +SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2 \ + file://100-uclibc-conf.patch;patch=1 \ + file://110-arm-eabi.patch;patch=1 \ + file://200-uclibc-locale.patch;patch=1 \ + file://300-libstdc++-pic.patch;patch=1 \ + file://301-missing-execinfo_h.patch;patch=1 \ + file://302-c99-snprintf.patch;patch=1 \ + file://303-c99-complex-ugly-hack.patch;patch=1 \ + file://304-index_macro.patch;patch=1 \ + file://602-sdk-libstdc++-includes.patch;patch=1 \ + file://740-sh-pr24836.patch;patch=1 \ + file://800-arm-bigendian.patch;patch=1 \ + file://801-arm-bigendian-eabi.patch;patch=1 \ + file://arm-nolibfloat.patch;patch=1 \ + file://arm-softfloat.patch;patch=1 \ + file://gcc41-configure.in.patch;patch=1 \ + file://arm-thumb.patch;patch=1 \ + file://arm-thumb-cache.patch;patch=1 \ + file://ldflags.patch;patch=1 \ + file://unbreak-armv4t.patch;patch=1 \ + file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 \ + " + +SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 " + diff --git a/packages/gcc/gcc-cross_4.1.1.bb b/packages/gcc/gcc-cross_4.1.1.bb index 67dbc83940..04b34919ec 100644 --- a/packages/gcc/gcc-cross_4.1.1.bb +++ b/packages/gcc/gcc-cross_4.1.1.bb @@ -15,4 +15,6 @@ require gcc3-build-cross.inc # cross packaging require gcc-package-cross.inc +SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 " + EXTRA_OECONF += "--with-mpfr=${STAGING_DIR}/${BUILD_SYS}" diff --git a/packages/gcc/gcc-cross_4.1.2.bb b/packages/gcc/gcc-cross_4.1.2.bb index bb1114cf3b..dab2f332a2 100644 --- a/packages/gcc/gcc-cross_4.1.2.bb +++ b/packages/gcc/gcc-cross_4.1.2.bb @@ -15,4 +15,6 @@ require gcc3-build-cross.inc # cross packaging require gcc-package-cross.inc +SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 " + EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR}/${BUILD_SYS}" diff --git a/packages/gcc/gcc-package-sdk.inc b/packages/gcc/gcc-package-sdk.inc index 9d44fb51ab..1e5f2aaa5d 100644 --- a/packages/gcc/gcc-package-sdk.inc +++ b/packages/gcc/gcc-package-sdk.inc @@ -41,7 +41,7 @@ do_install () { # the packaging. if [ "x${OLD_INHIBIT_PACKAGE_STRIP}" != "x1" ]; then ${TARGET_PREFIX}strip ${D}${libdir}/libstdc++.so.* - ${TARGET_PREFIX}strip ${D}${libdir}/libg2c.so.* + ${TARGET_PREFIX}strip ${D}${libdir}/libg2c.so.* || true ${TARGET_PREFIX}strip ${D}${base_libdir}/libgcc_s.so.* fi } diff --git a/packages/gcc/gcc_4.1.1.bb b/packages/gcc/gcc_4.1.1.bb index b668769ceb..c88692ae0c 100644 --- a/packages/gcc/gcc_4.1.1.bb +++ b/packages/gcc/gcc_4.1.1.bb @@ -1,4 +1,4 @@ -PR = "r12" +PR = "r13" DESCRIPTION = "The GNU cc and gcc C compilers." HOMEPAGE = "http://www.gnu.org/software/gcc/" SECTION = "devel" @@ -35,7 +35,6 @@ SRC_URI = "http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2 \ file://gcc-ignore-cache.patch;patch=1 \ " -SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 " SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 " SRC_URI_append_powerpc = " file://ppc-gcc-41-20060515.patch;patch=1 \ diff --git a/packages/gcc/gcc_4.1.2.bb b/packages/gcc/gcc_4.1.2.bb index 91f6624aa1..2e6036d119 100644 --- a/packages/gcc/gcc_4.1.2.bb +++ b/packages/gcc/gcc_4.1.2.bb @@ -1,4 +1,4 @@ -PR = "r0" +PR = "r1" DESCRIPTION = "The GNU cc and gcc C compilers." HOMEPAGE = "http://www.gnu.org/software/gcc/" SECTION = "devel" @@ -32,7 +32,6 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2 \ file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 \ " -SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 " SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 " #Set the fortran bits diff --git a/packages/linux/linux-smdk2440-2.6.19/.mtn2git_empty b/packages/glib-2.0/glib-2.0-2.12.11/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/linux-smdk2440-2.6.19/.mtn2git_empty +++ b/packages/glib-2.0/glib-2.0-2.12.11/.mtn2git_empty diff --git a/packages/glib-2.0/glib-2.0-2.12.11/configure-libtool.patch b/packages/glib-2.0/glib-2.0-2.12.11/configure-libtool.patch new file mode 100644 index 0000000000..50ffc628db --- /dev/null +++ b/packages/glib-2.0/glib-2.0-2.12.11/configure-libtool.patch @@ -0,0 +1,20 @@ +--- /tmp/configure.in 2007-02-04 12:07:05.000000000 +0100 ++++ glib-2.12.9/configure.in 2007-02-04 12:08:04.655251000 +0100 +@@ -1174,7 +1174,7 @@ + G_MODULE_LDFLAGS= + else + export SED +- G_MODULE_LDFLAGS=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` ++ G_MODULE_LDFLAGS=`(./$host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` + fi + dnl G_MODULE_IMPL= don't reset, so cmd-line can override + G_MODULE_NEED_USCORE=0 +@@ -1239,7 +1239,7 @@ + LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS" + dnl *** check for OSF1/5.0 RTLD_GLOBAL brokenness + echo "void glib_plugin_test(void) { }" > plugin.c +- ${SHELL} ./libtool --mode=compile ${CC} -shared \ ++ ${SHELL} ./$host_alias-libtool --mode=compile ${CC} -shared \ + -export-dynamic -o plugin.o plugin.c 2>&1 >/dev/null + AC_CACHE_CHECK([for RTLD_GLOBAL brokenness], + glib_cv_rtldglobal_broken,[ diff --git a/packages/glib-2.0/glib-2.0_2.12.11.bb b/packages/glib-2.0/glib-2.0_2.12.11.bb new file mode 100644 index 0000000000..4d8e59b355 --- /dev/null +++ b/packages/glib-2.0/glib-2.0_2.12.11.bb @@ -0,0 +1,6 @@ +require glib.inc + +SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glib/2.12/glib-${PV}.tar.bz2 \ + file://glibconfig-sysdefs.h \ + file://configure-libtool.patch;patch=1" + diff --git a/packages/gtk-webcore/osb-jscore_svn.bb b/packages/gtk-webcore/osb-jscore_svn.bb index eb65a9b2fc..25e42cd85c 100644 --- a/packages/gtk-webcore/osb-jscore_svn.bb +++ b/packages/gtk-webcore/osb-jscore_svn.bb @@ -35,5 +35,7 @@ do_stage () { install -d ${STAGING_INCDIR}/osb/JavaScriptCore for i in ${S}/kjs/*.h ${S}/kjs/new; do install -m 0644 $i ${STAGING_INCDIR}/osb/JavaScriptCore + install -d ${STAGING_INCDIR}/../share/osb-jscore + install -m 0755 ${S}/kjs/create_hash_table ${STAGING_INCDIR}/../share/osb-jscore done } diff --git a/packages/images/opie-image.bb b/packages/images/opie-image.bb index 3613ccafde..cd8d7df654 100644 --- a/packages/images/opie-image.bb +++ b/packages/images/opie-image.bb @@ -2,7 +2,7 @@ export IMAGE_BASENAME = "opie-image" export IMAGE_LINGUAS = "" LICENSE = "MIT" -PR = "r21" +PR = "r22" DEPENDS = "${MACHINE_TASK_PROVIDER} task-opie" RDEPENDS = "${INSTALL_PACKAGES}" @@ -14,9 +14,6 @@ INSTALL_PACKAGES = "${MACHINE_TASK_PROVIDER} task-opie-base task-opie-base-apple task-opie-extra-settings \ task-opie-bluetooth task-opie-irda " -INSTALL_PACKAGES_spitz_append = "task-opie-extra-games task-opie-extra-apps task-opie-extra-styles" -INSTALL_PACKAGES_akita_append = "task-opie-extra-games task-opie-extra-apps task-opie-extra-styles" - export PACKAGE_INSTALL = "${INSTALL_PACKAGES}" # merge feed-sources into ipkg.conf for opie-aqpkg as it can't handle feed-sources outside of ipkg.conf. diff --git a/packages/irda-utils/files/init b/packages/irda-utils/files/init index 2d93af34df..a00596fc85 100755 --- a/packages/irda-utils/files/init +++ b/packages/irda-utils/files/init @@ -1,21 +1,26 @@ #! /bin/sh +NAME="irattach" + module_id() { - awk 'BEGIN { FS=": " } /Hardware/ { print $2 } ' </proc/cpuinfo + awk 'BEGIN { FS=": " } /Hardware/ { print $2 } ' </proc/cpuinfo +} +cpuid_id() { + awk '/Processor/ { print $3; exit; }' /proc/cpuinfo } if [ ! -f /etc/sysconfig/irda ]; then - case `module_id` in - "HP iPAQ H2200" | "HP iPAQ HX4700" | "HTC Universal") + case `cpuid_id` in + "XScale-PXA2"*) IRDA=yes DEVICE=/dev/ttyS2 DONGLE= DISCOVERY= ;; *) - IRDA=yes - DEVICE=/dev/ttyS1 + IRDA=no + DEVICE=/dev/null DONGLE= DISCOVERY= ;; @@ -32,8 +37,8 @@ fi . /etc/sysconfig/irda -# Check that irda is up. -[ ${IRDA} = "no" ] && exit 0 +# Check if irda is present. +[ $IRDA = "no" ] && exit 0 [ -f /usr/sbin/irattach ] || exit 0 @@ -47,26 +52,26 @@ fi case "$1" in start) - echo -n "Starting IrDA: " - irattach ${DEVICE} ${ARGS} > /dev/null 2>&1 & - echo "$NAME." - ;; + echo -n "Starting IrDA: " + irattach ${DEVICE} ${ARGS} > /dev/null 2>&1 + echo "$NAME." + ;; stop) - echo -n "Stopping IrDA: " - killall irattach > /dev/null 2>&1 - echo "$NAME." - ;; + echo -n "Stopping IrDA: " + killall irattach > /dev/null 2>&1 + echo "$NAME." + ;; restart|force-reload) - echo -n "Restarting IrDA: " - irattach ${DEVICE} ${ARGS} > /dev/null 2>&1 & - sleep 1 - killall irattach > /dev/null 2>&1 - echo "$NAME." - ;; + echo -n "Restarting IrDA: " + irattach ${DEVICE} ${ARGS} > /dev/null 2>&1 + sleep 1 + killall irattach > /dev/null 2>&1 + echo "$NAME." + ;; *) - N=/etc/init.d/$NAME - echo "Usage: $N {start|stop|restart|force-reload}" >&2 - exit 1 - ;; + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; esac diff --git a/packages/irda-utils/irda-utils_0.9.16.bb b/packages/irda-utils/irda-utils_0.9.16.bb index ee5580b1de..19bcdf397c 100644 --- a/packages/irda-utils/irda-utils_0.9.16.bb +++ b/packages/irda-utils/irda-utils_0.9.16.bb @@ -3,7 +3,7 @@ IrDA allows communication over Infrared with other devices \ such as phones and laptops." SECTION = "base" LICENSE = "GPL" -PR = "r7" +PR = "r8" SRC_URI = "${SOURCEFORGE_MIRROR}/irda/irda-utils-${PV}.tar.gz \ file://configure.patch;patch=1 \ @@ -12,7 +12,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/irda/irda-utils-${PV}.tar.gz \ export SYS_INCLUDES="-I${STAGING_INCDIR}" -inherit autotools update-rc.d +inherit autotools INITSCRIPT_NAME = "irattach" INITSCRIPT_PARAMS = "defaults 20" diff --git a/packages/libwpd/libwpd_0.8.4.bb b/packages/libwpd/libwpd_0.8.4.bb index 46a59e8dc8..4e6ee91a4f 100644 --- a/packages/libwpd/libwpd_0.8.4.bb +++ b/packages/libwpd/libwpd_0.8.4.bb @@ -3,7 +3,7 @@ DESCRIPTION = "libwpd is a C++ library designed to help process WordPerfect docu HOMEPAGE = "http://libwpd.sourceforge.net/index.html" SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz" - +DEPENDS = "libgsf" inherit autotools pkgconfig diff --git a/packages/libwpd/libwpd_0.8.6.bb b/packages/libwpd/libwpd_0.8.6.bb index 46a59e8dc8..4e6ee91a4f 100644 --- a/packages/libwpd/libwpd_0.8.6.bb +++ b/packages/libwpd/libwpd_0.8.6.bb @@ -3,7 +3,7 @@ DESCRIPTION = "libwpd is a C++ library designed to help process WordPerfect docu HOMEPAGE = "http://libwpd.sourceforge.net/index.html" SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz" - +DEPENDS = "libgsf" inherit autotools pkgconfig diff --git a/packages/linux/linux-smdk2440-2.6.19/smdk2440-touchscreen-r2.patch b/packages/linux/linux-smdk2440-2.6.19/smdk2440-touchscreen-r2.patch deleted file mode 100644 index d785cb885f..0000000000 --- a/packages/linux/linux-smdk2440-2.6.19/smdk2440-touchscreen-r2.patch +++ /dev/null @@ -1,532 +0,0 @@ -Index: linux-2.6.19/drivers/input/touchscreen/s3c2410_ts.c -=================================================================== ---- /dev/null -+++ linux-2.6.19/drivers/input/touchscreen/s3c2410_ts.c -@@ -0,0 +1,351 @@ -+/* -+ * 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 -+ * -+ */ -+ -+#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/delay.h> -+#include <linux/platform_device.h> -+#include <linux/clk.h> -+#include <asm/io.h> -+#include <asm/irq.h> -+ -+#include <asm/arch/regs-adc.h> -+#include <asm/arch/regs-gpio.h> -+#include <asm/arch/ts.h> -+ -+/* For ts.dev.id.version */ -+#define S3C2410TSVERSION 0x0101 -+ -+#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"; -+ -+/* -+ * Per-touchscreen data. -+ */ -+ -+struct s3c2410ts { -+ struct input_dev *dev; -+ long xp; -+ long yp; -+ int count; -+ int shift; -+}; -+ -+static struct s3c2410ts ts; -+static void __iomem *base_addr; -+ -+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 touch_timer_fire(unsigned long data) -+{ -+ unsigned long data0; -+ unsigned long data1; -+ int updown; -+ -+ data0 = readl(base_addr+S3C2410_ADCDAT0); -+ data1 = readl(base_addr+S3C2410_ADCDAT1); -+ -+ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN)); -+ -+ if (updown) { -+ if (ts.count != 0) { -+ ts.xp >>= ts.shift; -+ ts.yp >>= ts.shift; -+ -+#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG -+ { -+ struct timeval tv; -+ do_gettimeofday(&tv); -+ printk(DEBUG_LVL "T: %06d, X: %03ld, Y: %03ld\n", (int)tv.tv_usec, ts.xp, ts.yp); -+ } -+#endif -+ -+ input_report_abs(ts.dev, ABS_Y, ts.xp); -+ input_report_abs(ts.dev, ABS_X, ts.yp); -+ -+ input_report_key(ts.dev, BTN_TOUCH, 1); -+ input_report_abs(ts.dev, ABS_PRESSURE, 1); -+ input_sync(ts.dev); -+ } -+ -+ ts.count = 0; -+ -+ 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); -+ } else { -+ ts.count = 0; -+ -+ input_report_abs(ts.dev, ABS_Y, ts.xp); -+ input_report_abs(ts.dev, ABS_X, ts.yp); -+ -+ input_report_key(ts.dev, BTN_TOUCH, 0); -+ input_report_abs(ts.dev, ABS_PRESSURE, 0); -+ input_sync(ts.dev); -+ -+ writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC); -+ } -+} -+ -+static struct timer_list touch_timer = -+ TIMER_INITIALIZER(touch_timer_fire, 0, 0); -+ -+static irqreturn_t stylus_updown(int irq, void *dev_id, struct pt_regs *regs) -+{ -+ unsigned long data0; -+ unsigned long data1; -+ int updown;< |
