linux-smdk2440_2.6.20+git : add a new version updated to 2.6.21-rc6+asoc
authorGraeme Gregory <dp@xora.org.uk>
Fri, 6 Apr 2007 15:01:37 +0000 (15:01 +0000)
committerGraeme Gregory <dp@xora.org.uk>
Fri, 6 Apr 2007 15:01:37 +0000 (15:01 +0000)
remove older versions that are in various states of disrepair.

packages/linux/linux-smdk2440-2.6.19/.mtn2git_empty [deleted file]
packages/linux/linux-smdk2440-2.6.19/smdk2440-touchscreen-r2.patch [deleted file]
packages/linux/linux-smdk2440-2.6.20+git/.mtn2git_empty [new file with mode: 0644]
packages/linux/linux-smdk2440-2.6.20+git/0001-Enable-cs8900A-network-device-for-smdk2440-board.patch [new file with mode: 0644]
packages/linux/linux-smdk2440/defconfig-smdk2440
packages/linux/linux-smdk2440/smdk2440-touchscreen-r3.patch [deleted file]
packages/linux/linux-smdk2440_2.6.19.bb [deleted file]
packages/linux/linux-smdk2440_2.6.20+git.bb [new file with mode: 0644]

diff --git a/packages/linux/linux-smdk2440-2.6.19/.mtn2git_empty b/packages/linux/linux-smdk2440-2.6.19/.mtn2git_empty
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/packages/linux/linux-smdk2440-2.6.19/smdk2440-touchscreen-r2.patch b/packages/linux/linux-smdk2440-2.6.19/smdk2440-touchscreen-r2.patch
deleted file mode 100644 (file)
index d785cb8..0000000
+++ /dev/null
@@ -1,532 +0,0 @@
-Index: linux-2.6.19/drivers/input/touchscreen/s3c2410_ts.c
-===================================================================
---- /dev/null
-+++ linux-2.6.19/drivers/input/touchscreen/s3c2410_ts.c
-@@ -0,0 +1,351 @@
-+/*
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org>
-+ * iPAQ H1940 touchscreen support
-+ *
-+ * ChangeLog
-+ *
-+ * 2004-09-05: Herbert Pötzl <herbert@13thfloor.at>
-+ *    - added clock (de-)allocation code
-+ *
-+ * 2005-03-06: Arnaud Patard <arnaud.patard@rtp-net.org>
-+ *      - h1940_ -> s3c2410 (this driver is now also used on the n30
-+ *        machines :P)
-+ *      - Debug messages are now enabled with the config option
-+ *        TOUCHSCREEN_S3C2410_DEBUG
-+ *      - Changed the way the value are read
-+ *      - Input subsystem should now work
-+ *      - Use ioremap and readl/writel
-+ *
-+ * 2005-03-23: Arnaud Patard <arnaud.patard@rtp-net.org>
-+ *      - Make use of some undocumented features of the touchscreen
-+ *        controller
-+ *
-+ */
-+
-+#include <linux/errno.h>
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/slab.h>
-+#include <linux/input.h>
-+#include <linux/init.h>
-+#include <linux/serio.h>
-+#include <linux/delay.h>
-+#include <linux/platform_device.h>
-+#include <linux/clk.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+
-+#include <asm/arch/regs-adc.h>
-+#include <asm/arch/regs-gpio.h>
-+#include <asm/arch/ts.h>
-+
-+/* For ts.dev.id.version */
-+#define S3C2410TSVERSION      0x0101
-+
-+#define WAIT4INT(x)  (((x)<<8) | \
-+                   S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
-+                   S3C2410_ADCTSC_XY_PST(3))
-+
-+#define AUTOPST            (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
-+                   S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0))
-+
-+#define DEBUG_LVL    KERN_DEBUG
-+
-+MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>");
-+MODULE_DESCRIPTION("s3c2410 touchscreen driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Definitions & global arrays.
-+ */
-+
-+
-+static char *s3c2410ts_name = "s3c2410 TouchScreen";
-+
-+/*
-+ * Per-touchscreen data.
-+ */
-+
-+struct s3c2410ts {
-+      struct input_dev *dev;
-+      long xp;
-+      long yp;
-+      int count;
-+      int shift;
-+};
-+
-+static struct s3c2410ts ts;
-+static void __iomem *base_addr;
-+
-+static inline void s3c2410_ts_connect(void)
-+{
-+      s3c2410_gpio_cfgpin(S3C2410_GPG12, S3C2410_GPG12_XMON);
-+      s3c2410_gpio_cfgpin(S3C2410_GPG13, S3C2410_GPG13_nXPON);
-+      s3c2410_gpio_cfgpin(S3C2410_GPG14, S3C2410_GPG14_YMON);
-+      s3c2410_gpio_cfgpin(S3C2410_GPG15, S3C2410_GPG15_nYPON);
-+}
-+
-+static void touch_timer_fire(unsigned long data)
-+{
-+      unsigned long data0;
-+      unsigned long data1;
-+      int updown;
-+
-+      data0 = readl(base_addr+S3C2410_ADCDAT0);
-+      data1 = readl(base_addr+S3C2410_ADCDAT1);
-+
-+      updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));
-+
-+      if (updown) {
-+              if (ts.count != 0) {
-+                      ts.xp >>= ts.shift;
-+                      ts.yp >>= ts.shift;
-+
-+#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
-+                      {
-+                              struct timeval tv;
-+                              do_gettimeofday(&tv);
-+                              printk(DEBUG_LVL "T: %06d, X: %03ld, Y: %03ld\n", (int)tv.tv_usec, ts.xp, ts.yp);
-+                      }
-+#endif
-+
-+                      input_report_abs(ts.dev, ABS_Y, ts.xp);
-+                      input_report_abs(ts.dev, ABS_X, ts.yp);
-+
-+                      input_report_key(ts.dev, BTN_TOUCH, 1);
-+                      input_report_abs(ts.dev, ABS_PRESSURE, 1);
-+                      input_sync(ts.dev);
-+              }
-+
-+              ts.count = 0;
-+
-+              writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC);
-+              writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON);
-+      } else {
-+              ts.count = 0;
-+
-+              input_report_abs(ts.dev, ABS_Y, ts.xp);
-+              input_report_abs(ts.dev, ABS_X, ts.yp);
-+      
-+              input_report_key(ts.dev, BTN_TOUCH, 0);
-+              input_report_abs(ts.dev, ABS_PRESSURE, 0);
-+              input_sync(ts.dev);
-+
-+              writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
-+      }
-+}
-+
-+static struct timer_list touch_timer =
-+              TIMER_INITIALIZER(touch_timer_fire, 0, 0);
-+
-+static irqreturn_t stylus_updown(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+      unsigned long data0;
-+      unsigned long data1;
-+      int updown;
-+
-+      data0 = readl(base_addr+S3C2410_ADCDAT0);
-+      data1 = readl(base_addr+S3C2410_ADCDAT1);
-+
-+      updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));
-+
-+      /* TODO we should never get an interrupt with updown set while
-+       * the timer is running, but maybe we ought to verify that the
-+       * timer isn't running anyways. */
-+
-+      if (updown)
-+              touch_timer_fire(0);
-+
-+      return IRQ_HANDLED;
-+}
-+
-+
-+static irqreturn_t stylus_action(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+      unsigned long data0;
-+      unsigned long data1;
-+
-+      data0 = readl(base_addr+S3C2410_ADCDAT0);
-+      data1 = readl(base_addr+S3C2410_ADCDAT1);
-+
-+      ts.xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK;
-+      ts.yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK;
-+      ts.count++;
-+
-+        if (ts.count < (1<<ts.shift)) {
-+              writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC);
-+              writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON);
-+      } else {
-+              mod_timer(&touch_timer, jiffies+1);
-+              writel(WAIT4INT(1), base_addr+S3C2410_ADCTSC);
-+      }
-+
-+      return IRQ_HANDLED;
-+}
-+
-+static struct clk     *adc_clock;
-+
-+/*
-+ * The functions for inserting/removing us as a module.
-+ */
-+
-+static int __init s3c2410ts_probe(struct platform_device *pdev)
-+{
-+      struct s3c2410_ts_mach_info *info;
-+      struct input_dev *input_dev;
-+
-+      info = ( struct s3c2410_ts_mach_info *)pdev->dev.platform_data;
-+
-+      if (!info)
-+      {
-+              printk(KERN_ERR "Hm... too bad : no platform data for ts\n");
-+              return -EINVAL;
-+      }
-+
-+#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
-+      printk(DEBUG_LVL "Entering s3c2410ts_init\n");
-+#endif
-+
-+      adc_clock = clk_get(NULL, "adc");
-+      if (!adc_clock) {
-+              printk(KERN_ERR "failed to get adc clock source\n");
-+              return -ENOENT;
-+      }
-+      clk_enable(adc_clock);
-+
-+#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
-+      printk(DEBUG_LVL "got and enabled clock\n");
-+#endif
-+
-+      base_addr=ioremap(S3C2410_PA_ADC,0x20);
-+      if (base_addr == NULL) {
-+              printk(KERN_ERR "Failed to remap register block\n");
-+              return -ENOMEM;
-+      }
-+
-+
-+      /* Configure GPIOs */
-+      s3c2410_ts_connect();
-+
-+      if ((info->presc&0xff) > 0)
-+              writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(info->presc&0xFF),\
-+                           base_addr+S3C2410_ADCCON);
-+      else
-+              writel(0,base_addr+S3C2410_ADCCON);
-+
-+
-+      /* Initialise registers */
-+      if ((info->delay&0xffff) > 0)
-+              writel(info->delay & 0xffff,  base_addr+S3C2410_ADCDLY);
-+
-+      writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
-+
-+      /* Initialise input stuff */
-+      memset(&ts, 0, sizeof(struct s3c2410ts));
-+      input_dev = input_allocate_device();
-+
-+      if (!input_dev) {
-+              printk(KERN_ERR "Unable to allocate the input device !!\n");
-+              return -ENOMEM;
-+      }
-+
-+      ts.dev = input_dev;
-+      ts.dev->evbit[0] = BIT(EV_SYN) | BIT(EV_KEY) | BIT(EV_ABS);
-+      ts.dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH);
-+      input_set_abs_params(ts.dev, ABS_X, 0x10, 0x3FF, 0, 0);
-+      input_set_abs_params(ts.dev, ABS_Y, 0x10, 0x3FF, 0, 0);
-+      input_set_abs_params(ts.dev, ABS_PRESSURE, 0, 1, 0, 0);
-+
-+      ts.dev->private = &ts;
-+      ts.dev->name = s3c2410ts_name;
-+      ts.dev->id.bustype = BUS_RS232;
-+      ts.dev->id.vendor = 0xDEAD;
-+      ts.dev->id.product = 0xBEEF;
-+      ts.dev->id.version = S3C2410TSVERSION;
-+
-+      ts.shift = info->oversampling_shift;
-+
-+      /* Get irqs */
-+      if (request_irq(IRQ_ADC, stylus_action, SA_SAMPLE_RANDOM,
-+              "s3c2410_action", ts.dev)) {
-+              printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_ADC !\n");
-+              iounmap(base_addr);
-+              return -EIO;
-+      }
-+      if (request_irq(IRQ_TC, stylus_updown, SA_SAMPLE_RANDOM,
-+                      "s3c2410_action", ts.dev)) {
-+              printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_TC !\n");
-+              iounmap(base_addr);
-+              return -EIO;
-+      }
-+
-+      printk(KERN_INFO "%s successfully loaded\n", s3c2410ts_name);
-+
-+      /* All went ok, so register to the input system */
-+      input_register_device(ts.dev);
-+
-+      return 0;
-+}
-+
-+static int s3c2410ts_remove(struct platform_device *pdev)
-+{
-+      disable_irq(IRQ_ADC);
-+      disable_irq(IRQ_TC);
-+      free_irq(IRQ_TC,ts.dev);
-+      free_irq(IRQ_ADC,ts.dev);
-+
-+      if (adc_clock) {
-+              clk_disable(adc_clock);
-+              clk_put(adc_clock);
-+              adc_clock = NULL;
-+      }
-+
-+      input_unregister_device(ts.dev);
-+      iounmap(base_addr);
-+
-+      return 0;
-+}
-+
-+static struct platform_driver s3c2410ts_driver = {
-+       .driver         = {
-+             .name   = "s3c2410-ts",
-+             .owner  = THIS_MODULE,
-+       },
-+       .probe          = s3c2410ts_probe,
-+       .remove         = s3c2410ts_remove,
-+};
-+
-+
-+static int __init s3c2410ts_init(void)
-+{
-+      return platform_driver_register(&s3c2410ts_driver);
-+}
-+
-+static void __exit s3c2410ts_exit(void)
-+{
-+      platform_driver_unregister(&s3c2410ts_driver);
-+}
-+
-+module_init(s3c2410ts_init);
-+module_exit(s3c2410ts_exit);
-+
-+/*
-+    Local variables:
-+        compile-command: "make ARCH=arm CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux- -k -C ../../.."
-+        c-basic-offset: 8
-+    End:
-+*/
-Index: linux-2.6.19/arch/arm/mach-s3c2410/devs.c
-===================================================================
---- linux-2.6.19.orig/arch/arm/mach-s3c2410/devs.c
-+++ linux-2.6.19/arch/arm/mach-s3c2410/devs.c
-@@ -28,6 +28,7 @@
- #include <asm/irq.h>
- #include <asm/arch/regs-serial.h>
-+#include <asm/arch/ts.h>
- #include "devs.h"
- #include "cpu.h"
-@@ -204,6 +205,23 @@ struct platform_device s3c_device_nand =
- EXPORT_SYMBOL(s3c_device_nand);
-+/* Touchscreen */
-+struct platform_device s3c_device_ts = {
-+      .name             = "s3c2410-ts",
-+      .id               = -1,
-+};
-+
-+EXPORT_SYMBOL(s3c_device_ts);
-+
-+static struct s3c2410_ts_mach_info s3c2410ts_info;
-+
-+void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)
-+{
-+      memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(struct s3c2410_ts_mach_info));
-+      s3c_device_ts.dev.platform_data = &s3c2410ts_info;
-+}
-+EXPORT_SYMBOL(set_s3c2410ts_info);
-+
- /* USB Device (Gadget)*/
- static struct resource s3c_usbgadget_resource[] = {
-Index: linux-2.6.19/arch/arm/mach-s3c2410/devs.h
-===================================================================
---- linux-2.6.19.orig/arch/arm/mach-s3c2410/devs.h
-+++ linux-2.6.19/arch/arm/mach-s3c2410/devs.h
-@@ -41,6 +41,8 @@ extern struct platform_device s3c_device
- extern struct platform_device s3c_device_timer3;
- extern struct platform_device s3c_device_usbgadget;
-+extern struct platform_device s3c_device_ts;
-+
- /* s3c2440 specific devices */
-Index: linux-2.6.19/arch/arm/mach-s3c2410/mach-smdk2440.c
-===================================================================
---- linux-2.6.19.orig/arch/arm/mach-s3c2410/mach-smdk2440.c
-+++ linux-2.6.19/arch/arm/mach-s3c2410/mach-smdk2440.c
-@@ -38,6 +38,7 @@
- #include <asm/arch/idle.h>
- #include <asm/arch/fb.h>
-+#include <asm/arch/ts.h>
- #include "s3c2410.h"
- #include "s3c2440.h"
-@@ -177,6 +178,7 @@ static struct platform_device *smdk2440_
-       &s3c_device_wdt,
-       &s3c_device_i2c,
-       &s3c_device_iis,
-+      &s3c_device_ts,
- };
- static struct s3c24xx_board smdk2440_board __initdata = {
-@@ -184,6 +186,13 @@ static struct s3c24xx_board smdk2440_boa
-       .devices_count = ARRAY_SIZE(smdk2440_devices)
- };
-+static struct s3c2410_ts_mach_info smdk2440_ts_cfg __initdata = {
-+              .delay = 10000,
-+              .presc = 49,
-+              .oversampling_shift = 2,
-+};
-+
-+
- static void __init smdk2440_map_io(void)
- {
-       s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
-@@ -195,6 +204,7 @@ static void __init smdk2440_map_io(void)
- static void __init smdk2440_machine_init(void)
- {
-       s3c24xx_fb_set_platdata(&smdk2440_lcd_cfg);
-+      set_s3c2410ts_info(&smdk2440_ts_cfg);
-       smdk_machine_init();
- }
-Index: linux-2.6.19/drivers/input/touchscreen/Kconfig
-===================================================================
---- linux-2.6.19.orig/drivers/input/touchscreen/Kconfig
-+++ linux-2.6.19/drivers/input/touchscreen/Kconfig
-@@ -49,6 +49,25 @@ config TOUCHSCREEN_CORGI
-         To compile this driver as a module, choose M here: the
-         module will be called corgi_ts.
-+config TOUCHSCREEN_S3C2410
-+      tristate "Samsung S3C2410 touchscreen input driver"
-+      depends on ARCH_S3C2410 && INPUT && INPUT_TOUCHSCREEN
-+      select SERIO
-+      help
-+        Say Y here if you have the s3c2410 touchscreen.
-+
-+        If unsure, say N.
-+
-+        To compile this driver as a module, choose M here: the
-+        module will be called s3c2410_ts.
-+
-+config TOUCHSCREEN_S3C2410_DEBUG
-+      boolean "Samsung S3C2410 touchscreen debug messages"
-+      depends on TOUCHSCREEN_S3C2410
-+      help
-+        Select this if you want debug messages
-+
-+
- config TOUCHSCREEN_GUNZE
-       tristate "Gunze AHL-51S touchscreen"
-       select SERIO
-Index: linux-2.6.19/drivers/input/touchscreen/Makefile
-===================================================================
---- linux-2.6.19.orig/drivers/input/touchscreen/Makefile
-+++ linux-2.6.19/drivers/input/touchscreen/Makefile
-@@ -15,3 +15,4 @@ obj-$(CONFIG_TOUCHSCREEN_HP600)      += hp680
- obj-$(CONFIG_TOUCHSCREEN_PENMOUNT)    += penmount.o
- obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT)  += touchright.o
- obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN)    += touchwin.o
-+obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o
-Index: linux-2.6.19/include/asm-arm/arch-s3c2410/ts.h
-===================================================================
---- /dev/null
-+++ linux-2.6.19/include/asm-arm/arch-s3c2410/ts.h
-@@ -0,0 +1,28 @@
-+/* linux/include/asm/arch-s3c2410/ts.h
-+ *
-+ * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
-+ *
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ *
-+ *  Changelog:
-+ *     24-Mar-2005     RTP     Created file
-+ *     03-Aug-2005     RTP     Renamed to ts.h
-+ */
-+
-+#ifndef __ASM_ARM_TS_H
-+#define __ASM_ARM_TS_H
-+
-+struct s3c2410_ts_mach_info {
-+       int             delay;
-+       int             presc;
-+       int             oversampling_shift;
-+};
-+
-+void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info);
-+
-+#endif /* __ASM_ARM_TS_H */
-+
-Index: linux-2.6.19/include/asm-arm/arch-s3c2410/regs-adc.h
-===================================================================
---- linux-2.6.19.orig/include/asm-arm/arch-s3c2410/regs-adc.h
-+++ linux-2.6.19/include/asm-arm/arch-s3c2410/regs-adc.h
-@@ -41,7 +41,7 @@
- #define S3C2410_ADCTSC_XP_SEN         (1<<4)
- #define S3C2410_ADCTSC_PULL_UP_DISABLE        (1<<3)
- #define S3C2410_ADCTSC_AUTO_PST               (1<<2)
--#define S3C2410_ADCTSC_XY_PST         (0x3<<0)
-+#define S3C2410_ADCTSC_XY_PST(x)      (((x)&0x3)<<0)
- /* ADCDAT0 Bits */
- #define S3C2410_ADCDAT0_UPDOWN                (1<<15)
diff --git a/packages/linux/linux-smdk2440-2.6.20+git/.mtn2git_empty b/packages/linux/linux-smdk2440-2.6.20+git/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/linux/linux-smdk2440-2.6.20+git/0001-Enable-cs8900A-network-device-for-smdk2440-board.patch b/packages/linux/linux-smdk2440-2.6.20+git/0001-Enable-cs8900A-network-device-for-smdk2440-board.patch
new file mode 100644 (file)
index 0000000..bf8a008
--- /dev/null
@@ -0,0 +1,92 @@
+From 44c48cf15a3072185ce3541a127a89bfbb2b346f Mon Sep 17 00:00:00 2001
+From: Graeme Gregory <gg@gg-desktop.wolfsonmicro.main>
+Date: Fri, 6 Apr 2007 15:47:13 +0100
+Subject: [PATCH] Enable cs8900A network device for smdk2440 board.
+
+Signed-off-by: Graeme Gregory <gg@opensource.wolfsonmicro.com>
+---
+ arch/arm/mach-s3c2440/mach-smdk2440.c |    7 ++++++-
+ drivers/net/cs89x0.c                  |   20 ++++++++++++++++++--
+ 2 files changed, 24 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/mach-s3c2440/mach-smdk2440.c b/arch/arm/mach-s3c2440/mach-smdk2440.c
+index c17eb5b..fb36665 100644
+--- a/arch/arm/mach-s3c2440/mach-smdk2440.c
++++ b/arch/arm/mach-s3c2440/mach-smdk2440.c
+@@ -69,7 +69,12 @@ static struct map_desc smdk2440_iodesc[] __initdata = {
+               .pfn            = __phys_to_pfn(S3C2410_CS2 + (1<<24)),
+               .length         = SZ_4M,
+               .type           = MT_DEVICE,
+-      }
++      }, {
++              .virtual        = (u32)S3C2410_ADDR(0x04000000) ,
++              .pfn            = __phys_to_pfn(S3C2410_CS3 + (1<<24)),
++              .length         = SZ_16M,
++              .type           = MT_DEVICE,
++        }
+ };
+ #define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK
+diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
+index 4612f71..534653e 100644
+--- a/drivers/net/cs89x0.c
++++ b/drivers/net/cs89x0.c
+@@ -187,6 +187,10 @@ static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0};
+ #include <asm/irq.h>
+ static unsigned int netcard_portlist[] __initdata = {IXDP2X01_CS8900_VIRT_BASE, 0};
+ static unsigned int cs8900_irq_map[] = {IRQ_IXDP2X01_CS8900, 0, 0, 0};
++#elif defined(CONFIG_ARCH_S3C2440)
++static unsigned int netcard_portlist[] __initdata = {S3C2410_ADDR(0x04000000) + 0x300 , 0};
++static unsigned int cs8900_irq_map[] = {IRQ_EINT9, 0, 0, 0};
++static unsigned char cs8900_mac[] = {0xDE,0xAD,0xBE,0xEF,0x01,0x02};
+ #elif defined(CONFIG_ARCH_PNX010X)
+ #include <asm/irq.h>
+ #include <asm/arch/gpio.h>
+@@ -719,6 +723,14 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
+               printk( "[Cirrus EEPROM] ");
+       }
++#if defined(CONFIG_ARCH_S3C2440)
++      else
++      {
++              for (i=0; i < ETH_ALEN; i++) {
++                        dev->dev_addr[i] = cs8900_mac[i];
++              }
++      }
++#endif
+         printk("\n");
+@@ -802,7 +814,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
+       } else {
+               i = lp->isa_config & INT_NO_MASK;
+               if (lp->chip_type == CS8900) {
+-#if defined(CONFIG_MACH_IXDP2351) || defined(CONFIG_ARCH_IXDP2X01) || defined(CONFIG_ARCH_PNX010X)
++#if defined(CONFIG_MACH_IXDP2351) || defined(CONFIG_ARCH_IXDP2X01) || defined(CONFIG_ARCH_PNX010X) || defined(CONFIG_ARCH_S3C2410)
+                       i = cs8900_irq_map[0];
+ #else
+                       /* Translate the IRQ using the IRQ mapping table. */
+@@ -1309,7 +1321,7 @@ net_open(struct net_device *dev)
+       else
+ #endif
+       {
+-#if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) && !defined(CONFIG_ARCH_PNX010X)
++#if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) && !defined(CONFIG_ARCH_PNX010X) && !defined(CONFIG_ARCH_S3C2410)
+               if (((1 << dev->irq) & lp->irq_map) == 0) {
+                       printk(KERN_ERR "%s: IRQ %d is not in our map of allowable IRQs, which is %x\n",
+                                dev->name, dev->irq, lp->irq_map);
+@@ -1324,7 +1336,11 @@ net_open(struct net_device *dev)
+               writereg(dev, PP_BusCTL, ENABLE_IRQ | MEMORY_ON);
+ #endif
+               write_irq(dev, lp->chip_type, dev->irq);
++#if !defined(CONFIG_ARCH_S3C2440)
+               ret = request_irq(dev->irq, &net_interrupt, 0, dev->name, dev);
++#else
++              ret = request_irq(dev->irq, &net_interrupt, IRQF_DISABLED | IRQF_TRIGGER_HIGH, dev->name, dev);
++#endif
+               if (ret) {
+                       if (net_debug)
+                               printk(KERN_DEBUG "cs89x0: request_irq(%d) failed\n", dev->irq);
+-- 
+1.5.1
+
index 5bdf67e..8805af7 100644 (file)
@@ -1,11 +1,14 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.20-rc2
-# Thu Jan  4 13:31:25 2007
+# Linux kernel version: 2.6.21-rc6
+# Fri Apr  6 15:53:13 2007
 #
 CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
 # CONFIG_GENERIC_TIME is not set
 CONFIG_MMU=y
+CONFIG_NO_IOPORT=y
 CONFIG_GENERIC_HARDIRQS=y
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_HARDIRQS_SW_RESEND=y
@@ -15,6 +18,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_ARCH_HAS_ILOG2_U64 is not set
 CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ZONE_DMA=y
 CONFIG_VECTORS_BASE=0xffff0000
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 
@@ -33,6 +37,7 @@ CONFIG_LOCALVERSION_AUTO=y
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 # CONFIG_IPC_NS is not set
+CONFIG_SYSVIPC_SYSCTL=y
 # CONFIG_POSIX_MQUEUE is not set
 # CONFIG_BSD_PROCESS_ACCT is not set
 # CONFIG_TASKSTATS is not set
@@ -41,6 +46,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_IKCONFIG is not set
 CONFIG_SYSFS_DEPRECATED=y
 # CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL=y
@@ -120,6 +126,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
 # CONFIG_ARCH_IXP2000 is not set
 # CONFIG_ARCH_IXP23XX is not set
 # CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_NS9XXX is not set
 # CONFIG_ARCH_PNX4008 is not set
 # CONFIG_ARCH_PXA is not set
 # CONFIG_ARCH_RPC is not set
@@ -128,55 +135,73 @@ CONFIG_ARCH_S3C2410=y
 # CONFIG_ARCH_SHARK is not set
 # CONFIG_ARCH_LH7A40X is not set
 # CONFIG_ARCH_OMAP is not set
+CONFIG_PLAT_S3C24XX=y
+CONFIG_CPU_S3C244X=y
+CONFIG_PM_SIMTEC=y
+# CONFIG_S3C2410_BOOT_WATCHDOG is not set
+# CONFIG_S3C2410_BOOT_ERROR_RESET is not set
+# CONFIG_S3C2410_PM_DEBUG is not set
+# CONFIG_S3C2410_PM_CHECK is not set
+CONFIG_S3C2410_LOWLEVEL_UART_PORT=0
+CONFIG_S3C2410_DMA=y
+CONFIG_S3C2410_DMA_DEBUG=y
+CONFIG_MACH_SMDK=y
 
 #
-# S3C24XX Implementations
+# S3C2400 Machines
 #
-# CONFIG_MACH_AML_M5900 is not set
-CONFIG_MACH_ANUBIS=y
-CONFIG_MACH_OSIRIS=y
-CONFIG_ARCH_BAST=y
-CONFIG_BAST_PC104_IRQ=y
-CONFIG_PM_H1940=y
+CONFIG_CPU_S3C2410=y
+CONFIG_CPU_S3C2410_DMA=y
+CONFIG_S3C2410_PM=y
+CONFIG_S3C2410_GPIO=y
+CONFIG_S3C2410_CLOCK=y
+
+#
+# S3C2410 Machines
+#
+CONFIG_ARCH_SMDK2410=y
 CONFIG_ARCH_H1940=y
+CONFIG_PM_H1940=y
 CONFIG_MACH_N30=y
-CONFIG_MACH_SMDK=y
-CONFIG_ARCH_SMDK2410=y
-CONFIG_ARCH_S3C2440=y
-CONFIG_SMDK2440_CPU2440=y
-CONFIG_SMDK2440_CPU2442=y
-CONFIG_MACH_S3C2413=y
-CONFIG_MACH_SMDK2413=y
-CONFIG_MACH_VR1000=y
-CONFIG_MACH_RX3715=y
+CONFIG_ARCH_BAST=y
 CONFIG_MACH_OTOM=y
-CONFIG_MACH_NEXCODER_2440=y
-# CONFIG_MACH_VSTMS is not set
-CONFIG_S3C2410_CLOCK=y
-CONFIG_S3C2410_PM=y
-CONFIG_CPU_S3C2410_DMA=y
-CONFIG_CPU_S3C2410=y
-CONFIG_S3C2412_PM=y
+# CONFIG_MACH_AML_M5900 is not set
+CONFIG_BAST_PC104_IRQ=y
+CONFIG_MACH_VR1000=y
+# CONFIG_MACH_QT2410 is not set
 CONFIG_CPU_S3C2412=y
-CONFIG_CPU_S3C244X=y
+CONFIG_S3C2412_DMA=y
+CONFIG_S3C2412_PM=y
+
+#
+# S3C2412 Machines
+#
+CONFIG_MACH_SMDK2413=y
+CONFIG_MACH_S3C2413=y
+# CONFIG_MACH_VSTMS is not set
 CONFIG_CPU_S3C2440=y
+CONFIG_S3C2440_DMA=y
+
+#
+# S3C2440 Machines
+#
+CONFIG_MACH_ANUBIS=y
+CONFIG_MACH_OSIRIS=y
+CONFIG_MACH_RX3715=y
+CONFIG_ARCH_S3C2440=y
+CONFIG_MACH_NEXCODER_2440=y
+CONFIG_SMDK2440_CPU2440=y
 CONFIG_CPU_S3C2442=y
 
 #
-# S3C2410 Boot
+# S3C2442 Machines
 #
-# CONFIG_S3C2410_BOOT_WATCHDOG is not set
-# CONFIG_S3C2410_BOOT_ERROR_RESET is not set
+CONFIG_SMDK2440_CPU2442=y
 
 #
-# S3C2410 Setup
+# S3C2443 Machines
 #
-CONFIG_S3C2410_DMA=y
-CONFIG_S3C2410_DMA_DEBUG=y
-# CONFIG_S3C2410_PM_DEBUG is not set
-# CONFIG_S3C2410_PM_CHECK is not set
-CONFIG_PM_SIMTEC=y
-CONFIG_S3C2410_LOWLEVEL_UART_PORT=0
+# CONFIG_MACH_SMDK2443 is not set
 
 #
 # Processor Type
@@ -203,6 +228,7 @@ CONFIG_CPU_CP15_MMU=y
 # CONFIG_CPU_DCACHE_DISABLE is not set
 # CONFIG_CPU_DCACHE_WRITETHROUGH is not set
 # CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+# CONFIG_OUTER_CACHE is not set
 
 #
 # Bus support
@@ -232,6 +258,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
 # CONFIG_SPARSEMEM_STATIC is not set
 CONFIG_SPLIT_PTLOCK_CPUS=4096
 # CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
 CONFIG_ALIGNMENT_TRAP=y
 
 #
@@ -241,6 +268,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_CMDLINE="root=/dev/nfs ip=auto rw init=/bin/bash console=ttySAC0"
 # CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
 
 #
 # Floating point emulation
@@ -268,7 +296,7 @@ CONFIG_PM=y
 CONFIG_PM_LEGACY=y
 # CONFIG_PM_DEBUG is not set
 # CONFIG_PM_SYSFS_DEPRECATED is not set
-CONFIG_APM=y
+# CONFIG_APM_EMULATION is not set
 
 #
 # Networking
@@ -284,6 +312,7 @@ CONFIG_UNIX=y
 CONFIG_XFRM=y
 # CONFIG_XFRM_USER is not set
 # CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
 # CONFIG_NET_KEY is not set
 CONFIG_INET=y
 # CONFIG_IP_MULTICAST is not set
@@ -368,6 +397,7 @@ CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_FW_LOADER is not set
 # CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
 # CONFIG_SYS_HYPERVISOR is not set
 
 #
@@ -393,6 +423,7 @@ CONFIG_MTD_CMDLINE_PARTS=y
 # User Modules And Translation Layers
 #
 CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
 CONFIG_MTD_BLOCK=y
 # CONFIG_FTL is not set
 # CONFIG_NFTL is not set
@@ -486,6 +517,7 @@ CONFIG_PARPORT_1284=y
 # Plug and Play support
 #
 # CONFIG_PNP is not set
+# CONFIG_PNPACPI is not set
 
 #
 # Block devices
@@ -499,7 +531,6 @@ CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=16
 CONFIG_BLK_DEV_RAM_SIZE=4096
 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-CONFIG_BLK_DEV_INITRD=y
 # CONFIG_CDROM_PKTCDVD is not set
 CONFIG_ATA_OVER_ETH=m
 
@@ -528,7 +559,6 @@ CONFIG_IDE_GENERIC=y
 CONFIG_BLK_DEV_IDE_BAST=y
 # CONFIG_IDE_CHIPSETS is not set
 # CONFIG_BLK_DEV_IDEDMA is not set
-# CONFIG_IDEDMA_AUTO is not set
 # CONFIG_BLK_DEV_HD is not set
 
 #
@@ -665,6 +695,7 @@ CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_XTKBD is not set
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_GPIO is not set
 CONFIG_INPUT_MOUSE=y
 CONFIG_MOUSE_PS2=y
 # CONFIG_MOUSE_SERIAL is not set
@@ -675,8 +706,6 @@ CONFIG_MOUSE_PS2=y
 # CONFIG_INPUT_JOYSTICK is not set
 CONFIG_INPUT_TOUCHSCREEN=y
 # CONFIG_TOUCHSCREEN_ADS7846 is not set
-CONFIG_TOUCHSCREEN_S3C2410=y
-# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
 # CONFIG_TOUCHSCREEN_GUNZE is not set
 # CONFIG_TOUCHSCREEN_ELO is not set
 # CONFIG_TOUCHSCREEN_MTOUCH is not set
@@ -844,12 +873,13 @@ CONFIG_SPI_MASTER=y
 #
 CONFIG_SPI_BITBANG=y
 # CONFIG_SPI_BUTTERFLY is not set
-CONFIG_SPI_S3C24XX_GPIO=y
 # CONFIG_SPI_S3C24XX is not set
+CONFIG_SPI_S3C24XX_GPIO=y
 
 #
 # SPI Protocol Masters
 #
+# CONFIG_SPI_AT25 is not set
 
 #
 # Dallas's 1-wire bus
@@ -865,6 +895,7 @@ CONFIG_HWMON_VID=m
 # CONFIG_SENSORS_ADM1021 is not set
 # CONFIG_SENSORS_ADM1025 is not set
 # CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
 # CONFIG_SENSORS_ADM1031 is not set
 # CONFIG_SENSORS_ADM9240 is not set
 # CONFIG_SENSORS_ASB100 is not set
@@ -906,7 +937,11 @@ CONFIG_SENSORS_LM85=m
 #
 # Misc devices
 #
-# CONFIG_TIFM_CORE is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
 
 #
 # LED devices
@@ -935,8 +970,26 @@ CONFIG_SENSORS_LM85=m
 #
 # Graphics support
 #
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+CONFIG_FB=y
 CONFIG_FIRMWARE_EDID=y
-# CONFIG_FB is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frambuffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_S3C2410=y
+# CONFIG_FB_S3C2410_DEBUG is not set
+# CONFIG_FB_VIRTUAL is not set
 
 #
 # Console display driver support
@@ -944,7 +997,19 @@ CONFIG_FIRMWARE_EDID=y
 # CONFIG_VGA_CONSOLE is not set
 # CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
 
 #
 # Sound
@@ -978,6 +1043,7 @@ CONFIG_SND_DEBUG_DETECT=y
 # CONFIG_SND_MTS64 is not set
 # CONFIG_SND_SERIAL_U16550 is not set
 # CONFIG_SND_MPU401 is not set
+# CONFIG_SND_PORTMAN2X4 is not set
 
 #
 # ALSA ARM devices
@@ -989,16 +1055,12 @@ CONFIG_SND_DEBUG_DETECT=y
 # CONFIG_SND_USB_AUDIO is not set
 
 #
-# SoC audio support
+# System on Chip audio support
 #
 CONFIG_SND_SOC=m
 
 #
-# Soc Platforms
-#
-
-#
-# SoC Audio for the Intel PXA2xx
+# SoC Platforms
 #
 
 #
@@ -1006,7 +1068,7 @@ CONFIG_SND_SOC=m
 #
 
 #
-# SoC Audio for the Freescale i.MX
+# SoC Audio for the Intel PXA2xx
 #
 
 #
@@ -1015,26 +1077,12 @@ CONFIG_SND_SOC=m
 CONFIG_SND_S3C24XX_SOC=m
 CONFIG_SND_S3C24XX_SOC_I2S=m
 CONFIG_SND_S3C24XX_SOC_SMDK2440=m
+# CONFIG_SND_S3C24XX_SOC_SMDK2440_WM8956 is not set
 
 #
-# Soc Codecs
-#
-# CONFIG_SND_SOC_AC97_CODEC is not set
-CONFIG_SND_SOC_WM8711=m
-CONFIG_SND_SOC_WM8510=m
-CONFIG_SND_SOC_WM8731=m
-CONFIG_SND_SOC_WM8750=m
-CONFIG_SND_SOC_WM8753=m
-CONFIG_SND_SOC_WM8772=m
-CONFIG_SND_SOC_WM8971=m
-# CONFIG_SND_SOC_WM8956 is not set
-# CONFIG_SND_SOC_WM8976 is not set
-CONFIG_SND_SOC_WM8974=m
-CONFIG_SND_SOC_WM8980=m
-# CONFIG_SND_SOC_WM9713 is not set
-# CONFIG_SND_SOC_WM9712 is not set
+# SoC Audio for the Freescale i.MX
+#
 CONFIG_SND_SOC_UDA1380=m
-CONFIG_SND_SOC_AK4535=m
 
 #
 # Open Sound System
@@ -1045,6 +1093,7 @@ CONFIG_SND_SOC_AK4535=m
 # HID Devices
 #
 CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
 
 #
 # USB support
@@ -1059,10 +1108,8 @@ CONFIG_USB=y
 # Miscellaneous USB options
 #
 CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_BANDWIDTH is not set
 # CONFIG_USB_DYNAMIC_MINORS is not set
 # CONFIG_USB_SUSPEND is not set
-# CONFIG_USB_MULTITHREAD_PROBE is not set
 # CONFIG_USB_OTG is not set
 
 #
@@ -1070,7 +1117,8 @@ CONFIG_USB_DEVICEFS=y
 #
 # CONFIG_USB_ISP116X_HCD is not set
 CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
 # CONFIG_USB_SL811_HCD is not set
 
@@ -1093,7 +1141,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
 # USB Input Devices
 #
 CONFIG_USB_HID=y
-# CONFIG_USB_HID_POWERBOOK is not set
+# CONFIG_USB_HIDINPUT_POWERBOOK is not set
 # CONFIG_HID_FF is not set
 # CONFIG_USB_HIDDEV is not set
 # CONFIG_USB_AIPTEK is not set
@@ -1108,6 +1156,7 @@ CONFIG_USB_HID=y
 # CONFIG_USB_ATI_REMOTE2 is not set
 # CONFIG_USB_KEYSPAN_REMOTE is not set
 # CONFIG_USB_APPLETOUCH is not set
+# CONFIG_USB_GTCO is not set
 
 #
 # USB Imaging devices
@@ -1145,6 +1194,7 @@ CONFIG_USB_MON=y
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_LEGOTOWER is not set
 # CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
 # CONFIG_USB_LED is not set
 # CONFIG_USB_CYPRESS_CY7C63 is not set
 # CONFIG_USB_CYTHERM is not set
@@ -1154,6 +1204,7 @@ CONFIG_USB_MON=y
 # CONFIG_USB_APPLEDISPLAY is not set
 # CONFIG_USB_LD is not set
 # CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
 # CONFIG_USB_TEST is not set
 
 #
@@ -1368,15 +1419,16 @@ CONFIG_MAGIC_SYSRQ=y
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
 CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
 CONFIG_LOG_BUF_SHIFT=16
 CONFIG_DETECT_SOFTLOCKUP=y
 # CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
 # CONFIG_DEBUG_SLAB is not set
 # CONFIG_DEBUG_RT_MUTEXES is not set
 # CONFIG_RT_MUTEX_TESTER is not set
 # CONFIG_DEBUG_SPINLOCK is not set
 CONFIG_DEBUG_MUTEXES=y
-# CONFIG_DEBUG_RWSEMS is not set
 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
 # CONFIG_DEBUG_KOBJECT is not set
@@ -1387,6 +1439,7 @@ CONFIG_DEBUG_INFO=y
 CONFIG_FRAME_POINTER=y
 CONFIG_FORCED_INLINING=y
 # CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
 CONFIG_DEBUG_USER=y
 # CONFIG_DEBUG_ERRORS is not set
 CONFIG_DEBUG_LL=y
@@ -1416,4 +1469,4 @@ CONFIG_CRC32=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
 CONFIG_PLIST=y
-CONFIG_IOMAP_COPY=y
+CONFIG_HAS_IOMEM=y
diff --git a/packages/linux/linux-smdk2440/smdk2440-touchscreen-r3.patch b/packages/linux/linux-smdk2440/smdk2440-touchscreen-r3.patch
deleted file mode 100644 (file)
index d03fd94..0000000
+++ /dev/null
@@ -1,529 +0,0 @@
-Index: linux-2.6.19/arch/arm/mach-s3c2410/devs.c
-===================================================================
---- linux-2.6.19.orig/arch/arm/mach-s3c2410/devs.c
-+++ linux-2.6.19/arch/arm/mach-s3c2410/devs.c
-@@ -26,6 +26,7 @@
- #include <asm/hardware.h>
- #include <asm/io.h>
- #include <asm/irq.h>
-+#include <asm/arch/ts.h>
- #include <asm/arch/regs-serial.h>
-@@ -204,6 +205,23 @@ struct platform_device s3c_device_nand =
- EXPORT_SYMBOL(s3c_device_nand);
-+/* Touchscreen */
-+struct platform_device s3c_device_ts = {
-+      .name             = "s3c2410-ts",
-+      .id               = -1,
-+};
-+
-+EXPORT_SYMBOL(s3c_device_ts);
-+
-+static struct s3c2410_ts_mach_info s3c2410ts_info;
-+
-+void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)
-+{
-+      memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(struct s3c2410_ts_mach_info));
-+      s3c_device_ts.dev.platform_data = &s3c2410ts_info;
-+}
-+EXPORT_SYMBOL(set_s3c2410ts_info);
-+
- /* USB Device (Gadget)*/
- static struct resource s3c_usbgadget_resource[] = {
-Index: linux-2.6.19/arch/arm/mach-s3c2410/devs.h
-===================================================================
---- linux-2.6.19.orig/arch/arm/mach-s3c2410/devs.h
-+++ linux-2.6.19/arch/arm/mach-s3c2410/devs.h
-@@ -41,6 +41,7 @@ extern struct platform_device s3c_device
- extern struct platform_device s3c_device_timer3;
- extern struct platform_device s3c_device_usbgadget;
-+extern struct platform_device s3c_device_ts;
- /* s3c2440 specific devices */
-Index: linux-2.6.19/drivers/input/touchscreen/Kconfig
-===================================================================
---- linux-2.6.19.orig/drivers/input/touchscreen/Kconfig
-+++ linux-2.6.19/drivers/input/touchscreen/Kconfig
-@@ -49,6 +49,24 @@ config TOUCHSCREEN_CORGI
-         To compile this driver as a module, choose M here: the
-         module will be called corgi_ts.
-+config TOUCHSCREEN_S3C2410
-+      tristate "Samsung S3C2410 touchscreen input driver"
-+      depends on ARCH_S3C2410 && INPUT && INPUT_TOUCHSCREEN
-+      select SERIO
-+      help
-+        Say Y here if you have the s3c2410 touchscreen.
-+
-+        If unsure, say N.
-+
-+        To compile this driver as a module, choose M here: the
-+        module will be called s3c2410_ts.
-+
-+config TOUCHSCREEN_S3C2410_DEBUG
-+      boolean "Samsung S3C2410 touchscreen debug messages"
-+      depends on TOUCHSCREEN_S3C2410
-+      help
-+        Select this if you want debug messages
-+
- config TOUCHSCREEN_GUNZE
-       tristate "Gunze AHL-51S touchscreen"
-       select SERIO
-Index: linux-2.6.19/drivers/input/touchscreen/Makefile
-===================================================================
---- linux-2.6.19.orig/drivers/input/touchscreen/Makefile
-+++ linux-2.6.19/drivers/input/touchscreen/Makefile
-@@ -15,3 +15,5 @@ obj-$(CONFIG_TOUCHSCREEN_HP600)      += hp680
- obj-$(CONFIG_TOUCHSCREEN_PENMOUNT)    += penmount.o
- obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT)  += touchright.o
- obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN)    += touchwin.o
-+obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o
-+
-Index: linux-2.6.19/drivers/input/touchscreen/s3c2410_ts.c
-===================================================================
---- /dev/null
-+++ linux-2.6.19/drivers/input/touchscreen/s3c2410_ts.c
-@@ -0,0 +1,350 @@
-+/*
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org>
-+ * iPAQ H1940 touchscreen support
-+ *
-+ * ChangeLog
-+ *
-+ * 2004-09-05: Herbert Pötzl <herbert@13thfloor.at>
-+ *    - added clock (de-)allocation code
-+ *
-+ * 2005-03-06: Arnaud Patard <arnaud.patard@rtp-net.org>
-+ *      - h1940_ -> s3c2410 (this driver is now also used on the n30
-+ *        machines :P)
-+ *      - Debug messages are now enabled with the config option
-+ *        TOUCHSCREEN_S3C2410_DEBUG
-+ *      - Changed the way the value are read
-+ *      - Input subsystem should now work
-+ *      - Use ioremap and readl/writel
-+ *
-+ * 2005-03-23: Arnaud Patard <arnaud.patard@rtp-net.org>
-+ *      - Make use of some undocumented features of the touchscreen
-+ *        controller
-+ *
-+ */
-+
-+#include <linux/errno.h>
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/slab.h>
-+#include <linux/input.h>
-+#include <linux/init.h>
-+#include <linux/serio.h>
-+#include <linux/delay.h>
-+#include <linux/platform_device.h>
-+#include <linux/clk.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+
-+#include <asm/arch/regs-adc.h>
-+#include <asm/arch/regs-gpio.h>
-+#include <asm/arch/ts.h>
-+
-+/* For ts.dev.id.version */
-+#define S3C2410TSVERSION      0x0101
-+
-+#define WAIT4INT(x)  (((x)<<8) | \
-+                   S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
-+                   S3C2410_ADCTSC_XY_PST(3))
-+
-+#define AUTOPST            (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
-+                   S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0))
-+
-+#define DEBUG_LVL    KERN_DEBUG
-+
-+MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>");
-+MODULE_DESCRIPTION("s3c2410 touchscreen driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Definitions & global arrays.
-+ */
-+
-+
-+static char *s3c2410ts_name = "s3c2410 TouchScreen";
-+
-+/*
-+ * Per-touchscreen data.
-+ */
-+
-+struct s3c2410ts {
-+      struct input_dev *dev;
-+      long xp;
-+      long yp;
-+      int count;
-+      int shift;
-+};
-+
-+static struct s3c2410ts ts;
-+static void __iomem *base_addr;
-+
-+static inline void s3c2410_ts_connect(void)
-+{
-+      s3c2410_gpio_cfgpin(S3C2410_GPG12, S3C2410_GPG12_XMON);
-+      s3c2410_gpio_cfgpin(S3C2410_GPG13, S3C2410_GPG13_nXPON);
-+      s3c2410_gpio_cfgpin(S3C2410_GPG14, S3C2410_GPG14_YMON);
-+      s3c2410_gpio_cfgpin(S3C2410_GPG15, S3C2410_GPG15_nYPON);
-+}
-+
-+static void touch_timer_fire(unsigned long data)
-+{
-+      unsigned long data0;
-+      unsigned long data1;
-+      int updown;
-+
-+      data0 = readl(base_addr+S3C2410_ADCDAT0);
-+      data1 = readl(base_addr+S3C2410_ADCDAT1);
-+
-+      updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));
-+
-+      if (updown) {
-+              if (ts.count != 0) {
-+                      ts.xp >>= ts.shift;
-+                      ts.yp >>= ts.shift;
-+
-+#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
-+                      {
-+                              struct timeval tv;
-+                              do_gettimeofday(&tv);
-+                              printk(DEBUG_LVL "T: %06d, X: %03ld, Y: %03ld\n", (int)tv.tv_usec, ts.xp, ts.yp);
-+                      }
-+#endif
-+
-+                      input_report_abs(ts.dev, ABS_X, ts.xp);
-+                      input_report_abs(ts.dev, ABS_Y, ts.yp);
-+
-+                      input_report_key(ts.dev, BTN_TOUCH, 1);
-+                      input_report_abs(ts.dev, ABS_PRESSURE, 1);
-+                      input_sync(ts.dev);
-+              }
-+
-+              ts.xp = 0;
-+              ts.yp = 0;
-+              ts.count = 0;
-+
-+              writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC);
-+              writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON);
-+      } else {
-+              ts.count = 0;
-+
-+              input_report_key(ts.dev, BTN_TOUCH, 0);
-+              input_report_abs(ts.dev, ABS_PRESSURE, 0);
-+              input_sync(ts.dev);
-+
-+              writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
-+      }
-+}
-+
-+static struct timer_list touch_timer =
-+              TIMER_INITIALIZER(touch_timer_fire, 0, 0);
-+
-+static irqreturn_t stylus_updown(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+      unsigned long data0;
-+      unsigned long data1;
-+      int updown;
-+
-+      data0 = readl(base_addr+S3C2410_ADCDAT0);
-+      data1 = readl(base_addr+S3C2410_ADCDAT1);
-+
-+      updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));
-+
-+      /* TODO we should never get an interrupt with updown set while
-+       * the timer is running, but maybe we ought to verify that the
-+       * timer isn't running anyways. */
-+
-+      if (updown)
-+              touch_timer_fire(0);
-+
-+      return IRQ_HANDLED;
-+}
-+
-+
-+static irqreturn_t stylus_action(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+      unsigned long data0;
-+      unsigned long data1;
-+
-+      data0 = readl(base_addr+S3C2410_ADCDAT0);
-+      data1 = readl(base_addr+S3C2410_ADCDAT1);
-+
-+      ts.xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK;
-+      ts.yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK;
-+      ts.count++;
-+
-+        if (ts.count < (1<<ts.shift)) {
-+              writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC);
-+              writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON);
-+      } else {
-+              mod_timer(&touch_timer, jiffies+1);
-+              writel(WAIT4INT(1), base_addr+S3C2410_ADCTSC);
-+      }
-+
-+      return IRQ_HANDLED;
-+}
-+
-+static struct clk     *adc_clock;
-+
-+/*
-+ * The functions for inserting/removing us as a module.
-+ */
-+
-+static int __init s3c2410ts_probe(struct platform_device *pdev)
-+{
-+      struct s3c2410_ts_mach_info *info;
-+      struct input_dev *input_dev;
-+
-+      info = ( struct s3c2410_ts_mach_info *)pdev->dev.platform_data;
-+
-+      if (!info)
-+      {
-+              printk(KERN_ERR "Hm... too bad : no platform data for ts\n");
-+              return -EINVAL;
-+      }
-+
-+#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
-+      printk(DEBUG_LVL "Entering s3c2410ts_init\n");
-+#endif
-+
-+      adc_clock = clk_get(NULL, "adc");
-+      if (!adc_clock) {
-+              printk(KERN_ERR "failed to get adc clock source\n");
-+              return -ENOENT;
-+      }
-+      clk_enable(adc_clock);
-+
-+#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
-+      printk(DEBUG_LVL "got and enabled clock\n");
-+#endif
-+
-+      base_addr=ioremap(S3C2410_PA_ADC,0x20);
-+      if (base_addr == NULL) {
-+              printk(KERN_ERR "Failed to remap register block\n");
-+              return -ENOMEM;
-+      }
-+
-+
-+      /* Configure GPIOs */
-+      s3c2410_ts_connect();
-+
-+      if ((info->presc&0xff) > 0)
-+              writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(info->presc&0xFF),\
-+                           base_addr+S3C2410_ADCCON);
-+      else
-+              writel(0,base_addr+S3C2410_ADCCON);
-+
-+
-+      /* Initialise registers */
-+      if ((info->delay&0xffff) > 0)
-+              writel(info->delay & 0xffff,  base_addr+S3C2410_ADCDLY);
-+
-+      writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
-+
-+      /* Initialise input stuff */
-+      memset(&ts, 0, sizeof(struct s3c2410ts));
-+      input_dev = input_allocate_device();
-+
-+      if (!input_dev) {
-+              printk(KERN_ERR "Unable to allocate the input device !!\n");
-+              return -ENOMEM;
-+      }
-+
-+      ts.dev = input_dev;
-+      ts.dev->evbit[0] = BIT(EV_SYN) | BIT(EV_KEY) | BIT(EV_ABS);
-+      ts.dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH);
-+      input_set_abs_params(ts.dev, ABS_X, 0, 0x3FF, 0, 0);
-+      input_set_abs_params(ts.dev, ABS_Y, 0, 0x3FF, 0, 0);
-+      input_set_abs_params(ts.dev, ABS_PRESSURE, 0, 1, 0, 0);
-+
-+      ts.dev->private = &ts;
-+      ts.dev->name = s3c2410ts_name;
-+      ts.dev->id.bustype = BUS_RS232;
-+      ts.dev->id.vendor = 0xDEAD;
-+      ts.dev->id.product = 0xBEEF;
-+      ts.dev->id.version = S3C2410TSVERSION;
-+
-+      ts.shift = info->oversampling_shift;
-+
-+      /* Get irqs */
-+      if (request_irq(IRQ_ADC, stylus_action, SA_SAMPLE_RANDOM,
-+              "s3c2410_action", ts.dev)) {
-+              printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_ADC !\n");
-+              iounmap(base_addr);
-+              return -EIO;
-+      }
-+      if (request_irq(IRQ_TC, stylus_updown, SA_SAMPLE_RANDOM,
-+                      "s3c2410_action", ts.dev)) {
-+              printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_TC !\n");
-+              iounmap(base_addr);
-+              return -EIO;
-+      }
-+
-+      printk(KERN_INFO "%s successfully loaded\n", s3c2410ts_name);
-+
-+      /* All went ok, so register to the input system */
-+      input_register_device(ts.dev);
-+
-+      return 0;
-+}
-+
-+static int s3c2410ts_remove(struct platform_device *pdev)
-+{
-+      disable_irq(IRQ_ADC);
-+      disable_irq(IRQ_TC);
-+      free_irq(IRQ_TC,ts.dev);
-+      free_irq(IRQ_ADC,ts.dev);
-+
-+      if (adc_clock) {
-+              clk_disable(adc_clock);
-+              clk_put(adc_clock);
-+              adc_clock = NULL;
-+      }
-+
-+      input_unregister_device(ts.dev);
-+      iounmap(base_addr);
-+
-+      return 0;
-+}
-+
-+static struct platform_driver s3c2410ts_driver = {
-+       .driver         = {
-+             .name   = "s3c2410-ts",
-+             .owner  = THIS_MODULE,
-+       },
-+       .probe          = s3c2410ts_probe,
-+       .remove         = s3c2410ts_remove,
-+};
-+
-+
-+static int __init s3c2410ts_init(void)
-+{
-+      return platform_driver_register(&s3c2410ts_driver);
-+}
-+
-+static void __exit s3c2410ts_exit(void)
-+{
-+      platform_driver_unregister(&s3c2410ts_driver);
-+}
-+
-+module_init(s3c2410ts_init);
-+module_exit(s3c2410ts_exit);
-+
-+/*
-+    Local variables:
-+        compile-command: "make ARCH=arm CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux- -k -C ../../.."
-+        c-basic-offset: 8
-+    End:
-+*/
-Index: linux-2.6.19/include/asm-arm/arch-s3c2410/regs-adc.h
-===================================================================
---- linux-2.6.19.orig/include/asm-arm/arch-s3c2410/regs-adc.h
-+++ linux-2.6.19/include/asm-arm/arch-s3c2410/regs-adc.h
-@@ -41,7 +41,7 @@
- #define S3C2410_ADCTSC_XP_SEN         (1<<4)
- #define S3C2410_ADCTSC_PULL_UP_DISABLE        (1<<3)
- #define S3C2410_ADCTSC_AUTO_PST               (1<<2)
--#define S3C2410_ADCTSC_XY_PST         (0x3<<0)
-+#define S3C2410_ADCTSC_XY_PST(x)      (((x)&0x3)<<0)
- /* ADCDAT0 Bits */
- #define S3C2410_ADCDAT0_UPDOWN                (1<<15)
-Index: linux-2.6.19/include/asm-arm/arch-s3c2410/ts.h
-===================================================================
---- /dev/null
-+++ linux-2.6.19/include/asm-arm/arch-s3c2410/ts.h
-@@ -0,0 +1,28 @@
-+/* linux/include/asm/arch-s3c2410/ts.h
-+ *
-+ * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
-+ *
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ *
-+ *  Changelog:
-+ *     24-Mar-2005     RTP     Created file
-+ *     03-Aug-2005     RTP     Renamed to ts.h
-+ */
-+
-+#ifndef __ASM_ARM_TS_H
-+#define __ASM_ARM_TS_H
-+
-+struct s3c2410_ts_mach_info {
-+       int             delay;
-+       int             presc;
-+       int             oversampling_shift;
-+};
-+
-+void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info);
-+
-+#endif /* __ASM_ARM_TS_H */
-+
-Index: linux-2.6.19/arch/arm/mach-s3c2410/mach-smdk2440.c
-===================================================================
---- linux-2.6.19.orig/arch/arm/mach-s3c2410/mach-smdk2440.c
-+++ linux-2.6.19/arch/arm/mach-s3c2410/mach-smdk2440.c
-@@ -35,6 +35,7 @@
- #include <asm/arch/regs-serial.h>
- #include <asm/arch/regs-gpio.h>
- #include <asm/arch/regs-lcd.h>
-+#include <asm/arch/ts.h>
- #include <asm/arch/idle.h>
- #include <asm/arch/fb.h>
-@@ -177,6 +178,7 @@ static struct platform_device *smdk2440_
-       &s3c_device_wdt,
-       &s3c_device_i2c,
-       &s3c_device_iis,
-+      &s3c_device_ts,
- };
- static struct s3c24xx_board smdk2440_board __initdata = {
-@@ -184,6 +186,12 @@ static struct s3c24xx_board smdk2440_boa
-       .devices_count = ARRAY_SIZE(smdk2440_devices)
- };
-+static struct s3c2410_ts_mach_info qt2410_ts_cfg = {
-+      .delay = 10000,
-+      .presc = 49,
-+      .oversampling_shift = 2,
-+};
-+
- static void __init smdk2440_map_io(void)
- {
-       s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
-@@ -195,6 +203,7 @@ static void __init smdk2440_map_io(void)
- static void __init smdk2440_machine_init(void)
- {
-       s3c24xx_fb_set_platdata(&smdk2440_lcd_cfg);
-+      set_s3c2410ts_info(&qt2410_ts_cfg);
-       smdk_machine_init();
- }
diff --git a/packages/linux/linux-smdk2440_2.6.19.bb b/packages/linux/linux-smdk2440_2.6.19.bb
deleted file mode 100644 (file)
index 6b839bd..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-DESCRIPTION = "Linux Kernel for smdk2440 compatible machines"
-SECTION = "kernel"
-LICENSE = "GPL"
-PR = "r1"
-
-GGSRC = "http://www.xora.org.uk/oe/patches/"
-
-SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
-           ${GGSRC}smdk2440-cs89x0-r1.patch;patch=1 \
-           file://smdk2440-touchscreen-r3.patch;patch=1 \
-           http://opensource.wolfsonmicro.com/~lg/asoc/asoc-v0.12.6.patch;patch=1 \
-           file://defconfig-smdk2440"
-
-S = "${WORKDIR}/linux-${PV}"
-
-inherit kernel
-
-COMPATIBLE_HOST = "arm.*-linux"
-COMPATIBLE_MACHINE = "smdk2440"
-KERNEL_IMAGETYPE = "zImage"
-
-do_configure() {
-       install ${WORKDIR}/defconfig-smdk2440 ${S}/.config
-       #oe_runmake s3c2410_defconfig
-       oe_runmake oldconfig
-}
-
-do_deploy() {
-        install -d ${DEPLOY_DIR_IMAGE}
-        install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin
-        rm -f ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin
-        ln -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin
-        tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_VERSION}-${MACHINE}.tgz -C ${D} lib
-}
-
-do_deploy[dirs] = "${S}"
-
-addtask deploy before do_package after do_install
-
diff --git a/packages/linux/linux-smdk2440_2.6.20+git.bb b/packages/linux/linux-smdk2440_2.6.20+git.bb
new file mode 100644 (file)
index 0000000..ea9cbfb
--- /dev/null
@@ -0,0 +1,38 @@
+DESCRIPTION = "Linux Kernel for smdk2440 compatible machines"
+SECTION = "kernel"
+LICENSE = "GPL"
+PR = "r1"
+
+GGSRC = "http://www.xora.org.uk/oe/patches/"
+
+SRC_URI = "git://opensource.wolfsonmicro.com/linux-2.6-asoc-ggdev;protocol=git;tag=asoc-merge-0002 \
+           file://0001-Enable-cs8900A-network-device-for-smdk2440-board.patch;patch=1 \
+           file://defconfig-smdk2440"
+
+S = "${WORKDIR}/git"
+
+inherit kernel
+
+COMPATIBLE_HOST = "arm.*-linux"
+COMPATIBLE_MACHINE = "smdk2440"
+KERNEL_IMAGETYPE = "zImage"
+
+do_configure() {
+       install ${WORKDIR}/defconfig-smdk2440 ${S}/.config
+       #oe_runmake s3c2410_defconfig
+       oe_runmake oldconfig
+}
+
+do_deploy() {
+        install -d ${DEPLOY_DIR_IMAGE}
+        install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin
+        rm -f ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin
+        ln -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin
+        tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${MACHINE}.tgz -C ${D} lib
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask deploy before do_package after do_install
+
+KERNEL_RELEASE = "2.6.21"