linux-ezx: add LED subsystem from 2.6.17, start with LED driver for E680
authorMichael Lauer <mickey@vanille-media.de>
Fri, 2 Jun 2006 14:32:44 +0000 (14:32 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Fri, 2 Jun 2006 14:32:44 +0000 (14:32 +0000)
packages/linux/linux-ezx/defconfig-e680
packages/linux/linux-ezx/led_ezx-r0.patch [new file with mode: 0644]
packages/linux/linux-ezx_2.6.16.13.bb

index ded3c1d..9f57ea2 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.16.13
-# Thu May 18 19:40:25 2006
+# Fri Jun  2 15:01:31 2006
 #
 CONFIG_ARM=y
 CONFIG_MMU=y
@@ -14,6 +14,7 @@ CONFIG_ARCH_MTD_XIP=y
 #
 CONFIG_EXPERIMENTAL=y
 CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
 
 #
@@ -171,7 +172,7 @@ CONFIG_ALIGNMENT_TRAP=y
 #
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="mem=32M root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=1 ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off console=ttyS2,115200n8 console=tty0"
+CONFIG_CMDLINE="console=ttyS2,115200n8 console=tty1 noinitrd root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5 ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off   debug"
 # CONFIG_XIP_KERNEL is not set
 
 #
@@ -846,6 +847,15 @@ CONFIG_SPI_BITBANG=m
 # Multimedia Capabilities Port drivers
 #
 
+#
+# LED devices
+#
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_EZX=m
+CONFIG_LEDS_TRIGGER_TIMER=y
+
 #
 # Multimedia devices
 #
@@ -1220,6 +1230,7 @@ CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_DETECT_SOFTLOCKUP is not set
 # CONFIG_SCHEDSTATS is not set
 # CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
 # CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_SPINLOCK is not set
 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
diff --git a/packages/linux/linux-ezx/led_ezx-r0.patch b/packages/linux/linux-ezx/led_ezx-r0.patch
new file mode 100644 (file)
index 0000000..6fc2031
--- /dev/null
@@ -0,0 +1,174 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- linux-2.6.16/arch/arm/mach-pxa/ezx.c~led_ezx-r0.patch
++++ linux-2.6.16/arch/arm/mach-pxa/ezx.c
+@@ -357,6 +357,15 @@
+       .num_resources  = ARRAY_SIZE(ezx_backlight_resources),
+ };
++/*
++ * EZX LEDs
++ */
++static struct platform_device ezxled_device = {
++      .name           = "ezx-led",
++      .id             = -1,
++};
++
++
+ /* keyboard */
+ #if defined(CONFIG_PXA_EZX_V700)
+@@ -770,6 +779,7 @@
+ static struct platform_device *devices[] __initdata = {
+       &ezx_bp_device,
++      &ezxled_device,
+ };
+ static void __init
+--- linux-2.6.16/drivers/leds/Kconfig~led_ezx-r0.patch
++++ linux-2.6.16/drivers/leds/Kconfig
+@@ -59,6 +59,13 @@
+         This option enables support for the LEDs on Sharp Zaurus
+         SL-6000 series.
++config LEDS_EZX
++      tristate "LED Support for the Motorola EZX Platform"
++      depends LEDS_CLASS && PXA_EZX && PXA_EZX_E680
++      help
++        This options enables support for the LEDs on Motorola EZX
++        A780 and E680(i) GSM Phones.
++
+ config LEDS_TRIGGER_TIMER
+       tristate "LED Timer Trigger"
+       depends LEDS_TRIGGERS
+--- linux-2.6.16/drivers/leds/Makefile~led_ezx-r0.patch
++++ linux-2.6.16/drivers/leds/Makefile
+@@ -10,7 +10,8 @@
+ obj-$(CONFIG_LEDS_SPITZ)              += leds-spitz.o
+ obj-$(CONFIG_LEDS_IXP4XX)             += leds-ixp4xx-gpio.o
+ obj-$(CONFIG_LEDS_TOSA)                       += leds-tosa.o
++obj-$(CONFIG_LEDS_EZX)                        += leds-ezx.o
+ # LED Triggers
+ obj-$(CONFIG_LEDS_TRIGGER_TIMER)      += ledtrig-timer.o
+-obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK)   += ledtrig-ide-disk.o
+\ Kein Zeilenumbruch am Dateiende.
++obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK)   += ledtrig-ide-disk.o
+--- /dev/null
++++ linux-2.6.16/drivers/leds/leds-ezx.c
+@@ -0,0 +1,111 @@
++/*
++ * EZX Platform LED Driver
++ *
++ * Copyright 2006 Vanille-Media
++ *
++ * Author: Michael Lauer <mickey@Vanille.de>
++ *
++ * 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/config.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/leds.h>
++//#include <asm/mach-types.h>
++//#include <asm/arch/hardware.h>
++//#include <asm/arch/pxa-regs.h>
++#include "../misc/ezx/ssp_pcap.h"
++
++static void ezxled_red_set(struct led_classdev *led_cdev, enum led_brightness value)
++{
++      printk( KERN_DEBUG "exzled_red_set: %d", value );
++}
++
++static void ezxled_green_set(struct led_classdev *led_cdev, enum led_brightness value)
++{
++      printk( KERN_DEBUG "exzled_green_set: %d", value );
++}
++
++static struct led_classdev ezx_red_led = {
++      .name                   = "ezx:red",
++      .default_trigger        = "timer",
++      .brightness_set         = ezxled_red_set,
++};
++
++static struct led_classdev ezx_green_led = {
++      .name                   = "ezx:green",
++      .default_trigger        = "timer",
++      .brightness_set         = ezxled_green_set,
++};
++
++#ifdef CONFIG_PM
++static int ezxled_suspend(struct platform_device *dev, pm_message_t state)
++{
++      led_classdev_suspend(&ezx_red_led);
++      led_classdev_suspend(&ezx_green_led);
++      return 0;
++}
++
++static int ezxled_resume(struct platform_device *dev)
++{
++      led_classdev_resume(&ezx_red_led);
++      led_classdev_resume(&ezx_green_led);
++      return 0;
++}
++#endif
++
++static int ezxled_probe(struct platform_device *pdev)
++{
++      int ret;
++
++      ret = led_classdev_register(&pdev->dev, &ezx_red_led);
++      if (ret < 0)
++              return ret;
++
++      ret = led_classdev_register(&pdev->dev, &ezx_green_led);
++      if (ret < 0)
++              led_classdev_unregister(&ezx_red_led);
++
++      return ret;
++}
++
++static int ezxled_remove(struct platform_device *pdev)
++{
++      led_classdev_unregister(&ezx_red_led);
++      led_classdev_unregister(&ezx_green_led);
++      return 0;
++}
++
++static struct platform_driver ezxled_driver = {
++      .probe          = ezxled_probe,
++      .remove         = ezxled_remove,
++#ifdef CONFIG_PM
++      .suspend        = ezxled_suspend,
++      .resume         = ezxled_resume,
++#endif
++      .driver         = {
++              .name           = "ezx-led",
++      },
++};
++
++static int __init ezxled_init(void)
++{
++      return platform_driver_register(&ezxled_driver);
++}
++
++static void __exit ezxled_exit(void)
++{
++      platform_driver_unregister(&ezxled_driver);
++}
++
++module_init(ezxled_init);
++module_exit(ezxled_exit);
++
++MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
++MODULE_DESCRIPTION("EZX LED driver");
++MODULE_LICENSE("GPL");
index 1f0ce50..d80ceb9 100644 (file)
@@ -6,18 +6,33 @@ MAINTAINER = "Michael 'Mickey' Lauer <mickey@vanille.de>"
 LICENSE = "GPL"
 DEPENDS += "quilt-native"
 EZX = "ezx6"
-PR = "${EZX}-r4"
+PR = "${EZX}-r5"
 
 inherit kernel
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-ezx"
+RPSRC = "http://www.rpsys.net/openzaurus/patches/archive"
 
 ##############################################################
-# source
-
+# source and patches
+#
 SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2 \
            http://people.openezx.org/stefan/patches/patches-2.6.16-2.6.16.13-exz6-symlink-fix.tar.bz2 \
            file://touchscreen-fix-r0.patch;patch=1 \
+           \
+           ${RPSRC}/led_core-r15.patch;patch=1 \
+           ${RPSRC}/led_triggers-r14.patch;patch=1 \
+           ${RPSRC}/led_trig_timer-r8.patch;patch=1 \
+           ${RPSRC}/led_trig_sharpsl_pm-r5.patch;patch=1 \
+           ${RPSRC}/led_zaurus-r10.patch;patch=1 \
+           ${RPSRC}/led_locomo-r7.patch;patch=1 \
+           ${RPSRC}/led_ixp4xx-r2.patch;patch=1 \
+           ${RPSRC}/led_tosa-r5.patch;patch=1 \
+           ${RPSRC}/led_ide-r6.patch;patch=1 \
+           ${RPSRC}/led_nand-r3.patch;patch=1 \
+           \
+           file://led_ezx-r0.patch;patch=1 \
+           \
            file://e680-keypad-compile-HACK.patch;patch=1 \
            file://e680-disable-boomer-HACK.patch;patch=1 \
            file://defconfig-a780 \
@@ -51,7 +66,7 @@ do_ezxpatch() {
 }
 
 do_configure() {
-       rm -f ${S}/.config
+       mv ${S}/.config harald.config
 
        if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then
                die "No default configuration for ${MACHINE} available."
@@ -79,7 +94,9 @@ do_configure() {
        yes '' | oe_runmake oldconfig
 }
 
-# Check the kernel is below the 1024*1024 byte limit for the boot-over usb
+###############################################################
+# check the kernel is below the 1024*1024 byte limit for the boot-over usb
+#
 do_compile_append() {
        size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'`
        if [ $size -ge 1294336 ]; then  
@@ -89,6 +106,9 @@ do_compile_append() {
        fi
 }
 
+###############################################################
+# put into deploy directory
+#
 do_deploy() {
         install -d ${DEPLOY_DIR_IMAGE}
         install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin