diff options
| author | Ovidiu Sas <sip.nslu@gmail.com> | 2008-02-02 02:05:40 +0000 |
|---|---|---|
| committer | Ovidiu Sas <sip.nslu@gmail.com> | 2008-02-02 02:05:40 +0000 |
| commit | c63e9d13cb35a08fe503e53883f75460eacbd040 (patch) | |
| tree | 55565fdaac0b72c9154b5c6d89508e8b4c1ef0b7 | |
| parent | fb8179540d23ef20ad0c1b2095a4775427070958 (diff) | |
| parent | 86730fc413832d757ebb1e3d74ca122eba7fdbd4 (diff) | |
merge of '8bc0e0a5967ae8fccb6d56b0d9f5a3a9bf3d7dff'
and 'edd46f6b477e2a693c84c2ba999b868f23a733f0'
36 files changed, 1398 insertions, 149 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 089cf6e67c..9b1e8854dc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -193,7 +193,7 @@ Mail: rpurdie@rpsys.net Distros: poky, openzaurus, Ångström Machines: poodle, c7x0, spitz, nokia770, qemuarm, qemux86, hx2xxx Interests: Kernels, Bitbake, Core OE infrastructure, Zaurus 2.6 -Recipes: linux-rp, udev, zaurusd, task-base +Recipes: linux-rp, udev, zaurusd, task-base, qemu Person: Rick Farina Mail: sidhayn@gmail.com diff --git a/conf/distro/include/angstrom-2007-preferred-versions.inc b/conf/distro/include/angstrom-2007-preferred-versions.inc index 02e2399e4e..d712fadb8c 100644 --- a/conf/distro/include/angstrom-2007-preferred-versions.inc +++ b/conf/distro/include/angstrom-2007-preferred-versions.inc @@ -886,7 +886,7 @@ PREFERRED_VERSION_libgalago ?= "0.3.3" PREFERRED_VERSION_libgc ?= "6.7" PREFERRED_VERSION_libgcrypt ?= "1.2.3" PREFERRED_VERSION_libgeda ?= "20050820" -PREFERRED_VERSION_libgemwidget ?= "0.1" +PREFERRED_VERSION_libgemwidget ?= "1.0" PREFERRED_VERSION_libglade ?= "2.6.2" PREFERRED_VERSION_libglademm ?= "2.4.1" PREFERRED_VERSION_libgmime ?= "2.1.7" @@ -918,7 +918,7 @@ PREFERRED_VERSION_libhildonfm ?= "1.9.41" PREFERRED_VERSION_libhildonhelp ?= "1.9.1" PREFERRED_VERSION_libhildonmime ?= "1.9.5" PREFERRED_VERSION_libhtml-mason-perl ?= "1.35" -PREFERRED_VERSION_libiac ?= "0.1" +PREFERRED_VERSION_libiac ?= "1.0" PREFERRED_VERSION_libice ?= "1.0.4" PREFERRED_VERSION_libiconv ?= "1.11" PREFERRED_VERSION_libid3 ?= "1.1" @@ -946,7 +946,7 @@ PREFERRED_VERSION_libmailwrapper ?= "1.2.3" PREFERRED_VERSION_libmatchbox ?= "1.9" PREFERRED_VERSION_libmath-bigint-gmp-perl ?= "1.18" PREFERRED_VERSION_libmikmod ?= "3.2.0-beta2" -PREFERRED_VERSION_libmimedir ?= "0.3.1" +PREFERRED_VERSION_libmimedir ?= "0.4.2" PREFERRED_VERSION_libmng ?= "1.0.8" PREFERRED_VERSION_libmodplug ?= "0.7" PREFERRED_VERSION_libmodule-build-perl ?= "0.2805" diff --git a/conf/local.conf.sample b/conf/local.conf.sample index 4d60fa729b..5204039478 100644 --- a/conf/local.conf.sample +++ b/conf/local.conf.sample @@ -39,7 +39,7 @@ BBMASK = "" # generation under qemu (mainly arm glibc) and have an external gcc 3.x compiler # that OE recognises. This will mean the gcc-native build is skipped, speeding # builds up. -# ASSUME_PROVIDED += "gcc-native3" +# ASSUME_PROVIDED += "gcc3-native" # Uncomment this if you are building Linux 2.4 Embedix kernels. # i.e. openzaurus-sa-2.4.18 and openzaurus-pxa-2.4.18 - and don't forget diff --git a/packages/gcc/gcc-4.1.0/arm-nolibfloat.patch b/packages/gcc/gcc-4.1.0/arm-nolibfloat.patch deleted file mode 100644 index c4897c0330..0000000000 --- a/packages/gcc/gcc-4.1.0/arm-nolibfloat.patch +++ /dev/null @@ -1,24 +0,0 @@ -# Dimitry Andric <dimitry@andric.com>, 2004-05-01 -# -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed -# anymore. (The required functions are now in libgcc.) -# -# Fixes errors like -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat -# collect2: ld returned 1 exit status -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat - -Index: gcc-4.0.2/gcc/config/arm/linux-elf.h -=================================================================== ---- gcc-4.0.2.orig/gcc/config/arm/linux-elf.h 2005-03-04 16:14:01.000000000 +0000 -+++ gcc-4.0.2/gcc/config/arm/linux-elf.h 2005-11-11 18:02:54.000000000 +0000 -@@ -56,7 +56,7 @@ - %{shared:-lc} \ - %{!shared:%{profile:-lc_p}%{!profile:-lc}}" - --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -+#define LIBGCC_SPEC "-lgcc" - - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which diff --git a/packages/gcc/gcc-4.1.0/arm-softfloat.patch b/packages/gcc/gcc-4.1.0/arm-softfloat.patch deleted file mode 100644 index c86c83ed15..0000000000 --- a/packages/gcc/gcc-4.1.0/arm-softfloat.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: gcc-4.0.2/gcc/config/arm/t-linux -=================================================================== ---- gcc-4.0.2.orig/gcc/config/arm/t-linux 2004-05-15 12:41:35.000000000 +0000 -+++ gcc-4.0.2/gcc/config/arm/t-linux 2005-11-11 16:07:53.000000000 +0000 -@@ -4,7 +4,10 @@ - LIBGCC2_DEBUG_CFLAGS = -g0 - - LIB1ASMSRC = arm/lib1funcs.asm --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ -+ _fixsfsi _fixunssfsi _floatdidf _floatdisf - - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float diff --git a/packages/gcc/gcc-4.1.0/ldflags.patch b/packages/gcc/gcc-4.1.0/ldflags.patch deleted file mode 100644 index 9576f60778..0000000000 --- a/packages/gcc/gcc-4.1.0/ldflags.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- /tmp/Makefile.in 2006-02-23 20:56:01.399758728 +0100 -+++ gcc-4.1-20060217/Makefile.in 2006-02-23 20:56:16.874406224 +0100 -@@ -334,7 +334,7 @@ - CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) - LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) - LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates --LDFLAGS_FOR_TARGET = -+LDFLAGS_FOR_TARGET = @LDFLAGS@ - PICFLAG_FOR_TARGET = - - # ------------------------------------ ---- /tmp/Makefile.tpl 2006-02-23 20:50:34.077519272 +0100 -+++ gcc-4.1-20060217/Makefile.tpl 2006-02-23 21:04:31.092273688 +0100 -@@ -337,7 +337,7 @@ - CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) - LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) - LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates --LDFLAGS_FOR_TARGET = -+LDFLAGS_FOR_TARGET = @LDFLAGS@ - PICFLAG_FOR_TARGET = - - # ------------------------------------ diff --git a/packages/gcc/gcc-4.1.0/pr34130.patch b/packages/gcc/gcc-4.1.0/pr34130.patch deleted file mode 100644 index 415335f4b4..0000000000 --- a/packages/gcc/gcc-4.1.0/pr34130.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: gcc-4.1.2/gcc/fold-const.c -=================================================================== ---- gcc-4.1.2.orig/gcc/fold-const.c 2007-11-21 18:53:42.000000000 +0100 -+++ gcc-4.1.2/gcc/fold-const.c 2007-11-21 18:56:26.000000000 +0100 -@@ -5339,7 +5339,10 @@ - } - break; - } -- /* FALLTHROUGH */ -+ /* If the constant is negative, we cannot simplify this. */ -+ if (tree_int_cst_sgn (c) == -1) -+ break; -+ /* FALLTHROUGH */ - case NEGATE_EXPR: - if ((t1 = extract_muldiv (op0, c, code, wide_type)) != 0) - return fold_build1 (tcode, ctype, fold_convert (ctype, t1)); diff --git a/packages/gcc/gcc-4.1.0/zecke-no-host-includes.patch b/packages/gcc/gcc-4.1.0/zecke-no-host-includes.patch deleted file mode 100644 index 6afb10d6ef..0000000000 --- a/packages/gcc/gcc-4.1.0/zecke-no-host-includes.patch +++ /dev/null @@ -1,31 +0,0 @@ -Index: gcc-4.0.2/gcc/c-incpath.c -=================================================================== ---- gcc-4.0.2.orig/gcc/c-incpath.c 2005-01-23 16:05:27.000000000 +0100 -+++ gcc-4.0.2/gcc/c-incpath.c 2006-05-15 21:23:02.000000000 +0200 -@@ -350,6 +350,26 @@ - p->construct = 0; - p->user_supplied_p = user_supplied_p; - -+#ifdef CROSS_COMPILE -+ /* A common error when cross compiling is including -+ host headers. This code below will try to fail fast -+ for cross compiling. Currently we consider /usr/include, -+ /opt/include and /sw/include as harmful. */ -+ { -+ /* printf("Adding Path: %s\n", p->name ); */ -+ if( strstr(p->name, "/usr/include" ) == p->name ) { -+ fprintf(stderr, _("CROSS COMPILE Badness: /usr/include in INCLUDEPATH: %s\n"), p->name); -+ abort(); -+ } else if( strstr(p->name, "/sw/include") == p->name ) { -+ fprintf(stderr, _("CROSS COMPILE Badness: /sw/include in INCLUDEPATH: %s\n"), p->name); -+ abort(); -+ } else if( strstr(p->name, "/opt/include") == p->name ) { -+ fprintf(stderr, _("CROSS COMPILE Badness: /opt/include in INCLUDEPATH: %s\n"), p->name); -+ abort(); -+ } -+ } -+#endif -+ - add_cpp_dir_path (p, chain); - } - diff --git a/packages/gcc/gcc-4.1.0/zecke-xgcc-cpp.patch b/packages/gcc/gcc-4.1.0/zecke-xgcc-cpp.patch deleted file mode 100644 index 120cf55a0f..0000000000 --- a/packages/gcc/gcc-4.1.0/zecke-xgcc-cpp.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: gcc-4.1.0/Makefile.in -=================================================================== ---- gcc-4.1.0.orig/Makefile.in 2005-12-15 15:02:02.000000000 +0100 -+++ gcc-4.1.0/Makefile.in 2006-08-06 13:29:36.000000000 +0200 -@@ -194,6 +194,7 @@ - AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \ - CC="$(CC_FOR_TARGET)"; export CC; \ - CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ -+ CPP="$(CC_FOR_TARGET) -E"; export CCP; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ - CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ diff --git a/packages/libc-client/.mtn2git_empty b/packages/libc-client/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libc-client/.mtn2git_empty diff --git a/packages/libc-client/libc-client_2007.bb b/packages/libc-client/libc-client_2007.bb new file mode 100644 index 0000000000..87035afec4 --- /dev/null +++ b/packages/libc-client/libc-client_2007.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "UW c-client library for mail protocols" +SECTION = "devel" +PRIORITY = "optional" +LICENSE = "University of Washington's Free-Fork License" +DEPENDS = "libpam openssl" + +SRC_URI = "ftp://ftp.cac.washington.edu/imap/c-client.tar.Z" + +S = "${WORKDIR}/imap-2007" + +EXTRA_OEMAKE = "CC='${CC}'" + +HEADERS = "src/c-client/*.h src/osdep/unix/*.h c-client/auths.c c-client/linkage.c c-client/linkage.h c-client/osdep.h" + +do_compile() { + echo "SSLINCLUDE=${STAGING_INCDIR}/openssl SSLLIB=${STAGING_LIBDIR}" > ${S}/SPECIALS + oe_runmake lnp +} + +do_stage() { + install -d ${STAGING_INCDIR}/c-client + install ${HEADERS} ${STAGING_INCDIR}/c-client + install c-client/c-client.a ${STAGING_LIBDIR}/libc-client.a +} + diff --git a/packages/libexosip2/.mtn2git_empty b/packages/libexosip2/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libexosip2/.mtn2git_empty diff --git a/packages/libexosip2/files/.mtn2git_empty b/packages/libexosip2/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libexosip2/files/.mtn2git_empty diff --git a/packages/libexosip2/files/simplify-flags.patch b/packages/libexosip2/files/simplify-flags.patch new file mode 100644 index 0000000000..62bb768861 --- /dev/null +++ b/packages/libexosip2/files/simplify-flags.patch @@ -0,0 +1,27 @@ +diff -urN libeXosip2-2.2.3.orig/src/Makefile.am libeXosip2-2.2.3/src/Makefile.am +--- libeXosip2-2.2.3.orig/src/Makefile.am 2005-10-07 14:44:38.000000000 +0200 ++++ libeXosip2-2.2.3/src/Makefile.am 2008-01-23 16:05:07.000000000 +0100 +@@ -27,7 +27,7 @@ + jpipe.c jpipe.h jauth.c \ + sdp_offans.c jpublish.c + +-libeXosip2_la_LDFLAGS = -L$(prefix)/lib -version-info $(LIBEXOSIP_SO_VERSION) ++libeXosip2_la_LDFLAGS = -version-info $(LIBEXOSIP_SO_VERSION) + libeXosip2_la_LIBADD = -losip2 @EXOSIP_LIB@ @PTHREAD_LIBS@ + +-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/include -I$(includedir) ++INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/include +diff -urN libeXosip2-2.2.3.orig/tools/Makefile.am libeXosip2-2.2.3/tools/Makefile.am +--- libeXosip2-2.2.3.orig/tools/Makefile.am 2005-07-24 02:11:43.000000000 +0200 ++++ libeXosip2-2.2.3/tools/Makefile.am 2008-01-23 16:11:07.000000000 +0100 +@@ -9,8 +9,8 @@ + + sip_reg_LDFLAGS = -O @EXOSIP_LIB@ @PTHREAD_LIBS@ @JOSUA_LIB@ + +-sip_reg_LDADD = -L$(prefix)/lib $(top_builddir)/src/libeXosip2.la -losip2 -losipparser2 ++sip_reg_LDADD = $(top_builddir)/src/libeXosip2.la -losip2 -losipparser2 + +-INCLUDES = -I$(prefix)/include -I$(top_srcdir) -I$(top_srcdir)/include -I$(includedir) ++INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/include + + diff --git a/packages/libexosip2/libexosip2_2.2.3.bb b/packages/libexosip2/libexosip2_2.2.3.bb new file mode 100644 index 0000000000..5251d0e2e2 --- /dev/null +++ b/packages/libexosip2/libexosip2_2.2.3.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "High level Session Initiation Protocol (SIP) library" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "libosip2" +SRCNAME = "libeXosip2" +LEAD_SONAME = "libeXosip2" + +PR = "r0" +SRC_URI = "http://download.savannah.nongnu.org/releases/exosip/${SRCNAME}-${PV}.tar.gz \ + file://simplify-flags.patch;patch=1" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit autotools pkgconfig +EXTRA_OECONF = "--disable-josua" + +do_stage() { + autotools_stage_all +} diff --git a/packages/linux/linux-openmoko_2.6.24.bb b/packages/linux/linux-openmoko_2.6.24.bb new file mode 100644 index 0000000000..d58f231d69 --- /dev/null +++ b/packages/linux/linux-openmoko_2.6.24.bb @@ -0,0 +1,60 @@ +require linux.inc +require linux-openmoko.inc + +DESCRIPTION = "Linux 2.6.x (development) kernel for FIC SmartPhones shipping w/ OpenMoko" +VANILLA_VERSION = "2.6.24" +KERNEL_RELEASE = "2.6.24" + +KERNEL_VERSION = "${KERNEL_RELEASE}" + +PV = "${VANILLA_VERSION}+svnr${SRCREV}" +PR = "r1" + +KERNEL_IMAGETYPE = "uImage" +UBOOT_ENTRYPOINT = "30008000" + +############################################################## +# source and patches +# +SRCREV_FORMAT = "patches-rconfig" + +SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \ + svn://svn.openmoko.org/branches/src/target/kernel/2.6.24.x;module=patches;proto=http;name=patches \ + svn://svn.openmoko.org/branches/src/target/kernel/2.6.24.x;module=config;proto=http;name=config " + +S = "${WORKDIR}/linux-${VANILLA_VERSION}" + +############################################################## +# kernel image resides on a seperate flash partition (for now) +# +ALLOW_EMPTY = "1" + +COMPATIBLE_HOST = "arm.*-linux" +COMPATIBLE_MACHINE = 'fic-gta01|fic-gta02' + +CMDLINE = "unused -- bootloader passes ATAG list" + +############################################################### +# module configs specific to this kernel +# + +# usb +module_autoload_ohci-hcd = "ohci-hcd" +module_autoload_hci_usb = "hci_usb" +module_autoload_g_ether = "g_ether" +# audio +module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753" +module_autoload_snd-soc-neo1973-gta02-wm8753 = "snd-soc-neo1973-gta02-wm8753" +module_autoload_snd-pcm-oss = "snd-pcm-oss" +module_autoload_snd-mixer-oss = "snd-mixer-oss" +# sd/mmc +module_autoload_s3cmci = "s3cmci" + +do_prepatch() { + mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av + mv patches patches.openmoko + mv .pc .pc.old + mv ${WORKDIR}/config/defconfig-${KERNEL_VERSION} ${WORKDIR}/defconfig +} + +addtask prepatch after do_unpack before do_patch diff --git a/packages/linux/linux-rp-2.6.23/defconfig-spitz b/packages/linux/linux-rp-2.6.23/defconfig-spitz index a18218f2d1..a4e849cba2 100644 --- a/packages/linux/linux-rp-2.6.23/defconfig-spitz +++ b/packages/linux/linux-rp-2.6.23/defconfig-spitz @@ -579,7 +579,7 @@ CONFIG_MTD_ROM=m # CONFIG_MTD_COMPLEX_MAPPINGS=y # CONFIG_MTD_PHYSMAP is not set -CONFIG_MTD_SHARP_SL=y +CONFIG_MTD_SHARP_SL=m # CONFIG_MTD_PLATRAM is not set # @@ -821,6 +821,7 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_CORGI is not set CONFIG_KEYBOARD_SPITZ=y +CONFIG_SHARPSL_RC=m # CONFIG_KEYBOARD_PXA27x is not set # CONFIG_KEYBOARD_GPIO is not set # CONFIG_INPUT_MOUSE is not set diff --git a/packages/linux/linux-rp-2.6.23/mtd-module.patch b/packages/linux/linux-rp-2.6.23/mtd-module.patch new file mode 100644 index 0000000000..4aa2f22aee --- /dev/null +++ b/packages/linux/linux-rp-2.6.23/mtd-module.patch @@ -0,0 +1,13 @@ +Index: linux-2.6.23/drivers/mtd/maps/Kconfig +=================================================================== +--- linux-2.6.23/drivers/mtd/maps/Kconfig ++++ linux-2.6.23/drivers/mtd/maps/Kconfig +@@ -600,7 +600,7 @@ + default "4" + + config MTD_SHARP_SL +- bool "ROM mapped on Sharp SL Series" ++ tristate "ROM mapped on Sharp SL Series" + depends on ARCH_PXA + help + This enables access to the flash chip on the Sharp SL Series of PDAs. diff --git a/packages/linux/linux-rp-2.6.23/sharpsl-rc-r1.patch b/packages/linux/linux-rp-2.6.23/sharpsl-rc-r1.patch new file mode 100644 index 0000000000..08f1f2e721 --- /dev/null +++ b/packages/linux/linux-rp-2.6.23/sharpsl-rc-r1.patch @@ -0,0 +1,519 @@ +Index: linux-2.6.23/arch/arm/mach-pxa/spitz.c +=================================================================== +--- linux-2.6.23.orig/arch/arm/mach-pxa/spitz.c ++++ linux-2.6.23/arch/arm/mach-pxa/spitz.c +@@ -245,6 +245,13 @@ static struct platform_device spitzkbd_d + .id = -1, + }; + ++/* ++ * Spitz Remote Control Device ++ */ ++static struct platform_device sharpsl_rc_device = { ++ .name = "sharpsl-remote-control", ++ .id = -1, ++}; + + /* + * Spitz LEDs +@@ -477,6 +484,7 @@ static struct platform_device *devices[] + &spitzscoop_device, + &spitzssp_device, + &spitzkbd_device, ++ &sharpsl_rc_device, + &spitzts_device, + &spitzbl_device, + &spitzled_device, +Index: linux-2.6.23/drivers/input/keyboard/Kconfig +=================================================================== +--- linux-2.6.23.orig/drivers/input/keyboard/Kconfig ++++ linux-2.6.23/drivers/input/keyboard/Kconfig +@@ -154,6 +154,17 @@ config KEYBOARD_SPITZ + To compile this driver as a module, choose M here: the + module will be called spitzkbd. + ++config SHARPSL_RC ++ tristate "Sharp SL-Cxx00 Remote Control" ++ depends on PXA_SHARPSL ++ default y ++ help ++ Say Y here to enable the remote on the Sharp Zaurus SL-Cxx00, ++ SL-C1000, SL-C3000 and Sl-C3100 series of PDAs. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called sharpsl_rc. ++ + config KEYBOARD_AMIGA + tristate "Amiga keyboard" + depends on AMIGA +Index: linux-2.6.23/drivers/input/keyboard/Makefile +=================================================================== +--- linux-2.6.23.orig/drivers/input/keyboard/Makefile ++++ linux-2.6.23/drivers/input/keyboard/Makefile +@@ -15,6 +15,7 @@ obj-$(CONFIG_KEYBOARD_NEWTON) += newton + obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o + obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o + obj-$(CONFIG_KEYBOARD_SPITZ) += spitzkbd.o ++obj-$(CONFIG_SHARPSL_RC) += sharpsl_rc.o + obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o + obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o + obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o +Index: linux-2.6.23/drivers/input/keyboard/sharpsl_rc.c +=================================================================== +--- /dev/null ++++ linux-2.6.23/drivers/input/keyboard/sharpsl_rc.c +@@ -0,0 +1,291 @@ ++/* ++ * Keyboard driver for Sharp Clamshell Models (SL-Cxx00) ++ * ++ * Copyright (c) 2004-2005 Richard Purdie ++ * ++ * Based on corgikbd.c and Sharp's RC driver ++ * ++ * 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. ++ * ++ */ ++ ++#define DEBUG 1 ++#include <linux/delay.h> ++#include <linux/platform_device.h> ++#include <linux/init.h> ++#include <linux/input.h> ++#include <linux/interrupt.h> ++#include <linux/jiffies.h> ++#include <linux/module.h> ++#include <linux/slab.h> ++ ++#ifdef CONFIG_MACH_SPITZ ++#include <asm/arch/spitz.h> ++#endif ++#ifdef CONFIG_MACH_CORGI ++#include <asm/arch/corgi.h> ++#endif ++ ++#include <asm/arch/hardware.h> ++#include <asm/arch/pxa-regs.h> ++#include <asm/hardware/scoop.h> ++#include <asm/arch/sharpsl.h> ++#include <asm/hardware/sharpsl_pm.h> ++ ++#define DPRINTK(fmt, args...) dev_dbg(data->dev, fmt "\n", ##args) ++ ++struct remote_control_key { ++ unsigned char min; ++ unsigned char max; ++ unsigned char key; ++}; ++ ++#ifdef CONFIG_MACH_SPITZ ++#define REMOTE_AKIN_PULLUP SPITZ_SCP2_AKIN_PULLUP ++#define REMOTE_SCOOP_DEVICE spitzscoop2_device ++#define REMOTE_GPIO_INT SPITZ_GPIO_AK_INT ++#define REMOTE_IRQ_INT SPITZ_IRQ_GPIO_AK_INT ++static struct remote_control_key remote_keys[] = { ++ { 25, 35, KEY_STOPCD}, ++ { 55, 65, KEY_PLAYPAUSE}, ++ { 85, 95, KEY_NEXTSONG}, ++ { 115, 125, KEY_VOLUMEUP}, ++ { 145, 155, KEY_PREVIOUSSONG}, ++ { 180, 190, KEY_MUTE}, ++ { 215, 225, KEY_VOLUMEDOWN}, ++}; ++#endif ++#ifdef CONFIG_MACH_CORGI ++#define REMOTE_AKIN_PULLUP CORGI_SCP_AKIN_PULLUP ++#define REMOTE_SCOOP_DEVICE corgiscoop_device ++#define REMOTE_GPIO_INT CORGI_GPIO_AK_INT ++#define REMOTE_IRQ_INT CORGI_IRQ_GPIO_AK_INT ++static struct remote_control_key remote_keys[] = { ++ //These need to be fixed for the CE-RH1's values ++ { 25, 35, KEY_STOPCD}, ++ { 55, 65, KEY_PLAYPAUSE}, ++ { 85, 95, KEY_NEXTSONG}, ++ { 115, 125, KEY_VOLUMEUP}, ++ { 145, 155, KEY_PREVIOUSSONG}, ++ { 180, 190, KEY_MUTE}, ++ { 215, 225, KEY_VOLUMEDOWN}, ++}; ++#endif ++ ++#define RELEASE_HI 230 ++#define MAX_EARPHONE 6 ++#define RC_POLL_MS 10 ++#define RC_FINISH_MS 500 ++#define WAIT_STATE 3 ++#define NOISE_THRESHOLD 100 ++ ++struct sharpsl_rc { ++ struct input_dev *input; ++ struct device *dev; ++ ++ spinlock_t lock; ++ struct timer_list rctimer; ++ struct timer_list rctimer_finish; ++ ++ unsigned int handling_press; ++ unsigned int noise; ++ unsigned int state; ++ unsigned int last_key; ++}; ++ ++static int get_remocon_raw(void) ++{ ++ int i, val; ++ ++ val = sharpsl_pm_pxa_read_max1111(MAX1111_REMCOM); ++ for (i = 0; i < ARRAY_SIZE(remote_keys); ++i) { ++ if (val >= remote_keys[i].min ++ && val <= remote_keys[i].max) { ++ printk("get_remocon_raw: VAL=%i, KEY=%i\n", val, remote_keys[i].key); ++ return remote_keys[i].key; ++ } ++ } ++ return 0; ++} ++ ++static irqreturn_t sharpsl_rc_interrupt(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ struct sharpsl_rc *data = dev_id; ++ DPRINTK("sharpsl_rc_interrupt %d\n", irq); ++ if (!data->handling_press) { ++ DPRINTK("handling interrupt"); ++ data->handling_press = 1; ++ data->noise = 0; ++ data->state = 0; ++ data->last_key = 0; ++ ++ reset_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP); ++ ++ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS)); ++ } ++ return IRQ_HANDLED; ++} ++ ++static void sharpsl_rc_timer_callback(unsigned long dataPtr) ++{ ++ struct sharpsl_rc *data = (struct sharpsl_rc *) dataPtr; ++ int timer = 1; ++ int key = get_remocon_raw(); ++ DPRINTK("timer callback, key: %d", key); ++ ++ //wait for value to stabilize ++ if (data->state < WAIT_STATE) { ++ if (data->last_key != key) { ++ ++data->noise; ++ if (data->noise > NOISE_THRESHOLD) { ++ DPRINTK("too much noise, bailing"); ++ timer = 0; ++ } ++ data->state = 0; ++ } else { ++ ++data->state; ++ } ++ data->last_key = key; ++ ++ //stable value, send event ++ } else if (data->state == WAIT_STATE) { ++ data->noise = 0; ++ //non-key returned, skip the rest of the states and bail now ++ if (data->last_key == 0) { ++ DPRINTK("non-key detected %d, noise: %d", data->last_key, data->noise); ++ timer = 0; ++ //send button press ++ } else { ++ DPRINTK("key press detected %d, noise %d", data->last_key, data->noise); ++ input_report_key(data->input, data->last_key, 1); ++ } ++ ++data->state; ++ ++ //wait until key is released ++ } else if (data->state < WAIT_STATE * 2) { ++ if (key == data->last_key ++ && data->noise < NOISE_THRESHOLD) { ++ data->state = WAIT_STATE + 1; ++ ++data->noise; ++ } else { ++ ++data->state; ++ } ++ //key is released, send event ++ } else { ++ //send button release ++ DPRINTK("release key %d", data->last_key); ++ input_report_key(data->input, data->last_key, 0); ++ timer = 0; ++ } ++ if (timer) { ++ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS)); ++ } else { ++ set_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP); ++ data->handling_press = 0; ++ } ++} ++ ++static int __init sharpsl_rc_probe(struct platform_device *pdev) ++{ ++ struct sharpsl_rc *sharpsl_rc; ++ struct input_dev *input_dev; ++ int i, ret; ++ ++ dev_dbg(&pdev->dev, "sharpsl_rc_probe\n"); ++ ++ sharpsl_rc = kzalloc(sizeof(struct sharpsl_rc), GFP_KERNEL); ++ input_dev = input_allocate_device(); ++ if (!sharpsl_rc || !input_dev) { |
