linux-ezx: remove outdated patches
authorKoen Kooi <koen@openembedded.org>
Tue, 29 Aug 2006 09:13:31 +0000 (09:13 +0000)
committerKoen Kooi <koen@openembedded.org>
Tue, 29 Aug 2006 09:13:31 +0000 (09:13 +0000)
packages/linux/linux-ezx/a780-leds-r0.patch [deleted file]
packages/linux/linux-ezx/e680-disable-boomer-HACK.patch [deleted file]
packages/linux/linux-ezx/e680-fix-keypad.patch [deleted file]
packages/linux/linux-ezx/e680-leds-r0.patch [deleted file]
packages/linux/linux-ezx/e680-leds-r1.patch [deleted file]
packages/linux/linux-ezx/ezx-backlight-r0.patch [deleted file]
packages/linux/linux-ezx/ezx-backlight-r1.patch [deleted file]
packages/linux/linux-ezx/pxakbd-fix-directkeys.patch [deleted file]
packages/linux/linux-ezx/touchscreen-fix-r0.patch [deleted file]

diff --git a/packages/linux/linux-ezx/a780-leds-r0.patch b/packages/linux/linux-ezx/a780-leds-r0.patch
deleted file mode 100644 (file)
index 31fdfc6..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/drivers/leds/Kconfig~a780-leds-r0.patch       2006-06-05 18:05:32.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Kconfig  2006-06-05 18:05:32.000000000 +0200
-@@ -66,6 +66,13 @@
-         This options enables support for the LEDs on the
-         Motorola E680(i) GSM Phone.
-+config LEDS_A780
-+      tristate "LED Support for the Motorola A780 GSM Phone"
-+      depends LEDS_CLASS && PXA_EZX_A780
-+      help
-+        This option enables support for the LEDs on the
-+        Motorola A780 GSM Phone.
-+
- config LEDS_TRIGGER_TIMER
-       tristate "LED Timer Trigger"
-       depends LEDS_TRIGGERS
---- linux-2.6.16/drivers/leds/Makefile~a780-leds-r0.patch      2006-06-05 18:05:32.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Makefile 2006-06-05 18:05:32.000000000 +0200
-@@ -11,6 +11,7 @@
- obj-$(CONFIG_LEDS_IXP4XX)             += leds-ixp4xx-gpio.o
- obj-$(CONFIG_LEDS_TOSA)                       += leds-tosa.o
- obj-$(CONFIG_LEDS_E680)               += leds-e680.o
-+obj-$(CONFIG_LEDS_A780)               += leds-a780.o
- # LED Triggers
- obj-$(CONFIG_LEDS_TRIGGER_TIMER)      += ledtrig-timer.o
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~a780-leds-r0.patch    2006-06-05 18:05:32.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c       2006-06-05 18:05:32.000000000 +0200
-@@ -367,6 +367,15 @@
- };
- #endif
-+#ifdef CONFIG_PXA_EZX_A780
-+/*
-+ * A780 LEDs
-+ */
-+static struct platform_device a780led_device = {
-+      .name           = "a780-led",
-+      .id             = -1,
-+};
-+#endif
- /* keyboard */
-@@ -780,6 +789,9 @@
- #ifdef CONFIG_PXA_EZX_E680
-       &e680led_device,
- #endif
-+#ifdef CONFIG_PXA_EZX_A780
-+      &a780led_device,
-+#endif
- };
- static void __init
---- /dev/null  2006-06-05 13:59:28.329930680 +0200
-+++ linux-2.6.16/drivers/leds/leds-a780.c      2006-06-05 18:27:13.000000000 +0200
-@@ -0,0 +1,123 @@
-+/*
-+ * EZX Platform LED Driver for the Motorola A780 GSM Phone
-+ *
-+ * Copyright 2006 Vanille-Media
-+ *
-+ * Author: Michael Lauer <mickey@Vanille.de>
-+ *
-+ * Based on keylight.c by Motorola and leds-corgi.c by Richard Purdie
-+ *
-+ * 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/platform_device.h>
-+#include <linux/leds.h>
-+#include <asm/arch/ezx-pcap.h>
-+
-+static void a780led_main_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+      if ( value > 31 ) value = 31;
-+      printk( KERN_DEBUG "a780led_main_set: %d\n", value );
-+      ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL0, value & 0x01);
-+      ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL1, value & 0x02);
-+      ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL2, value & 0x04);
-+      ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL3, value & 0x08);
-+      ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL4, value & 0x10);
-+}
-+
-+static void a780led_aux_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+      if ( value > 31 ) value = 31;
-+      printk( KERN_DEBUG "a780led_aux_set: %d\n", value );
-+      ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL0, value & 0x01);
-+      ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL1, value & 0x02);
-+      ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL2, value & 0x04);
-+      ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL3, value & 0x08);
-+      ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL4, value & 0x10);
-+}
-+
-+static struct led_classdev a780_main_led = {
-+      .name                   = "a780:main",
-+      .default_trigger        = "none",
-+      .brightness_set         = a780led_main_set,
-+};
-+
-+static struct led_classdev a780_aux_led = {
-+      .name                   = "a780:aux",
-+      .default_trigger        = "none",
-+      .brightness_set         = a780led_aux_set,
-+};
-+
-+#ifdef CONFIG_PM
-+static int a780led_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+      led_classdev_suspend(&a780_main_led);
-+      led_classdev_suspend(&a780_aux_led);
-+      return 0;
-+}
-+
-+static int a780led_resume(struct platform_device *dev)
-+{
-+      led_classdev_resume(&a780_main_led);
-+      led_classdev_resume(&a780_aux_led);
-+      return 0;
-+}
-+#endif
-+
-+static int a780led_probe(struct platform_device *pdev)
-+{
-+      int ret;
-+
-+      ret = led_classdev_register(&pdev->dev, &a780_main_led);
-+      if (ret < 0)
-+              return ret;
-+
-+      ret = led_classdev_register(&pdev->dev, &a780_aux_led);
-+      if (ret < 0)
-+              led_classdev_unregister(&a780_main_led);
-+
-+      return ret;
-+}
-+
-+static int a780led_remove(struct platform_device *pdev)
-+{
-+      led_classdev_unregister(&a780_main_led);
-+      led_classdev_unregister(&a780_aux_led);
-+      return 0;
-+}
-+
-+static struct platform_driver a780led_driver = {
-+      .probe          = a780led_probe,
-+      .remove         = a780led_remove,
-+#ifdef CONFIG_PM
-+      .suspend        = a780led_suspend,
-+      .resume         = a780led_resume,
-+#endif
-+      .driver         = {
-+              .name           = "a780-led",
-+      },
-+};
-+
-+static int __init a780led_init(void)
-+{
-+      return platform_driver_register(&a780led_driver);
-+}
-+
-+static void __exit a780led_exit(void)
-+{
-+      a780led_main_set( &a780_main_led, 0 );
-+      a780led_aux_set( &a780_aux_led, 0 );
-+      platform_driver_unregister(&a780led_driver);
-+}
-+
-+module_init(a780led_init);
-+module_exit(a780led_exit);
-+
-+MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
-+MODULE_DESCRIPTION("Motorola A780 LED driver");
-+MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-ezx/e680-disable-boomer-HACK.patch b/packages/linux/linux-ezx/e680-disable-boomer-HACK.patch
deleted file mode 100644 (file)
index a0d953d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/drivers/i2c/chips/Makefile~e680-disable-boomer        2006-05-31 18:52:44.000000000 +0200
-+++ linux-2.6.16/drivers/i2c/chips/Makefile    2006-05-31 18:56:38.000000000 +0200
-@@ -17,7 +17,7 @@
- obj-$(CONFIG_I2C_ADCM2700)    += e680_camera.o
- obj-$(CONFIG_I2C_A780_CAMERA) += a780_camera.o
--obj-$(CONFIG_PXA_EZX_E680)    += boomer.o
-+//obj-$(CONFIG_PXA_EZX_E680)  += boomer.o
- ifeq ($(CONFIG_I2C_DEBUG_CHIP),y)
- EXTRA_CFLAGS += -DDEBUG
diff --git a/packages/linux/linux-ezx/e680-fix-keypad.patch b/packages/linux/linux-ezx/e680-fix-keypad.patch
deleted file mode 100644 (file)
index ca06052..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~e680-fix-keypad.patch 2006-06-11 00:47:33.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c       2006-06-12 16:13:28.000000000 +0200
-@@ -341,71 +341,25 @@
- };
- #endif
--/* keyboard */
--
--#if defined(CONFIG_PXA_EZX_V700)
--#error "kbd matrix still needs to be converted to new row/col layout"
--static unsigned char ezx_keycode[] = {
--      /* col 0 */
--      KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT,
--      KEYPAD_POUND, KEY_0, KEY_9, 0,
--      /* col 1 */
--      KEY_2, KEY_4, KEY_6, KEY_8,
--      KEY_7, KEYPAD_SLEFT, KEYPAD_SRIGHT, 0,
--      /* col 2 */
--      KEY_MENU, KEY_1, KEY_3, KEY_5,
--      KEY_KPASTERISK, KEY_VOLUMEUP, KEY_VOLUMEDOWN, 0,
--      /* col 3 */
--      KEY_CAMERA, KEYPAD_CLEAR, KEYPAD_CARRIER, KEYPAD_ACTIVATE,
--      KEYPAD_SEND, KEYPAD_SMART, KEYPAD_VAVR, 0,
--};
--static unsigned char ezx_direct_keycode[] = {
--      KEYPAD_NONE,
--      KEYPAD_NONE,
--      KEYPAD_NONE,
--      KEYPAD_NONE,
--      KEYPAD_NONE,
--      KEYPAD_NONE,
--};
--#elif defined(CONFIG_PXA_EZX_E680_P4A)
--#error "kbd matrix still needs to be converted to new row/col layout"
--static unsigned char ezx_keycode[] = {
--      /* col 0 */
--      KEY_UP, KEY_DOWN, KEY_LEFT, 0, 0, 0, 0, 0,
--      /* col 1 */
--      KEY_RIGHT, KEY_CENTER, KEY_HOME, 0, 0, 0, 0, 0,
--      /* col 2 */
--      KEYPAD_GAME_R, 0, KEYPAD_GAME_L, 0, 0, 0, 0, 0,
--      /* col 3 */
--      KEY_A, KEY_B, 0, 0, 0, 0, 0, 0,
--};
--static unsigned char ezx_direct_keycode[] = {
--      KEY_CAMERA,
--      KEYPAD_NONE,
--      KEYPAD_NONE,
--      KEYPAD_NONE,
--      KEY_POWER,
--      KEYPAD_NONE,
--};
--#elif defined(CONFIG_PXA_EZX_E680)
--#error "kbd matrix still needs to be converted to new row/col layout"
-+/*
-+ * PXA Keyboard
-+ */
-+#if defined(CONFIG_PXA_EZX_E680)
- static unsigned char ezx_keycode[] = {
--      /* col 0 */
--      KEY_UP, KEY_DOWN, 0, 0, 0, 0, 0, 0,
--      /* col 1 */
--      KEY_RIGHT, KEY_LEFT, 0, 0, 0, 0, 0, 0,
--      /* col 2 */
--      0, KEYPAD_GAME_R, 0, 0, 0, 0, 0, 0,
--      /* col 3 */
--      KEYPAD_HOME, KEYPAD_GAME_L, KEYPAD_CENTER, 0, 0, 0, 0, 0,
-+      /* row 0 */
-+      KEY_UP, KEY_RIGHT, KEY_RESERVED, KEY_PHONE,
-+      /* row 1 */
-+      KEY_DOWN, KEY_LEFT, KEY_VOLUMEUP, KEY_VOLUMEDOWN,
-+      /* row 2 */
-+      KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_KPENTER,
- };
- static unsigned char ezx_direct_keycode[] = {
-       KEY_CAMERA,
--      KEYPAD_NONE,
--      KEYPAD_NONE,
--      KEYPAD_A,
-+      KEY_RESERVED,
-+      KEY_RESERVED,
-+      KEY_HOME,
-       KEY_POWER,
--      KEYPAD_B,
-+      KEY_MENU,
- };
- #elif defined(CONFIG_PXA_EZX_A780)
- static unsigned char ezx_keycode[] = {
-@@ -424,22 +378,12 @@
-       KEY_CAMERA,
- };
- #else
--#error "no EZX subarchitecture defined !?!"
-+#error "no EZX subarchitecture defined"
- #endif
- static int ezx_kbd_init(void)
- {
--#if defined(CONFIG_PXA_EZX_E680_P4A)
--      pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN);  /* KP_DKIN<0>, VR Key */
--      pxa_gpio_mode(97 | GPIO_ALT_FN_1_IN);  /* KP_DKIN<4>, power key */
--      pxa_gpio_mode(100 | GPIO_ALT_FN_1_IN);  /* KP_MKIN<0> */
--      pxa_gpio_mode(101 | GPIO_ALT_FN_1_IN);  /* KP_MKIN<1> */
--      pxa_gpio_mode(102 | GPIO_ALT_FN_1_IN);  /* KP_MKIN<2> */
--      pxa_gpio_mode(103 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<0> */
--      pxa_gpio_mode(104 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<1> */
--      pxa_gpio_mode(105 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<2> */
--      pxa_gpio_mode(106 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<3> */
--#elif defined(CONFIG_PXA_EZX_E680)
-+#if defined(CONFIG_PXA_EZX_E680)
-       pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN);  /* KP_DKIN<0>, VR Key */
-       pxa_gpio_mode(96 | GPIO_ALT_FN_1_IN);  /* KP_DKIN<3>, GAME_A */
-       pxa_gpio_mode(97 | GPIO_ALT_FN_1_IN);  /* KP_DKIN<4>, power key */
-@@ -455,7 +399,7 @@
-       GPDR(GPIO_TC_MM_EN)   |= GPIO_bit(GPIO_TC_MM_EN);
-       GPSR(GPIO_TC_MM_EN)   = GPIO_bit(GPIO_TC_MM_EN);
-       PGSR3 |= GPIO_bit(GPIO_TC_MM_EN);
--#elif defined (CONFIG_PXA_EZX_A780)
-+#elif defined(CONFIG_PXA_EZX_A780)
-       pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN);   /* KP_DKIN<0>, voice_rec */
-       pxa_gpio_mode(97 | GPIO_ALT_FN_3_IN);   /* KP_MKIN<3> */
-       pxa_gpio_mode(98 | GPIO_ALT_FN_3_IN);   /* KP_MKIN<4> */
-@@ -476,10 +420,7 @@
-       .scan_interval  = HZ/40,
-       .matrix         = {
-               .keycode = &ezx_keycode,
--#if defined(CONFIG_ARCH_EXZ_E680_P4A)
--              .cols   = 4,
--              .rows   = 3,
--#elif defined(CONFIG_PXA_EZX_E680)
-+#if defined(CONFIG_PXA_EZX_E680)
-               .cols   = 4,
-               .rows   = 3,
- #elif defined(CONFIG_PXA_EZX_A780)
-@@ -489,10 +430,8 @@
-       },
-       .direct         = {
-               .keycode = &ezx_direct_keycode,
--#if defined(CONFIG_PXA_EZX_E680_P4A)
--              .num    = 4,
--#elif defined(CONFIG_PXA_EZX_E680)
--              .num    = 5,
-+#if defined(CONFIG_PXA_EZX_E680)
-+              .num    = 6,
- #elif defined(CONFIG_PXA_EZX_A780)
-               .num    = 1,
- #endif
diff --git a/packages/linux/linux-ezx/e680-leds-r0.patch b/packages/linux/linux-ezx/e680-leds-r0.patch
deleted file mode 100644 (file)
index b6d2413..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~led_ezx-r0.patch      2006-06-03 15:17:43.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c       2006-06-05 15:14:59.000000000 +0200
-@@ -357,6 +357,17 @@
-       .num_resources  = ARRAY_SIZE(ezx_backlight_resources),
- };
-+#ifdef CONFIG_PXA_EZX_E680
-+/*
-+ * E680 LEDs
-+ */
-+static struct platform_device e680led_device = {
-+      .name           = "e680-led",
-+      .id             = -1,
-+};
-+#endif
-+
-+
- /* keyboard */
- #if defined(CONFIG_PXA_EZX_V700)
-@@ -770,6 +781,9 @@
- static struct platform_device *devices[] __initdata = {
-       &ezx_bp_device,
-+#ifdef CONFIG_PXA_EZX_E680
-+      &e680led_device,
-+#endif
- };
- static void __init
---- linux-2.6.16/drivers/leds/Kconfig~led_ezx-r0.patch 2006-06-03 15:17:47.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Kconfig  2006-06-03 15:17:47.000000000 +0200
-@@ -59,6 +59,13 @@
-         This option enables support for the LEDs on Sharp Zaurus
-         SL-6000 series.
-+config LEDS_E680
-+      tristate "LED Support for the Motorola E680(i) GSM Phone"
-+      depends LEDS_CLASS && PXA_EZX_E680
-+      help
-+        This options enables support for the LEDs on the
-+        Motorola E680(i) GSM Phone.
-+
- config LEDS_TRIGGER_TIMER
-       tristate "LED Timer Trigger"
-       depends LEDS_TRIGGERS
---- linux-2.6.16/drivers/leds/Makefile~led_ezx-r0.patch        2006-06-03 15:17:47.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Makefile 2006-06-03 15:17:47.000000000 +0200
-@@ -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_E680)               += leds-e680.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  2006-06-05 13:59:28.329930680 +0200
-+++ linux-2.6.16/drivers/leds/leds-e680.c      2006-06-05 15:11:42.000000000 +0200
-@@ -0,0 +1,269 @@
-+/*
-+ * EZX Platform LED Driver for the Motorola E680(i) GSM Phone
-+ *
-+ * Copyright 2006 Vanille-Media
-+ *
-+ * Author: Michael Lauer <mickey@Vanille.de>
-+ *
-+ * Based on the Motorola 2.4 leds-e680.c and leds-corgi.c by Richard Purdie
-+ *
-+ * 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>
-+//FIXME this belongs to somewhere else, please
-+//      adjust when ssp_pcap.h reached its final destination
-+#include "../misc/ezx/ssp_pcap.h"
-+
-+//FIXME move defines to header file
-+#define IND_CNTL_R_BUL 46
-+#define IND_CNTL_G_BUL 47
-+#define SSP_PCAP_LED_MASK  0x000fffe0
-+#define SSP_PCAP_LED_SHIFT 5
-+
-+static enum led_brightness old_red;
-+static enum led_brightness old_green;
-+static enum led_brightness old_blue;
-+
-+typedef struct {
-+      unsigned char ind_GPIO_red;    /*Indicator Red control GPIO 46: 0 active, 1 disactive*/
-+      unsigned char ind_GPIO_green;  /*Indicator Green control GPIO 47: 0 active, 1 disactive*/
-+      unsigned char pcap_LEDR_en;    /*pcap LEDR_EN bit value: 1 =Red LED(&Green) sink circuit enabled*/
-+      unsigned char pcap_LEDG_en;    /*pcap LEDG_EN bit value:1 =Green(->Blue)LED sink circuit enabled*/
-+      unsigned char pcap_LEDR_CTRL; /* 4bits Sets the timing for the red(&Green) LED sink circuit*/
-+      unsigned char pcap_LEDG_CTRL; /* 4bits Sets the timing for the GREEN (->Blue) LED sink circuit*/
-+      unsigned char pcap_LEDR_I;   /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDR*/
-+      unsigned char pcap_LEDG_I;   /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDG*/
-+      unsigned char pcap_SKIP_on;  /*1=The ON timing sequence defined by LEDx_CTRL is executed on every other cycle*/
-+} PCAP2_LED_REGISTER_VALUE;
-+
-+const PCAP2_LED_REGISTER_VALUE led_register_value[]=
-+{
-+  /*  on/off pulsepower  timing  intensity */
-+      {0x1,0x1, 0x0,0x0, 0x0,0x0, 0x0,0x0,0x0}, /* OFF */
-+      {0x0,0x1, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* RED */
-+      {0x1,0x0, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* GREEN */
-+      {0x0,0x0, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* ORANGE = RED + GREEN */
-+      {0x1,0x1, 0x0,0x1, 0x0,0xc, 0x0,0x0,0x0}, /* BLUE */
-+      {0x0,0x1, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* LIGHT_RED = RED + BLUE */
-+      {0x1,0x0, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* LIGHT_GREEN = GREEN + BLUE */
-+      {0x0,0x0, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* WHITE = RED + GREEN + BLUE */
-+};
-+
-+static void e680led_led_set( enum led_brightness red, enum led_brightness green, enum led_brightness blue )
-+{
-+      printk( KERN_DEBUG "e680led_led_set: red=%d, green=%d, blue=%d", red, green, blue );
-+      unsigned int tempValue = 0;
-+      unsigned int value = 0;
-+      unsigned int stateIndex = 0;
-+      unsigned char gpio_red, gpio_green, ledr_en, ledg_en, ledr_ctrl, ledg_ctrl, ledr_i, ledg_i,skip;
-+
-+      stateIndex = ( ( blue << 2 ) | ( green << 1 ) | ( red ) )   & 0x7;
-+      printk( KERN_DEBUG "LED stateIndex is %d", stateIndex );
-+      gpio_red   = led_register_value[stateIndex].ind_GPIO_red    & 0x1;
-+      gpio_green = led_register_value[stateIndex].ind_GPIO_green  & 0x1;
-+      ledr_en    = led_register_value[stateIndex].pcap_LEDR_en    & 0x1;
-+      ledg_en    = led_register_value[stateIndex].pcap_LEDG_en    & 0x1;
-+      ledr_ctrl  = led_register_value[stateIndex].pcap_LEDR_CTRL  & 0xf;
-+      ledg_ctrl  = led_register_value[stateIndex].pcap_LEDG_CTRL  & 0xf;
-+      ledr_i     = led_register_value[stateIndex].pcap_LEDR_I     & 0x3;
-+      ledg_i     = led_register_value[stateIndex].pcap_LEDG_I     & 0x3;
-+      skip       = led_register_value[stateIndex].pcap_SKIP_on    & 0x1;
-+
-+      /* disable LEDs */
-+      if( ezx_pcap_read(SSP_PCAP_ADJ_PERIPH_REGISTER,&tempValue) != SSP_PCAP_SUCCESS )
-+      {
-+              printk( KERN_WARNING "LED PCAP Read Failed\n" );
-+              return;
-+      }
-+      tempValue &= (~SSP_PCAP_LED_MASK);
-+      if( ezx_pcap_write(SSP_PCAP_ADJ_PERIPH_REGISTER,tempValue) != SSP_PCAP_SUCCESS )
-+      {
-+              printk( KERN_WARNING "LED PCAP Write Failed (Clear Data)\n" );
-+              return;
-+      }
-+      
-+      /* configure GPIOs as output */
-+      pxa_gpio_mode(IND_CNTL_R_BUL | GPIO_OUT);
-+      pxa_gpio_mode(IND_CNTL_G_BUL | GPIO_OUT);
-+
-+      //FIXME: Simplify this logic
-+      if ( (gpio_green && gpio_red) )
-+      {
-+              /*Disable Red & Green signal*/
-+              set_GPIO(IND_CNTL_R_BUL); /*IND_CNTL_R_BUL Low active*/
-+              PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) | GPIO_bit(IND_CNTL_R_BUL);
-+              
-+              clr_GPIO(IND_CNTL_G_BUL); /*IND_CNTL_G_BUL High active*/
-+              PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) & (~GPIO_bit(IND_CNTL_G_BUL));
-+              
-+              printk( KERN_DEBUG "LED GPIO Green & Red Disable\n");
-+      } else if ( gpio_green && !gpio_red )
-+      {
-+              /*Green Disable, Red Enable*/
-+              clr_GPIO(IND_CNTL_R_BUL);
-+              PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) & (~GPIO_bit(IND_CNTL_R_BUL));
-+              
-+              clr_GPIO(IND_CNTL_G_BUL);
-+              PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) & (~GPIO_bit(IND_CNTL_G_BUL));
-+      
-+              printk( KERN_DEBUG "LED GPIO Green Disable, Red Enable\n");
-+      } else if (gpio_red && !gpio_green )
-+      {
-+              /*Red Disable, Green Enable*/
-+              set_GPIO(IND_CNTL_R_BUL);
-+              PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) | GPIO_bit(IND_CNTL_R_BUL);
-+              
-+              set_GPIO(IND_CNTL_G_BUL);
-+              PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) | GPIO_bit(IND_CNTL_G_BUL);
-+              printk( KERN_DEBUG "LED GPIO Red Disable, Green Enable");
-+      }else
-+      {
-+              /*Red & Green enable*/
-+              clr_GPIO(IND_CNTL_R_BUL);
-+              PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) & (~GPIO_bit(IND_CNTL_R_BUL));
-+              
-+              set_GPIO(IND_CNTL_G_BUL);
-+              PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) | GPIO_bit(IND_CNTL_G_BUL);
-+              printk( KERN_DEBUG "LED GPIO Red & Green Enable\n");
-+      }
-+      
-+      /* Write PCAP LED Peripheral Control Register*/
-+      value = ( ledr_en | (ledg_en <<1) | (ledr_ctrl <<2) | (ledg_ctrl <<6) |
-+              (ledr_i << 10) | (ledg_i <<12) | (skip <<14) ) & 0x7fff;
-+      tempValue |= (value <<SSP_PCAP_LED_SHIFT);
-+      
-+      if ( ezx_pcap_write(SSP_PCAP_ADJ_PERIPH_REGISTER,tempValue) == SSP_PCAP_SUCCESS )
-+      {
-+              printk( KERN_DEBUG "LED PCAP Write Success (0x%x :0x%x)\n",tempValue,value);
-+              old_red = red;
-+              old_green = green;
-+              old_blue = blue;
-+              return;
-+      } else {
-+              printk( KERN_DEBUG "LED PCAP Write Failed (State Change)\n");
-+              return;
-+      }
-+}
-+
-+static void e680led_red_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+      printk( KERN_DEBUG "e680led_red_set: %d\n", value );
-+      e680led_led_set( 1 && value, old_green, old_blue );
-+}
-+
-+static void e680led_green_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+      printk( KERN_DEBUG "e680led_green_set: %d\n", value );
-+      e680led_led_set( old_red, 1 && value, old_blue );
-+}
-+
-+static void e680led_blue_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+      printk( KERN_DEBUG "e680led_blue_set: %d\n", value );
-+      e680led_led_set( old_red, old_green, 1 && value );
-+}
-+
-+static struct led_classdev e680_red_led = {
-+      .name                   = "e680:red",
-+      .default_trigger        = "none",
-+      .brightness_set         = e680led_red_set,
-+};
-+
-+static struct led_classdev e680_green_led = {
-+      .name                   = "e680:green",
-+      .default_trigger        = "none",
-+      .brightness_set         = e680led_green_set,
-+};
-+
-+static struct led_classdev e680_blue_led = {
-+      .name                   = "e680:blue",
-+      .default_trigger        = "none",
-+      .brightness_set         = e680led_blue_set,
-+};
-+
-+#ifdef CONFIG_PM
-+static int e680led_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+      led_classdev_suspend(&e680_red_led);
-+      led_classdev_suspend(&e680_green_led);
-+      led_classdev_suspend(&e680_blue_led);
-+      return 0;
-+}
-+
-+static int e680led_resume(struct platform_device *dev)
-+{
-+      led_classdev_resume(&e680_red_led);
-+      led_classdev_resume(&e680_green_led);
-+      led_classdev_resume(&e680_blue_led);
-+      return 0;
-+}
-+#endif
-+
-+static int e680led_probe(struct platform_device *pdev)
-+{
-+      int ret;
-+
-+      ret = led_classdev_register(&pdev->dev, &e680_red_led);
-+      if (ret < 0)
-+              return ret;
-+
-+      ret = led_classdev_register(&pdev->dev, &e680_green_led);
-+      if (ret < 0)
-+              led_classdev_unregister(&e680_red_led);
-+
-+      ret = led_classdev_register(&pdev->dev, &e680_blue_led);
-+      if (ret < 0) {
-+              led_classdev_unregister(&e680_red_led);
-+              led_classdev_unregister(&e680_green_led);
-+      }
-+      return ret;
-+}
-+
-+static int e680led_remove(struct platform_device *pdev)
-+{
-+      led_classdev_unregister(&e680_red_led);
-+      led_classdev_unregister(&e680_green_led);
-+      led_classdev_unregister(&e680_blue_led);
-+      return 0;
-+}
-+
-+static struct platform_driver e680led_driver = {
-+      .probe          = e680led_probe,
-+      .remove         = e680led_remove,
-+#ifdef CONFIG_PM
-+      .suspend        = e680led_suspend,
-+      .resume         = e680led_resume,
-+#endif
-+      .driver         = {
-+              .name           = "e680-led",
-+      },
-+};
-+
-+static int __init e680led_init(void)
-+{
-+      return platform_driver_register(&e680led_driver);
-+}
-+
-+static void __exit e680led_exit(void)
-+{
-+      e680led_led_set( 0, 0, 0 );
-+      platform_driver_unregister(&e680led_driver);
-+}
-+
-+module_init(e680led_init);
-+module_exit(e680led_exit);
-+
-+MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
-+MODULE_DESCRIPTION("Motorola E680 LED driver");
-+MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-ezx/e680-leds-r1.patch b/packages/linux/linux-ezx/e680-leds-r1.patch
deleted file mode 100644 (file)
index abbab29..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~e680-leds-r0.patch    2006-06-06 17:14:06.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c       2006-06-06 17:23:14.000000000 +0200
-@@ -357,6 +357,17 @@
-       .num_resources  = ARRAY_SIZE(ezx_backlight_resources),
- };
-+#ifdef CONFIG_PXA_EZX_E680
-+/*
-+ * E680 LEDs
-+ */
-+static struct platform_device e680led_device = {
-+      .name           = "e680-led",
-+      .id             = -1,
-+};
-+#endif
-+
-+
- /* keyboard */
- #if defined(CONFIG_PXA_EZX_V700)
-@@ -766,6 +777,9 @@
- static struct platform_device *devices[] __initdata = {
-       &ezx_bp_device,
-+#ifdef CONFIG_PXA_EZX_E680
-+      &e680led_device,
-+#endif
- };
- static void __init
---- linux-2.6.16/drivers/leds/Kconfig~e680-leds-r0.patch       2006-06-06 17:14:05.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Kconfig  2006-06-06 17:23:14.000000000 +0200
-@@ -59,6 +59,13 @@
-         This option enables support for the LEDs on Sharp Zaurus
-         SL-6000 series.
-+config LEDS_E680
-+      tristate "LED Support for the Motorola E680(i) GSM Phone"
-+      depends LEDS_CLASS && PXA_EZX_E680
-+      help
-+        This options enables support for the LEDs on the
-+        Motorola E680(i) GSM Phone.
-+
- config LEDS_TRIGGER_TIMER
-       tristate "LED Timer Trigger"
-       depends LEDS_TRIGGERS
---- linux-2.6.16/drivers/leds/Makefile~e680-leds-r0.patch      2006-06-06 17:14:05.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Makefile 2006-06-06 17:23:14.000000000 +0200
-@@ -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_E680)               += leds-e680.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  2006-06-06 16:58:36.577045136 +0200
-+++ linux-2.6.16/drivers/leds/leds-e680.c      2006-06-06 17:55:46.000000000 +0200
-@@ -0,0 +1,307 @@
-+/*
-+ * EZX Platform LED Driver for the Motorola E680(i) GSM Phone
-+ *
-+ * Copyright 2006 Vanille-Media
-+ *
-+ * Author: Michael Lauer <mickey@Vanille.de>
-+ *
-+ * Based on the Motorola 2.4 leds-e680.c and leds-corgi.c by Richard Purdie
-+ *
-+ * 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/delay.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 <asm/arch/ezx-pcap.h>
-+
-+//FIXME move defines to a common header file
-+#define IND_CNTL_R_BUL     46
-+#define IND_CNTL_G_BUL     47
-+#define SSP_PCAP_LED_MASK  0x000fffe0
-+#define SSP_PCAP_LED_SHIFT 5
-+#define GPIO_TC_MM_EN      99
-+
-+static enum led_brightness old_red;
-+static enum led_brightness old_green;
-+static enum led_brightness old_blue;
-+
-+typedef struct {
-+      unsigned char ind_GPIO_red;    /*Indicator Red control GPIO 46: 0 active, 1 disactive*/
-+      unsigned char ind_GPIO_green;  /*Indicator Green control GPIO 47: 0 active, 1 disactive*/
-+      unsigned char pcap_LEDR_en;    /*pcap LEDR_EN bit value: 1 =Red LED(&Green) sink circuit enabled*/
-+      unsigned char pcap_LEDG_en;    /*pcap LEDG_EN bit value:1 =Green(->Blue)LED sink circuit enabled*/
-+      unsigned char pcap_LEDR_CTRL; /* 4bits Sets the timing for the red(&Green) LED sink circuit*/
-+      unsigned char pcap_LEDG_CTRL; /* 4bits Sets the timing for the GREEN (->Blue) LED sink circuit*/
-+      unsigned char pcap_LEDR_I;   /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDR*/
-+      unsigned char pcap_LEDG_I;   /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDG*/
-+      unsigned char pcap_SKIP_on;  /*1=The ON timing sequence defined by LEDx_CTRL is executed on every other cycle*/
-+} PCAP2_LED_REGISTER_VALUE;
-+
-+const PCAP2_LED_REGISTER_VALUE led_register_value[]=
-+{
-+  /*  on/off pulsepower  timing  intensity */
-+      {0x1,0x1, 0x0,0x0, 0x0,0x0, 0x0,0x0,0x0}, /* OFF */
-+      {0x0,0x1, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* RED */
-+      {0x1,0x0, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* GREEN */
-+      {0x0,0x0, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* ORANGE = RED + GREEN */
-+      {0x1,0x1, 0x0,0x1, 0x0,0xc, 0x0,0x0,0x0}, /* BLUE */
-+      {0x0,0x1, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* LIGHT_RED = RED + BLUE */
-+      {0x1,0x0, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* LIGHT_GREEN = GREEN + BLUE */
-+      {0x0,0x0, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* WHITE = RED + GREEN + BLUE */
-+};
-+
-+static void e680led_led_set( enum led_brightness red, enum led_brightness green, enum led_brightness blue )
-+{
-+      printk( KERN_DEBUG "e680led_led_set: red=%d, green=%d, blue=%d", red, green, blue );
-+      unsigned int tempValue = 0;
-+      unsigned int value = 0;
-+      unsigned int stateIndex = 0;
-+      unsigned char gpio_red, gpio_green, ledr_en, ledg_en, ledr_ctrl, ledg_ctrl, ledr_i, ledg_i,skip;
-+
-+      stateIndex = ( ( blue << 2 ) | ( green << 1 ) | ( red ) )   & 0x7;
-+      printk( KERN_DEBUG "LED stateIndex is %d", stateIndex );
-+      gpio_red   = led_register_value[stateIndex].ind_GPIO_red    & 0x1;
-+      gpio_green = led_register_value[stateIndex].ind_GPIO_green  & 0x1;
-+      ledr_en    = led_register_value[stateIndex].pcap_LEDR_en    & 0x1;
-+      ledg_en    = led_register_value[stateIndex].pcap_LEDG_en    & 0x1;
-+      ledr_ctrl  = led_register_value[stateIndex].pcap_LEDR_CTRL  & 0xf;
-+      ledg_ctrl  = led_register_value[stateIndex].pcap_LEDG_CTRL  & 0xf;
-+      ledr_i     = led_register_value[stateIndex].pcap_LEDR_I     & 0x3;
-+      ledg_i     = led_register_value[stateIndex].pcap_LEDG_I     & 0x3;
-+      skip       = led_register_value[stateIndex].pcap_SKIP_on    & 0x1;
-+
-+      /* disable LEDs */
-+      if( ezx_pcap_read(SSP_PCAP_ADJ_PERIPH_REGISTER,&tempValue) != SSP_PCAP_SUCCESS )
-+      {
-+              printk( KERN_WARNING "LED PCAP Read Failed\n" );
-+              return;
-+      }
-+      tempValue &= (~SSP_PCAP_LED_MASK);
-+      if( ezx_pcap_write(SSP_PCAP_ADJ_PERIPH_REGISTER,tempValue) != SSP_PCAP_SUCCESS )
-+      {
-+              printk( KERN_WARNING "LED PCAP Write Failed (Clear Data)\n" );
-+              return;
-+      }
-+      
-+      /* configure GPIOs as output */
-+      pxa_gpio_mode(IND_CNTL_R_BUL | GPIO_OUT);
-+      pxa_gpio_mode(IND_CNTL_G_BUL | GPIO_OUT);
-+
-+      //FIXME: Simplify this logic
-+      if ( (gpio_green && gpio_red) )
-+      {
-+              /*Disable Red & Green signal*/
-+              set_GPIO(IND_CNTL_R_BUL); /*IND_CNTL_R_BUL Low active*/
-+              PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) | GPIO_bit(IND_CNTL_R_BUL);
-+              
-+              clr_GPIO(IND_CNTL_G_BUL); /*IND_CNTL_G_BUL High active*/
-+              PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) & (~GPIO_bit(IND_CNTL_G_BUL));
-+              
-+              printk( KERN_DEBUG "LED GPIO Green & Red Disable\n");
-+      } else if ( gpio_green && !gpio_red )
-+      {
-+              /*Green Disable, Red Enable*/
-+              clr_GPIO(IND_CNTL_R_BUL);
-+              PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) & (~GPIO_bit(IND_CNTL_R_BUL));
-+              
-+              clr_GPIO(IND_CNTL_G_BUL);
-+              PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) & (~GPIO_bit(IND_CNTL_G_BUL));
-+      
-+              printk( KERN_DEBUG "LED GPIO Green Disable, Red Enable\n");
-+      } else if (gpio_red && !gpio_green )
-+      {
-+              /*Red Disable, Green Enable*/
-+              set_GPIO(IND_CNTL_R_BUL);
-+              PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) | GPIO_bit(IND_CNTL_R_BUL);
-+              
-+              set_GPIO(IND_CNTL_G_BUL);
-+              PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) | GPIO_bit(IND_CNTL_G_BUL);
-+              printk( KERN_DEBUG "LED GPIO Red Disable, Green Enable");
-+      }else
-+      {
-+              /*Red & Green enable*/
-+              clr_GPIO(IND_CNTL_R_BUL);
-+              PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) & (~GPIO_bit(IND_CNTL_R_BUL));
-+              
-+              set_GPIO(IND_CNTL_G_BUL);
-+              PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) | GPIO_bit(IND_CNTL_G_BUL);
-+              printk( KERN_DEBUG "LED GPIO Red & Green Enable\n");
-+      }
-+      
-+      /* Write PCAP LED Peripheral Control Register*/
-+      value = ( ledr_en | (ledg_en <<1) | (ledr_ctrl <<2) | (ledg_ctrl <<6) |
-+              (ledr_i << 10) | (ledg_i <<12) | (skip <<14) ) & 0x7fff;
-+      tempValue |= (value <<SSP_PCAP_LED_SHIFT);
-+      
-+      if ( ezx_pcap_write(SSP_PCAP_ADJ_PERIPH_REGISTER,tempValue) == SSP_PCAP_SUCCESS )
-+      {
-+              printk( KERN_DEBUG "LED PCAP Write Success (0x%x :0x%x)\n",tempValue,value);
-+              old_red = red;
-+              old_green = green;
-+              old_blue = blue;
-+              return;
-+      } else {
-+              printk( KERN_DEBUG "LED PCAP Write Failed (State Change)\n");
-+              return;
-+      }
-+}
-+
-+static void e680led_red_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+      printk( KERN_DEBUG "e680led_red_set: %d\n", value );
-+      e680led_led_set( 1 && value, old_green, old_blue );
-+}
-+
-+static void e680led_green_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+      printk( KERN_DEBUG "e680led_green_set: %d\n", value );
-+      e680led_led_set( old_red, 1 && value, old_blue );
-+}
-+
-+static void e680led_blue_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+      printk( KERN_DEBUG "e680led_blue_set: %d\n", value );
-+      e680led_led_set( old_red, old_green, 1 && value );
-+}
-+
-+static void e680led_keypad_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+      /* this is not working yet, as there is something else missing */
-+#if 0
-+      printk( KERN_DEBUG "e680led_keypad_set: %d\n", value );
-+
-+      pxa_gpio_mode(GPIO_TC_MM_EN);
-+      GPDR(GPIO_TC_MM_EN)   |= GPIO_bit(GPIO_TC_MM_EN);
-+      GPSR(GPIO_TC_MM_EN)   = GPIO_bit(GPIO_TC_MM_EN);
-+
-+      udelay( 100 );
-+
-+    if ( value ) {
-+              GPCR(GPIO_TC_MM_EN)   = GPIO_bit(GPIO_TC_MM_EN);
-+              PGSR3 &= ~GPIO_bit(GPIO_TC_MM_EN);
-+    } else {
-+              GPSR(GPIO_TC_MM_EN)   = GPIO_bit(GPIO_TC_MM_EN);
-+              PGSR3 |= GPIO_bit(GPIO_TC_MM_EN);
-+    }
-+#endif
-+}
-+
-+static struct led_classdev e680_red_led = {
-+      .name                   = "e680:red",
-+      .default_trigger        = "none",
-+      .brightness_set         = e680led_red_set,
-+};
-+
-+static struct led_classdev e680_green_led = {
-+      .name                   = "e680:green",
-+      .default_trigger        = "none",
-+      .brightness_set         = e680led_green_set,
-+};
-+
-+static struct led_classdev e680_blue_led = {
-+      .name                   = "e680:blue",
-+      .default_trigger        = "none",
-+      .brightness_set         = e680led_blue_set,
-+};
-+
-+static struct led_classdev e680_keypad_led = {
-+      .name                   = "e680:keypad",
-+      .default_trigger        = "none",
-+      .brightness_set         = e680led_keypad_set,
-+};
-+
-+#ifdef CONFIG_PM
-+static int e680led_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+      led_classdev_suspend(&e680_red_led);
-+      led_classdev_suspend(&e680_green_led);
-+      led_classdev_suspend(&e680_blue_led);
-+      led_classdev_suspend(&e680_keypad_led);
-+      return 0;
-+}
-+
-+static int e680led_resume(struct platform_device *dev)
-+{
-+      led_classdev_resume(&e680_red_led);
-+      led_classdev_resume(&e680_green_led);
-+      led_classdev_resume(&e680_blue_led);
-+      led_classdev_resume(&e680_keypad_led);
-+      return 0;
-+}
-+#endif
-+
-+static int e680led_probe(struct platform_device *pdev)
-+{
-+      int ret;
-+
-+      ret = led_classdev_register(&pdev->dev, &e680_red_led);
-+      if (ret < 0)
-+              return ret;
-+
-+      ret = led_classdev_register(&pdev->dev, &e680_green_led);
-+      if (ret < 0)
-+              led_classdev_unregister(&e680_red_led);
-+
-+      ret = led_classdev_register(&pdev->dev, &e680_blue_led);
-+      if (ret < 0) {
-+              led_classdev_unregister(&e680_red_led);
-+              led_classdev_unregister(&e680_green_led);
-+      }
-+      
-+      ret = led_classdev_register(&pdev->dev, &e680_keypad_led);
-+      if (ret < 0) {
-+              led_classdev_unregister(&e680_red_led);
-+              led_classdev_unregister(&e680_green_led);
-+              led_classdev_unregister(&e680_blue_led);
-+      }
-+      return ret;
-+}
-+
-+static int e680led_remove(struct platform_device *pdev)
-+{
-+      led_classdev_unregister(&e680_red_led);
-+      led_classdev_unregister(&e680_green_led);
-+      led_classdev_unregister(&e680_blue_led);
-+      led_classdev_unregister(&e680_keypad_led);
-+      return 0;
-+}
-+
-+static struct platform_driver e680led_driver = {
-+      .probe          = e680led_probe,
-+      .remove         = e680led_remove,
-+#ifdef CONFIG_PM
-+      .suspend        = e680led_suspend,
-+      .resume         = e680led_resume,
-+#endif
-+      .driver         = {
-+              .name           = "e680-led",
-+      },
-+};
-+
-+static int __init e680led_init(void)
-+{
-+      return platform_driver_register(&e680led_driver);
-+}
-+
-+static void __exit e680led_exit(void)
-+{
-+      e680led_led_set( 0, 0, 0 );
-+      platform_driver_unregister(&e680led_driver);
-+}
-+
-+module_init(e680led_init);
-+module_exit(e680led_exit);
-+
-+MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
-+MODULE_DESCRIPTION("Motorola E680 LED driver");
-+MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-ezx/ezx-backlight-r0.patch b/packages/linux/linux-ezx/ezx-backlight-r0.patch
deleted file mode 100644 (file)
index db91730..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~ezx-backlight-r0.patch        2006-06-07 16:00:29.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c       2006-06-07 16:21:09.000000000 +0200
-@@ -344,17 +344,12 @@
-       .pxafb_lcd_power        = &pxafb_lcd_power,
- };
--
--/* backlight for lcd */
--
--static struct resource ezx_backlight_resources[] = {
--};
--
--static struct platform_device ezx_backlight_device = {
--      .name           = "ezx-lcd-backlight",
-+/*
-+ * EZX LCD Backlight
-+ */
-+static struct platform_device ezxbacklight_device = {
-+      .name           = "ezx-bl",
-       .id             = -1,
--      .resource       = ezx_backlight_resources,
--      .num_resources  = ARRAY_SIZE(ezx_backlight_resources),
- };
- #ifdef CONFIG_PXA_EZX_E680
-@@ -786,6 +781,7 @@
- static struct platform_device *devices[] __initdata = {
-       &ezx_bp_device,
-+      &ezxbacklight_device,
- #ifdef CONFIG_PXA_EZX_E680
-       &e680led_device,
- #endif
---- linux-2.6.16/drivers/video/backlight/Kconfig~ezx-backlight-r0.patch        2006-06-07 16:00:28.000000000 +0200
-+++ linux-2.6.16/drivers/video/backlight/Kconfig       2006-06-07 16:00:30.000000000 +0200
-@@ -58,3 +58,12 @@
-         If you have a HP Jornada 680, say y to enable the
-         backlight driver.
-+config BACKLIGHT_EZX
-+      tristate "Motorola EXZ Backlight Driver (A780/E680/E680i)"
-+      depends on BACKLIGHT_DEVICE && PXA_EZX
-+      default y
-+      help
-+        If you have a Motorola A780 or E680(i), say y to enable the
-+        backlight driver.
-+
-+
---- linux-2.6.16/drivers/video/backlight/Makefile~ezx-backlight-r0.patch       2006-03-20 06:53:29.000000000 +0100
-+++ linux-2.6.16/drivers/video/backlight/Makefile      2006-06-07 16:00:30.000000000 +0200
-@@ -5,3 +5,5 @@
- obj-$(CONFIG_BACKLIGHT_CORGI) += corgi_bl.o
- obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o
- obj-$(CONFIG_SHARP_LOCOMO)    += locomolcd.o
-+obj-$(CONFIG_BACKLIGHT_EZX)   += ezx_bl.o
-+
---- /dev/null  2006-06-07 15:54:31.503752232 +0200
-+++ linux-2.6.16/drivers/video/backlight/ezx_bl.c      2006-06-07 16:51:14.000000000 +0200
-@@ -0,0 +1,148 @@
-+/*
-+ * Backlight Driver for Motorola A780 and E680(i) GSM Phones.
-+ *
-+ * 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/module.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/spinlock.h>
-+#include <linux/fb.h>
-+#include <linux/backlight.h>
-+
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/ezx.h>
-+
-+#define EZX_MAX_INTENSITY      50
-+#define EZX_DEFAULT_INTENSITY  25
-+
-+static spinlock_t bl_lock = SPIN_LOCK_UNLOCKED;
-+static struct backlight_properties ezxbl_data;
-+static struct backlight_device *ezx_backlight_device;
-+static int current_intensity;
-+
-+static int ezx_send_intensity(struct backlight_device *bd)
-+{
-+      unsigned long flags;
-+      int intensity = bd->props->brightness;
-+
-+      printk( KERN_DEBUG "ezx_set_intensity to %d", intensity );
-+
-+      if (bd->props->power != FB_BLANK_UNBLANK)
-+              intensity = 0;
-+      if (bd->props->fb_blank != FB_BLANK_UNBLANK)
-+              intensity = 0;
-+
-+      spin_lock_irqsave(&bl_lock, flags);
-+
-+      PWM_CTRL0 = 2; /* pre-scaler */
-+      PWM_PWDUTY0 = intensity; /* duty cycle */
-+      PWM_PERVAL0 = 49; /* period */
-+
-+      if (intensity) {
-+                      //pxa_set_cken(CKEN0_PWM0, 1);
-+                      //FIXME: Set PWM0 GPIO as output
-+      } else {
-+                      //pxa_set_cken(CKEN0_PWM0, 0);
-+                      //FIXME: Set PWM0 GPIO as input
-+      }
-+
-+      spin_unlock_irqrestore(&bl_lock, flags);
-+      current_intensity = intensity;
-+      return 0;
-+}
-+
-+static int ezx_get_intensity(struct backlight_device *bd)
-+{
-+      return current_intensity;
-+}
-+
-+static int ezx_set_intensity(struct backlight_device *bd)
-+{
-+      return ezx_send_intensity(ezx_backlight_device);
-+}
-+
-+#ifdef CONFIG_PM
-+static int ezx_bl_suspend(struct platform_device *pdev, pm_message_t state)
-+{
-+      //set suspend flag
-+      ezx_set_intensity(ezx_backlight_device);
-+      return 0;
-+}
-+
-+static int ezx_bl_resume(struct platform_device *pdev)
-+{
-+      // set resume flag
-+      ezx_set_intensity(ezx_backlight_device);
-+      return 0;
-+}
-+#else
-+#define ezx_bl_suspend        NULL
-+#define ezx_bl_resume NULL
-+#endif
-+
-+static struct backlight_properties ezx_bl_data = {
-+      .owner          = THIS_MODULE,
-+      .get_brightness = ezx_get_intensity,
-+      .max_brightness = EZX_MAX_INTENSITY,
-+      .update_status  = ezx_set_intensity,
-+};
-+
-+static int __init ezx_bl_probe(struct platform_device *pdev)
-+{
-+      ezx_backlight_device = backlight_device_register ("ezx-bl",
-+              NULL, &ezx_bl_data);
-+      if (IS_ERR (ezx_backlight_device))
-+              return PTR_ERR (ezx_backlight_device);
-+
-+      //ezx_bl_data.requested_brightness = EZX_DEFAULT_INTENSITY;
-+      //ezx_bl_data.requested_power = FB_BLANK_UNBLANK;
-+      //ezx_set_intensity(ezx_backlight_device, ezx_bl_data.requested_brightness);
-+
-+      printk("EZX Backlight Driver Initialized.\n");
-+      return 0;
-+}
-+
-+static int ezx_bl_remove(struct platform_device *pdev)
-+{
-+      backlight_device_unregister(ezx_backlight_device);
-+
-+      printk("EZX Backlight Driver Unloaded.\n");
-+      return 0;
-+}
-+
-+static struct platform_driver ezx_bl_driver = {
-+      .probe          = ezx_bl_probe,
-+      .remove         = ezx_bl_remove,
-+      .suspend        = ezx_bl_suspend,
-+      .resume         = ezx_bl_resume,
-+      .driver         = {
-+              .name           = "ezx-bl",
-+      },
-+};
-+
-+static int __init ezx_bl_init(void)
-+{
-+      return platform_driver_register(&ezx_bl_driver);
-+}
-+
-+static void __exit ezx_bl_exit(void)
-+{
-+      platform_driver_unregister(&ezx_bl_driver);
-+}
-+
-+module_init(ezx_bl_init);
-+module_exit(ezx_bl_exit);
-+
-+MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
-+MODULE_DESCRIPTION("Backlight Driver for Motorola A780|E680(i)");
-+MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-ezx/ezx-backlight-r1.patch b/packages/linux/linux-ezx/ezx-backlight-r1.patch
deleted file mode 100644 (file)
index a277f19..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~ezx-backlight-r1.patch        2006-06-08 19:33:36.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c       2006-06-08 19:33:37.000000000 +0200
-@@ -274,34 +274,9 @@
-       .udc_command            = ezx_udc_command,
- };
--/* pxafb */
--
--#define BKLIGHT_PRESCALE      2
--#define BKLIGHT_PERIOD                49
--#define DEFAULT_DUTYCYCLE     25
--#define MAX_DUTYCYCLE         (BKLIGHT_PERIOD+1)
--#define MIN_DUTYCYCLE         0
--
--static void pxafb_backlight_power(int on)
--{
--      if (on) {
--              CKEN |= CKEN0_PWM0;
--              PWM_CTRL0 = BKLIGHT_PRESCALE;
--              PWM_PERVAL0 = BKLIGHT_PERIOD;
--              PWM_PWDUTY0 = DEFAULT_DUTYCYCLE;
--
--              GPDR0 |= 0x00010000; //PWM0 is GPIO16
--              pxa_gpio_mode(GPIO16_PWM0_MD);
--      } else {
--              PWM_PWDUTY0 = 0;
--              GAFR0_U &= 0xfffffffc;
--              GPDR0 &= 0xfffeffff; /* set gpio16 (pwm0) as input */
--              CKEN &= ~CKEN0_PWM0;
--              PWM_PWDUTY0 = MIN_DUTYCYCLE;
--      }
--}
--
--//#define mdelay(x) udelay((x)*1000)
-+/*
-+ * EZX PXA Framebuffer
-+ */
- static void pxafb_lcd_power(int on)
- {
-@@ -326,35 +301,24 @@
-       .xres           = 240,
-       .yres           = 320,
-       .bpp            = 16,
--
-       .hsync_len      = 10,
-       .left_margin    = 20,
-       .right_margin   = 10,
--
-       .vsync_len      = 2,
-       .upper_margin   = 3,
-       .lower_margin   = 2,
--
-       .sync           = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
--
-       .lccr0          = 0x002008F8,
-       .lccr3          = 0x0430FF09,
--
--      .pxafb_backlight_power  = &pxafb_backlight_power,
--      .pxafb_lcd_power        = &pxafb_lcd_power,
--};
--
--
--/* backlight for lcd */
--
--static struct resource ezx_backlight_resources[] = {
-+      .pxafb_lcd_power= &pxafb_lcd_power,
- };
--static struct platform_device ezx_backlight_device = {
--      .name           = "ezx-lcd-backlight",
-+/*
-+ * EZX LCD Backlight
-+ */
-+static struct platform_device ezxbacklight_device = {
-+      .name           = "ezx-bl",
-       .id             = -1,
--      .resource       = ezx_backlight_resources,
--      .num_resources  = ARRAY_SIZE(ezx_backlight_resources),
- };
- #ifdef CONFIG_PXA_EZX_E680
-@@ -786,6 +750,7 @@
- static struct platform_device *devices[] __initdata = {
-       &ezx_bp_device,
-+      &ezxbacklight_device,
- #ifdef CONFIG_PXA_EZX_E680
-       &e680led_device,
- #endif
---- linux-2.6.16/drivers/video/backlight/Kconfig~ezx-backlight-r1.patch        2006-06-08 19:33:34.000000000 +0200
-+++ linux-2.6.16/drivers/video/backlight/Kconfig       2006-06-08 19:33:37.000000000 +0200
-@@ -58,3 +58,12 @@
-         If you have a HP Jornada 680, say y to enable the
-         backlight driver.
-+config BACKLIGHT_EZX
-+      tristate "Motorola EXZ Backlight Driver (A780/E680/E680i)"
-+      depends on BACKLIGHT_DEVICE && PXA_EZX
-+      default y
-+      help
-+        If you have a Motorola A780 or E680(i), say y to enable the
-+        backlight driver.
-+
-+
---- linux-2.6.16/drivers/video/backlight/Makefile~ezx-backlight-r1.patch       2006-03-20 06:53:29.000000000 +0100
-+++ linux-2.6.16/drivers/video/backlight/Makefile      2006-06-08 19:33:37.000000000 +0200
-@@ -5,3 +5,5 @@
- obj-$(CONFIG_BACKLIGHT_CORGI) += corgi_bl.o
- obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o
- obj-$(CONFIG_SHARP_LOCOMO)    += locomolcd.o
-+obj-$(CONFIG_BACKLIGHT_EZX)   += ezx_bl.o
-+
---- /dev/null  2006-06-08 19:04:31.354926880 +0200
-+++ linux-2.6.16/drivers/video/backlight/ezx_bl.c      2006-06-08 20:52:33.000000000 +0200
-@@ -0,0 +1,156 @@
-+/*
-+ * Backlight Driver for Motorola A780 and E680(i) GSM Phones.
-+ *
-+ * 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/module.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/spinlock.h>
-+#include <linux/fb.h>
-+#include <linux/backlight.h>
-+
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/ezx.h>
-+
-+#define EZX_MIN_INTENSITY      00
-+#define EZX_MAX_INTENSITY      50
-+#define EZX_DEFAULT_INTENSITY  25
-+
-+static spinlock_t bl_lock = SPIN_LOCK_UNLOCKED;
-+static struct backlight_device *ezx_backlight_device;
-+static int last_intensity;
-+
-+static int ezxbl_send_intensity(struct backlight_device *bd)
-+{
-+      unsigned long flags;
-+      int intensity = bd->props->brightness;
-+
-+      printk( KERN_DEBUG "ezx_set_intensity to %d\n", intensity );
-+
-+      if (bd->props->power != FB_BLANK_UNBLANK)
-+              intensity = 0;
-+      if (bd->props->fb_blank != FB_BLANK_UNBLANK)
-+              intensity = 0;
-+
-+      spin_lock_irqsave(&bl_lock, flags);
-+
-+      printk( KERN_DEBUG "backlight last intensity was %d, new intensity is %d\n", last_intensity, intensity );
-+      
-+      if ( !last_intensity && intensity ) {
-+              printk( KERN_DEBUG "backlight power ON\n" );
-+              PWM_CTRL0 = 2; /* pre-scaler */
-+              PWM_PWDUTY0 = intensity; /* duty cycle */
-+              PWM_PERVAL0 = 49; /* period */
-+              pxa_gpio_mode(GPIO16_PWM0_MD); /* set GPIO16 as alternate function + output */
-+              pxa_set_cken(CKEN0_PWM0, 1); /* clock enable */
-+      }
-+      else if ( last_intensity && !intensity ) {
-+              printk( KERN_DEBUG "backlight power OFF\n" );
-+              PWM_PWDUTY0 = 0;
-+              GAFR0_U &= 0xFFFFFFFC; /* ??? */
-+              pxa_set_cken(CKEN0_PWM0, 0); /* clock disable */
-+              pxa_gpio_mode(GPIO16_PWM0); /* set GPIO16 as input */
-+      } else if ( last_intensity && intensity ) {
-+              printk( KERN_DEBUG "backlight adjusting duty cycle\n" );
-+              PWM_PWDUTY0 = intensity; /* duty cycle */
-+      }
-+      spin_unlock_irqrestore(&bl_lock, flags);
-+      last_intensity = intensity;
-+      return 0;
-+}
-+
-+static int ezxbl_get_intensity(struct backlight_device *bd)
-+{
-+      return last_intensity;
-+}
-+
-+static int ezxbl_set_intensity(struct backlight_device *bd)
-+{
-+      return ezxbl_send_intensity(ezx_backlight_device);
-+}
-+
-+#ifdef CONFIG_PM
-+static int ezxbl_suspend(struct platform_device *pdev, pm_message_t state)
-+{
-+      //set suspend flag
-+      ezxbl_set_intensity(ezx_backlight_device);
-+      return 0;
-+}
-+
-+static int ezxbl_resume(struct platform_device *pdev)
-+{
-+      // set resume flag
-+      ezxbl_set_intensity(ezx_backlight_device);
-+      return 0;
-+}
-+#else
-+#define ezxbl_suspend NULL
-+#define ezxbl_resume  NULL
-+#endif
-+
-+static struct backlight_properties ezxbl_data = {
-+      .owner          = THIS_MODULE,
-+      .get_brightness = ezxbl_get_intensity,
-+      .max_brightness = EZX_MAX_INTENSITY,
-+      .update_status  = ezxbl_set_intensity,
-+};
-+
-+static int __init ezxbl_probe(struct platform_device *pdev)
-+{
-+      ezx_backlight_device = backlight_device_register ("ezx-bl",
-+              NULL, &ezxbl_data);
-+      if (IS_ERR (ezx_backlight_device))
-+              return PTR_ERR (ezx_backlight_device);
-+
-+      ezxbl_data.power = FB_BLANK_UNBLANK;
-+      ezxbl_data.brightness = EZX_DEFAULT_INTENSITY;
-+      ezxbl_set_intensity(ezx_backlight_device);
-+
-+      printk("EZX Backlight Driver Initialized.\n");
-+      return 0;
-+}
-+
-+static int ezxbl_remove(struct platform_device *pdev)
-+{
-+      backlight_device_unregister(ezx_backlight_device);
-+
-+      printk("EZX Backlight Driver Unloaded.\n");
-+      return 0;
-+}
-+
-+static struct platform_driver ezxbl_driver = {
-+      .probe          = ezxbl_probe,
-+      .remove         = ezxbl_remove,
-+      .suspend        = ezxbl_suspend,
-+      .resume         = ezxbl_resume,
-+      .driver         = {
-+              .name           = "ezx-bl",
-+      },
-+};
-+
-+static int __init ezxbl_init(void)
-+{
-+      return platform_driver_register(&ezxbl_driver);
-+}
-+
-+static void __exit ezxbl_exit(void)
-+{
-+      platform_driver_unregister(&ezxbl_driver);
-+}
-+
-+module_init(ezxbl_init);
-+module_exit(ezxbl_exit);
-+
-+MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
-+MODULE_DESCRIPTION("Backlight Driver for Motorola A780|E680(i)");
-+MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-ezx/pxakbd-fix-directkeys.patch b/packages/linux/linux-ezx/pxakbd-fix-directkeys.patch
deleted file mode 100644 (file)
index 1dedb98..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/drivers/input/keyboard/pxakbd.c~pxakbd-fix-directkeys.patch   2006-06-11 00:47:25.000000000 +0200
-+++ linux-2.6.16/drivers/input/keyboard/pxakbd.c       2006-06-12 16:10:03.000000000 +0200
-@@ -20,7 +20,7 @@
- #include <asm/arch/irqs.h>
- #include <asm/arch/pxa-regs.h>
--#if 0
-+#if 1
- #define DEBUGP(x, args ...) printk(x, ## args)
- #else
- #define DEBUGP(x, args ...)
-@@ -44,8 +44,7 @@
-       unsigned int i;
-       int num_pressed = 0;
--      kpdk = KPDK & 0x0000000f;
--
-+      kpdk = KPDK & 0x000000ff;
-       for (i = 0; i < pxakbd->pd->direct.num; i++) {
-               int pressed = 0;
-@@ -54,11 +53,12 @@
-                       num_pressed++;
-                       DEBUGP("pxakbd: pressed: direct %u\n", i);
-               }
--
--              input_report_key(pxakbd->input, pxakbd->pd->direct.keycode[i],
--                               pressed);
-+              if (pxakbd->pd->direct.keycode[i] != KEY_RESERVED) {
-+                      DEBUGP( "pxakbd: sending to input layer: keycode = %d, pressed = %d\n", pxakbd->pd->direct.keycode[i], pressed );
-+                      input_report_key(pxakbd->input, pxakbd->pd->direct.keycode[i],
-+                      pressed);
-+              }
-       }
--
-       return num_pressed;
- }
-@@ -248,16 +248,6 @@
-               set_bit(pxakbd->pd->matrix.keycode[i], input_dev->keybit);
-       clear_bit(0, input_dev->keybit);
--#if 0
--      input_dev2->evbit[0] = ;
--      input_dev2->keycode = pxakbd->pd->direct.keycode;
--      input_dev2->keycodesize = sizeof(unsigned char);
--      input_dev2->keycodemax = pxakbd->pd->direct.num;
--
--      for (i = 0; i < input_dev2->keycodemax; i++)
--              set_bit(ezxkbd->keycode[i], input_dev2->keybit);
--#endif
--
-       if (request_irq(pxakbd->irq, pxakbd_interrupt, 0, "pxakbd", pxakbd)) {
-               printk(KERN_ERR "pxakbd: can't request irq %d\n", pxakbd->irq);
-               ret = -EBUSY;
-@@ -279,6 +269,7 @@
-               KPC_ME | KPC_DE |   /* matrix and direct keypad enabled */
-               ((pxakbd->pd->matrix.cols-1)<<23) | /* columns */
-               ((pxakbd->pd->matrix.rows-1)<<26) | /* rows */
-+              ((pxakbd->pd->direct.num-1)<<6) | /* direct keys */
-               KPC_MS_ALL); /* scan all columns */
-       pxa_set_cken(CKEN19_KEYPAD, 1);
-@@ -375,13 +366,11 @@
- static int pxakbd_remove(struct platform_device *pdev)
- {
-       struct pxakbd *pxakbd = platform_get_drvdata(pdev);
--
-+      input_unregister_device(pxakbd->input);
-       platform_set_drvdata(pdev, NULL);
-       release_resource(pxakbd->res);
-       free_irq(pxakbd->irq, pxakbd);
--      input_unregister_device(pxakbd->input);
-       kfree(pxakbd);
--
-       return 0;
- }
diff --git a/packages/linux/linux-ezx/touchscreen-fix-r0.patch b/packages/linux/linux-ezx/touchscreen-fix-r0.patch
deleted file mode 100644 (file)
index 7d19a88..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/drivers/input/touchscreen/pcap_ts.c~touchscreen-fix-r0        2006-05-30 23:18:22.000000000 +0200
-+++ linux-2.6.16/drivers/input/touchscreen/pcap_ts.c   2006-05-30 23:29:34.000000000 +0200
-@@ -126,10 +126,7 @@
-       if (ret < 0)
-               return ret;
--      if (tmp & 0x00400000)
--              return -EIO;
--
--      if (pcap_ts->read_state == COORDINATE) {
-+      if (pcap_ts->read_state == COORDINATE && !(tmp & 0x00400000)) {
-               pcap_ts->x = (tmp & SSP_PCAP_ADD1_VALUE_MASK);
-               pcap_ts->y = (tmp & SSP_PCAP_ADD2_VALUE_MASK)
-                                               >>SSP_PCAP_ADD2_VALUE_SHIFT;