Send commitlog mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
        [EMAIL PROTECTED]

You can reach the person managing the list at
        [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:

   1. r3186 - branches/src/target/kernel/2.6.23.x/patches
      ([EMAIL PROTECTED])
   2. r3187 - branches/src/target/kernel/2.6.23.x/patches
      ([EMAIL PROTECTED])
   3. r3188 - branches/src/target/kernel/2.6.23.x/patches
      ([EMAIL PROTECTED])
--- Begin Message ---
Author: shoragan
Date: 2007-10-16 13:58:14 +0200 (Tue, 16 Oct 2007)
New Revision: 3186

Modified:
   branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch
   branches/src/target/kernel/2.6.23.x/patches/pcf50633.patch
Log:
Follow change in 2.6.22:
(orig r3133):  laforge | 2007-10-09 17:57:30 +0200

* export all pcf50633 symbols as _GPL symbols.
* replace pcf50633_gpo0_{get,set} with generic pcf50633_gpio_{get,set}
* complete GTA02 >= v2 GSM power switching support (based on patch by jserv)


Modified: branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch        
2007-10-16 08:38:21 UTC (rev 3185)
+++ branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch        
2007-10-16 11:58:14 UTC (rev 3186)
@@ -858,17 +858,22 @@
 ===================================================================
 --- linux-2.6.22.orig/arch/arm/common/gta01_pm_gsm.c
 +++ linux-2.6.22/arch/arm/common/gta01_pm_gsm.c
-@@ -19,7 +19,9 @@
+@@ -19,8 +19,14 @@
  #include <linux/errno.h>
  
  #include <asm/hardware.h>
 +#include <asm/mach-types.h>
  #include <asm/arch/gta01.h>
+ 
++#ifdef CONFIG_MACH_NEO1973_GTA02
 +#include <asm/arch/gta02.h>
- 
++#include <linux/pcf50633.h>
++#endif
++
  struct gta01pm_priv {
        int gpio_ngsm_en;
-@@ -70,11 +72,12 @@
+       struct console *con;
+@@ -70,27 +76,47 @@
  
        if (!strcmp(attr->attr.name, "power_on")) {
                if (on) {
@@ -884,7 +889,29 @@
  
                        if (gta01_gsm.gpio_ngsm_en)
                                s3c2410_gpio_setpin(gta01_gsm.gpio_ngsm_en, 0);
-@@ -86,11 +89,12 @@
+ 
++                      switch (system_rev) {
++#ifdef CONFIG_MACH_NEO1973_GTA02
++                      case GTA02v2_SYSTEM_REV:
++                              pcf50633_gpio_set(pcf50633_global,
++                                                PCF50633_GPIO2, 1);
++                              break;
++#endif
++                      }
++
+                       s3c2410_gpio_setpin(GTA01_GPIO_MODEM_ON, 1);
+               } else {
+                       s3c2410_gpio_setpin(GTA01_GPIO_MODEM_ON, 0);
+ 
++                      switch (system_rev) {
++#ifdef CONFIG_MACH_NEO1973_GTA02
++                      case GTA02v2_SYSTEM_REV:
++                              pcf50633_gpio_set(pcf50633_global,
++                                                PCF50633_GPIO2, 0);
++                              break;
++#endif
++                      }
++
                        if (gta01_gsm.gpio_ngsm_en)
                                s3c2410_gpio_setpin(gta01_gsm.gpio_ngsm_en, 1);
  
@@ -900,18 +927,23 @@
                }
        } else if (!strcmp(attr->attr.name, "reset")) {
                s3c2410_gpio_setpin(GTA01_GPIO_MODEM_RST, on);
-@@ -158,6 +162,10 @@
+@@ -158,8 +184,14 @@
                        gta01_gsm.gpio_ngsm_en = GTA01Bv2_GPIO_nGSM_EN;
                        s3c2410_gpio_setpin(GTA01v3_GPIO_nGSM_EN, 0);
                        break;
++#ifdef CONFIG_MACH_NEO1973_GTA02
 +              case GTA02v1_SYSTEM_REV:
 +              case GTA02v2_SYSTEM_REV:
 +                      gta01_gsm.gpio_ngsm_en = 0;
 +                      break;
++#endif
                default:
-                       dev_warn(&pdev->dev, "Unknown GTA01 Revision 0x%x, "
+-                      dev_warn(&pdev->dev, "Unknown GTA01 Revision 0x%x, "
++                      dev_warn(&pdev->dev, "Unknown Neo1973 Revision 0x%x, "
                                 "some PM features not available!!!\n",
-@@ -175,9 +183,13 @@
+                                system_rev);
+                       break;
+@@ -175,9 +207,13 @@
                break;
        }
  
@@ -928,6 +960,12 @@
  
        return sysfs_create_group(&pdev->dev.kobj, &gta01_gsm_attr_group);
  }
+@@ -214,4 +250,4 @@
+ 
+ MODULE_LICENSE("GPL");
+ MODULE_AUTHOR("Harald Welte <[EMAIL PROTECTED]>");
+-MODULE_DESCRIPTION("FIC GTA01 (Neo1973) GSM Management");
++MODULE_DESCRIPTION("FIC Neo1973 GSM Power Management");
 Index: linux-2.6.22/sound/soc/s3c24xx/neo1973_wm8753.c
 ===================================================================
 --- linux-2.6.22.orig/sound/soc/s3c24xx/neo1973_wm8753.c

Modified: branches/src/target/kernel/2.6.23.x/patches/pcf50633.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/pcf50633.patch  2007-10-16 
08:38:21 UTC (rev 3185)
+++ branches/src/target/kernel/2.6.23.x/patches/pcf50633.patch  2007-10-16 
11:58:14 UTC (rev 3186)
@@ -155,7 +155,7 @@
 +static struct i2c_driver pcf50633_driver;
 +
 +struct pcf50633_data *pcf50633_global;
-+EXPORT_SYMBOL(pcf50633_global);
++EXPORT_SYMBOL_GPL(pcf50633_global);
 +
 +static struct platform_device *pcf50633_pdev;
 +
@@ -376,7 +376,7 @@
 +
 +      return 0;
 +}
-+EXPORT_SYMBOL(pcf50633_onoff_set);
++EXPORT_SYMBOL_GPL(pcf50633_onoff_set);
 +
 +int pcf50633_onoff_get(struct pcf50633_data *pcf,
 +                     enum pcf50633_regulator_id reg)
@@ -392,7 +392,7 @@
 +
 +      return val;
 +}
-+EXPORT_SYMBOL(pcf50633_onoff_get);
++EXPORT_SYMBOL_GPL(pcf50633_onoff_get);
 +
 +int pcf50633_voltage_set(struct pcf50633_data *pcf,
 +                       enum pcf50633_regulator_id reg,
@@ -437,7 +437,7 @@
 +
 +      return reg_write(pcf, regnr, volt_bits);
 +}
-+EXPORT_SYMBOL(pcf50633_voltage_set);
++EXPORT_SYMBOL_GPL(pcf50633_voltage_set);
 +
 +unsigned int pcf50633_voltage_get(struct pcf50633_data *pcf,
 +                       enum pcf50633_regulator_id reg)
@@ -477,7 +477,7 @@
 +
 +      return rc;
 +}
-+EXPORT_SYMBOL(pcf50633_voltage_get);
++EXPORT_SYMBOL_GPL(pcf50633_voltage_get);
 +
 +/* go into 'STANDBY' mode, i.e. power off the main CPU and peripherals */
 +void pcf50633_go_standby(void)
@@ -485,32 +485,32 @@
 +      reg_write(pcf50633_global, PCF50633_REG_OOCSHDWN,
 +                PCF50633_OOCSHDWN_GOSTDBY);
 +}
-+EXPORT_SYMBOL(pcf50633_go_standby);
++EXPORT_SYMBOL_GPL(pcf50633_go_standby);
 +
-+void pcf50633_gpo0_set(struct pcf50633_data *pcf, int on)
++void pcf50633_gpio_set(struct pcf50633_data *pcf, enum pcf50633_gpio gpio,
++                      int on)
 +{
-+      u_int8_t val;
++      u_int8_t reg = PCF50633_GPIO1-1 + gpio;
 +
 +      if (on)
-+              val = PCF50633_GPOCFG_GPOSEL_1;
++              reg_set_bit_mask(pcf, reg, 0x0f, 0x07);
 +      else
-+              val = PCF50633_GPOCFG_GPOSEL_0;
-+
-+      reg_set_bit_mask(pcf, PCF50633_REG_GPOCFG, 0x0f, val);
++              reg_set_bit_mask(pcf, reg, 0x0f, 0x00);
 +}
-+EXPORT_SYMBOL(pcf50633_gpo0_set);
++EXPORT_SYMBOL_GPL(pcf50633_gpio_set);
 +
-+int pcf50633_gpo0_get(struct pcf50633_data *pcf)
++int pcf50633_gpio_get(struct pcf50633_data *pcf, enum pcf50633_gpio gpio)
 +{
-+      u_int8_t reg = reg_read(pcf, PCF50633_REG_GPOCFG) & 0x0f;
++      u_int8_t reg = PCF50633_GPIO1-1 + gpio;
++      u_int8_t val = reg_read(pcf, reg) & 0x0f;
 +
-+      if (reg == PCF50633_GPOCFG_GPOSEL_1 ||
-+          reg == (PCF50633_GPOCFG_GPOSEL_0|PCF50633_GPOCFG_GPOSEL_INVERSE))
++      if (val == PCF50633_GPOCFG_GPOSEL_1 ||
++          val == (PCF50633_GPOCFG_GPOSEL_0|PCF50633_GPOCFG_GPOSEL_INVERSE))
 +              return 1;
 +
 +      return 0;
 +}
-+EXPORT_SYMBOL(pcf50633_gpo0_get);
++EXPORT_SYMBOL_GPL(pcf50633_gpio_get);
 +
 +static void pcf50633_work(struct work_struct *work)
 +{
@@ -750,7 +750,7 @@
 +
 +      return adc_to_batt_millivolts(adc);
 +}
-+EXPORT_SYMBOL(pcf50633_battvolt);
++EXPORT_SYMBOL_GPL(pcf50633_battvolt);
 +
 +static ssize_t show_battvolt(struct device *dev, struct device_attribute 
*attr,
 +                           char *buf)
@@ -884,7 +884,7 @@
 +      }
 +#endif
 +}
-+EXPORT_SYMBOL(pcf50633_charge_fast);
++EXPORT_SYMBOL_GPL(pcf50633_charge_fast);
 +
 +#define ONE                   1000000
 +static inline u_int16_t adc_to_rntc(struct pcf50633_data *pcf, u_int16_t adc)
@@ -1755,7 +1755,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.22/include/linux/pcf50633.h
-@@ -0,0 +1,103 @@
+@@ -0,0 +1,110 @@
 +#ifndef _LINUX_PCF50633_H
 +#define _LINUX_PCF50633_H
 +
@@ -1781,11 +1781,18 @@
 +extern void
 +pcf50633_go_standby(void);
 +
++enum pcf50633_gpio {
++      PCF50633_GPIO1 = 1,
++      PCF50633_GPIO2 = 2,
++      PCF50633_GPIO3 = 3,
++      PCF50633_GPO = 4,
++};
++
 +extern void
-+pcf50633_gpo0_set(struct pcf50633_data *pcf, int on);
++pcf50633_gpio_set(struct pcf50633_data *pcf, enum pcf50633_gpio gpio, int on);
 +
 +extern int
-+pcf50633_gpo0_get(struct pcf50633_data *pcf);
++pcf50633_gpio_get(struct pcf50633_data *pcf, enum pcf50633_gpio gpio);
 +
 +extern int
 +pcf50633_voltage_set(struct pcf50633_data *pcf,




--- End Message ---
--- Begin Message ---
Author: shoragan
Date: 2007-10-16 15:42:02 +0200 (Tue, 16 Oct 2007)
New Revision: 3187

Modified:
   branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch
   branches/src/target/kernel/2.6.23.x/patches/pcf50633.patch
Log:
Follow change in 2.6.22:
Fix function rename in pcf50633.h because .23 is compiled with 
-Werror-implicit-function-declaration.
see: 
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=94bed2a9c4ae980838003f5d32681eef794ecc28

(orig r3136):  laforge | 2007-10-09 19:26:37 +0200

GTA02: implement USB battery charging control using pcf50633


Modified: branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch        
2007-10-16 11:58:14 UTC (rev 3186)
+++ branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch        
2007-10-16 13:42:02 UTC (rev 3187)
@@ -2,7 +2,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.22/arch/arm/mach-s3c2440/mach-gta02.c
-@@ -0,0 +1,666 @@
+@@ -0,0 +1,658 @@
 +/*
 + * linux/arch/arm/mach-s3c2440/mach-gta02.c
 + *
@@ -128,11 +128,11 @@
 +              switch (event) {
 +              case PMU_EVT_INSERT:
 +              case PMU_EVT_USB_INSERT:
-+                      pcf50633_charge_fast(pcf50633_global, 1);
++                      pcf50633_charge_enable(pcf50633_global, 1);
 +                      break;
 +              case PMU_EVT_REMOVE:
 +              case PMU_EVT_USB_REMOVE:
-+                      pcf50633_charge_fast(pcf50633_global, 0);
++                      pcf50633_charge_enable(pcf50633_global, 0);
 +                      break;
 +              default:
 +                      break;
@@ -385,15 +385,7 @@
 +
 +static void __gta02_udc_vbus_draw(struct work_struct *work)
 +{
-+      if (gta02_udc_vbus_drawer.ma >= 500) {
-+              /* enable fast charge */
-+              printk(KERN_DEBUG "udc: enabling fast charge\n");
-+              pcf50633_charge_fast(pcf50633_global, 1);
-+      } else {
-+              /* disable fast charge */
-+              printk(KERN_DEBUG "udc: disabling fast charge\n");
-+              pcf50633_charge_fast(pcf50633_global, 0);
-+      }
++      pcf50633_usb_curlim_set(pcf50633_global, gta02_udc_vbus_drawer.ma);
 +}
 +
 +static void gta02_udc_vbus_draw(unsigned int ma)

Modified: branches/src/target/kernel/2.6.23.x/patches/pcf50633.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/pcf50633.patch  2007-10-16 
11:58:14 UTC (rev 3186)
+++ branches/src/target/kernel/2.6.23.x/patches/pcf50633.patch  2007-10-16 
13:42:02 UTC (rev 3187)
@@ -34,7 +34,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.22/drivers/i2c/chips/pcf50633.c
-@@ -0,0 +1,1716 @@
+@@ -0,0 +1,1736 @@
 +/* Philips PCF50633 Power Management Unit (PMU) driver
 + *
 + * (C) 2006-2007 by OpenMoko, Inc.
@@ -105,9 +105,8 @@
 +
 +I2C_CLIENT_INSMOD_1(pcf50633);
 +
-+#define PCF50633_F_CHG_FAST   0x00000001      /* Charger Fast allowed */
++#define PCF50633_F_CHG_ENABLED        0x00000001      /* Charger enabled */
 +#define PCF50633_F_CHG_PRESENT        0x00000002      /* Charger present */
-+#define PCF50633_F_CHG_FOK    0x00000004      /* Fast OK for battery */
 +#define PCF50633_F_CHG_ERR    0x00000008      /* Charger Error */
 +#define PCF50633_F_CHG_PROT   0x00000010      /* Charger Protection */
 +#define PCF50633_F_CHG_READY  0x00000020      /* Charging completed */
@@ -632,10 +631,12 @@
 +      }
 +      if (int3 & PCF50633_INT3_THLIMON) {
 +              DEBUGPC("THLIMON ");
++              pcf->flags |= PCF50633_F_CHG_PROT;
 +              /* FIXME: signal this to userspace */
 +      }
 +      if (int3 & PCF50633_INT3_THLIMOFF) {
 +              DEBUGPC("THLIMOFF ");
++              pcf->flags &= ~PCF50633_F_CHG_PROT;
 +              /* FIXME: signal this to userspace */
 +      }
 +      if (int3 & PCF50633_INT3_USBLIMON) {
@@ -857,34 +858,66 @@
 + * Charger Control
 + ***********************************************************************/
 +
-+/* Enable/disable fast charging (500mA in the GTA02) */
-+void pcf50633_charge_fast(struct pcf50633_data *pcf, int on)
++/* Set maximum USB current limit */
++void pcf50633_usb_curlim_set(struct pcf50633_data *pcf, int ma)
 +{
-+#if 0
-+      if (!(pcf->pdata->used_features & PCF50606_FEAT_MBC))
++      u_int8_t bits;
++
++      dev_dbg(&pcf->client.dev, "setting usb current limit to %d ma", ma);
++
++      if (ma >= 1000)
++              bits = PCF50633_MBCC7_USB_1000mA;
++      else if (ma >= 500)
++              bits = PCF50633_MBCC7_USB_500mA;
++      else if (ma >= 100)
++              bits = PCF50633_MBCC7_USB_100mA;
++      else
++              bits = PCF50633_MBCC7_USB_SUSPEND;
++
++      reg_set_bit_mask(pcf, PCF50633_REG_MBCC7, PCF56033_MBCC7_USB_MASK,
++                       bits);
++}
++EXPORT_SYMBOL_GPL(pcf50633_usb_curlim_set);
++
++static ssize_t show_usblim(struct device *dev, struct device_attribute *attr,
++                         char *buf)
++{
++      struct i2c_client *client = to_i2c_client(dev);
++      struct pcf50633_data *pcf = i2c_get_clientdata(client);
++      u_int8_t usblim = reg_read(pcf, PCF50633_REG_MBCC7) &
++                                              PCF56033_MBCC7_USB_MASK;
++      unsigned int ma;
++
++      if (usblim == PCF50633_MBCC7_USB_1000mA)
++              ma = 1000;
++      else if (usblim == PCF50633_MBCC7_USB_500mA)
++              ma = 500;
++      else if (usblim == PCF50633_MBCC7_USB_100mA)
++              ma = 100;
++      else
++              ma = 0;
++
++      return sprintf(buf, "%u\n", ma);
++}
++static DEVICE_ATTR(usb_curlim, S_IRUGO | S_IWUSR, show_usblim, NULL);
++
++/* Enable/disable charging */
++void pcf50633_charge_enable(struct pcf50633_data *pcf, int on)
++{
++      u_int8_t bits;
++
++      if (!(pcf->pdata->used_features & PCF50633_FEAT_MBC))
 +              return;
 +
 +      if (on) {
-+              /* We can allow PCF to automatically charge
-+               * using Ifast */
-+              pcf->flags |= PCF50606_F_CHG_FAST;
-+              reg_set_bit_mask(pcf, PCF50606_REG_MBCC1,
-+                               PCF50606_MBCC1_AUTOFST,
-+                               PCF50606_MBCC1_AUTOFST);
++              pcf->flags |= PCF50633_F_CHG_ENABLED;
++              bits = PCF50633_MBCC1_CHGENA;
 +      } else {
-+              pcf->flags &= ~PCF50606_F_CHG_FAST;
-+              /* disable automatic fast-charge */
-+              reg_clear_bits(pcf, PCF50606_REG_MBCC1,
-+                              PCF50606_MBCC1_AUTOFST);
-+              /* switch to idle mode to abort existing charge
-+               * process */
-+              reg_set_bit_mask(pcf, PCF50606_REG_MBCC1,
-+                               PCF50606_MBCC1_CHGMOD_MASK,
-+                               PCF50606_MBCC1_CHGMOD_IDLE);
++              pcf->flags &= ~PCF50633_F_CHG_ENABLED;
++              bits = 0;
 +      }
-+#endif
 +}
-+EXPORT_SYMBOL_GPL(pcf50633_charge_fast);
++EXPORT_SYMBOL_GPL(pcf50633_charge_enable);
 +
 +#define ONE                   1000000
 +static inline u_int16_t adc_to_rntc(struct pcf50633_data *pcf, u_int16_t adc)
@@ -981,36 +1014,24 @@
 +{
 +      struct i2c_client *client = to_i2c_client(dev);
 +      struct pcf50633_data *pcf = i2c_get_clientdata(client);
-+#if 0
-+      u_int8_t mbcc1 = reg_read(pcf, PCF50606_REG_MBCC1);
 +
-+      mbcc1 &= ~PCF50606_MBCC1_CHGMOD_MASK;
++      /* As opposed to the PCF50606, we can only enable or disable
++       * charging and not directly jump into a certain mode! */
 +
-+      if (!strcmp(buf, "qualification"))
-+              mbcc1 |= PCF50606_MBCC1_CHGMOD_QUAL;
-+      else if (!strcmp(buf, "pre"))
-+              mbcc1 |= PCF50606_MBCC1_CHGMOD_PRE;
-+      else if (!strcmp(buf, "trickle"))
-+              mbcc1 |= PCF50606_MBCC1_CHGMOD_TRICKLE;
-+      else if (!strcmp(buf, "fast_cccv"))
-+              mbcc1 |= PCF50606_MBCC1_CHGMOD_FAST_CCCV;
-+      /* We don't allow the other fast modes for security reasons */
-+      else if (!strcmp(buf, "idle"))
-+              mbcc1 |= PCF50606_MBCC1_CHGMOD_IDLE;
++      if (!strcmp(buf, "0\n"))
++              pcf50633_charge_enable(pcf, 0);
 +      else
-+              return -EINVAL;
++              pcf50633_charge_enable(pcf, 1);
 +
-+      reg_write(pcf, PCF50606_REG_MBCC1, mbcc1);
-+#endif
 +      return count;
 +}
 +
 +static DEVICE_ATTR(chgmode, S_IRUGO | S_IWUSR, show_chgmode, set_chgmode);
 +
 +static const char *chgstate_names[] = {
-+      [PCF50633_F_CHG_FAST]                   = "fast_enabled",
-+      [PCF50633_F_CHG_PRESENT]                = "present",
-+      [PCF50633_F_CHG_FOK]                    = "fast_ok",
++      [PCF50633_F_CHG_ENABLED]                = "enabled",
++      [PCF50633_F_CHG_PRESENT]                = "charger_present",
++      [PCF50633_F_USB_PRESENT]                = "usb_present",
 +      [PCF50633_F_CHG_ERR]                    = "error",
 +      [PCF50633_F_CHG_PROT]                   = "protection",
 +      [PCF50633_F_CHG_READY]                  = "ready",
@@ -1021,7 +1042,7 @@
 +{
 +      struct i2c_client *client = to_i2c_client(dev);
 +      struct pcf50633_data *pcf = i2c_get_clientdata(client);
-+#if 0
++
 +      char *b = buf;
 +      int i;
 +
@@ -1033,8 +1054,6 @@
 +              b += sprintf(b, "\n");
 +
 +      return b - buf;
-+#endif
-+      return 0;
 +}
 +static DEVICE_ATTR(chgstate, S_IRUGO | S_IWUSR, show_chgstate, NULL);
 +
@@ -1323,7 +1342,7 @@
 +};
 +#endif
 +
-+static struct attribute *pcf_sysfs_entries[17] = {
++static struct attribute *pcf_sysfs_entries[18] = {
 +      &dev_attr_voltage_auto.attr,
 +      &dev_attr_voltage_down1.attr,
 +      &dev_attr_voltage_down2.attr,
@@ -1354,6 +1373,7 @@
 +      if (pcf->pdata->used_features & PCF50633_FEAT_MBC) {
 +              pcf_sysfs_entries[i++] = &dev_attr_chgstate.attr;
 +              pcf_sysfs_entries[i++] = &dev_attr_chgmode.attr;
++              pcf_sysfs_entries[i++] = &dev_attr_usb_curlim.attr;
 +      }
 +
 +      if (pcf->pdata->used_features & PCF50633_FEAT_CHGCUR)
@@ -1755,7 +1775,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.22/include/linux/pcf50633.h
-@@ -0,0 +1,110 @@
+@@ -0,0 +1,113 @@
 +#ifndef _LINUX_PCF50633_H
 +#define _LINUX_PCF50633_H
 +
@@ -1810,8 +1830,11 @@
 +                 enum pcf50633_regulator_id reg, int on);
 +
 +extern void
-+pcf50633_charge_fast(struct pcf50633_data *pcf, int on);
++pcf50633_usb_curlim_set(struct pcf50633_data *pcf, int ma);
 +
++extern void
++pcf50633_charge_enable(struct pcf50633_data *pcf, int on);
++
 +/* FIXME: sharded with pcf50606 */
 +#define PMU_VRAIL_F_SUSPEND_ON        0x00000001      /* Remains on during 
suspend */
 +#define PMU_VRAIL_F_UNUSED    0x00000002      /* This rail is not used */




--- End Message ---
--- Begin Message ---
Author: shoragan
Date: 2007-10-16 16:44:30 +0200 (Tue, 16 Oct 2007)
New Revision: 3188

Added:
   branches/src/target/kernel/2.6.23.x/patches/gta01-vibrator.patch
Removed:
   branches/src/target/kernel/2.6.23.x/patches/gta-vibrator.patch
Modified:
   branches/src/target/kernel/2.6.23.x/patches/gta01-backlight.patch
   branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch
   branches/src/target/kernel/2.6.23.x/patches/series
Log:
Revert commits r3099 and r3101 to be able to follow the changes in 2.6.22:
(orig r3137):  laforge | 2007-10-09 19:30:14 +0200

Modify GTA01 vibrator and backlight driver to work on top of new s3c2410 
generic pwm code
WARNING: this is untested and mainly just committed so shoragan can resolve
conflicts with his 2.6.23 work.  

If you're bumping OE's srcrev for the kernel beyond this commit, please make 
sure that
the vibrator and backlight control has been tested on GTA01Bv4!


Deleted: branches/src/target/kernel/2.6.23.x/patches/gta-vibrator.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/gta-vibrator.patch      
2007-10-16 13:42:02 UTC (rev 3187)
+++ branches/src/target/kernel/2.6.23.x/patches/gta-vibrator.patch      
2007-10-16 14:44:30 UTC (rev 3188)
@@ -1,98 +0,0 @@
-Index: linux-2.6.22/arch/arm/mach-s3c2410/mach-gta01.c
-===================================================================
---- linux-2.6.22.orig/arch/arm/mach-s3c2410/mach-gta01.c
-+++ linux-2.6.22/arch/arm/mach-s3c2410/mach-gta01.c
-@@ -55,6 +55,7 @@
- #include <asm/mach-types.h>
- 
- #include <asm/arch/regs-gpio.h>
-+#include <asm/arch/leds-gpio.h>
- #include <asm/arch/fb.h>
- #include <asm/arch/mci.h>
- #include <asm/arch/ts.h>
-@@ -585,17 +586,18 @@
-       },
- };
- 
--static struct resource gta01_led_resources[] = {
--      [0] = {
--              .start  = GTA01_GPIO_VIBRATOR_ON,
--              .end    = GTA01_GPIO_VIBRATOR_ON,
--      },
-+static struct s3c24xx_led_platdata gta01_led_pdata = {
-+    .name       = "gta01-vib",
-+    .gpio       = GTA01_GPIO_VIBRATOR_ON,
-+    .def_trigger    = "",
- };
- 
--struct platform_device gta01_led_dev = {
--      .name           = "gta01-led",
--      .num_resources  = ARRAY_SIZE(gta01_led_resources),
--      .resource       = gta01_led_resources,
-+static struct platform_device gta01_led_dev = {
-+    .name       = "s3c24xx_led",
-+    .id     = 1,
-+    .dev        = {
-+        .platform_data  = &gta01_led_pdata,
-+    },
- };
- 
- static struct resource gta01_button_resources[] = {
-@@ -688,14 +690,12 @@
-       case GTA01Bv2_SYSTEM_REV:
-       case GTA01Bv3_SYSTEM_REV:
-               /* just use the default (GTA01_IRQ_PCF50606) */
--              gta01_led_resources[0].start =
--                      gta01_led_resources[0].end = GTA01Bv2_GPIO_VIBRATOR_ON;
-+              gta01_led_pdata.gpio = GTA01Bv2_GPIO_VIBRATOR_ON;
-               break;
-       case GTA01Bv4_SYSTEM_REV:
-               gta01_pmu_resources[0].start =
-                       gta01_pmu_resources[0].end = GTA01Bv4_IRQ_PCF50606;
--              gta01_led_resources[0].start =
--                      gta01_led_resources[0].end = GTA01Bv4_GPIO_VIBRATOR_ON;
-+              gta01_led_pdata.gpio = GTA01Bv4_GPIO_VIBRATOR_ON;
-               break;
-       }
-       mangle_pmu_pdata_by_system_rev();
-Index: linux-2.6.22/arch/arm/mach-s3c2440/mach-gta02.c
-===================================================================
---- linux-2.6.22.orig/arch/arm/mach-s3c2440/mach-gta02.c
-+++ linux-2.6.22/arch/arm/mach-s3c2440/mach-gta02.c
-@@ -56,6 +56,7 @@
- 
- #include <asm/arch/regs-gpio.h>
- #include <asm/arch/regs-gpioj.h>
-+#include <asm/arch/leds-gpio.h>
- #include <asm/arch/fb.h>
- #include <asm/arch/mci.h>
- #include <asm/arch/ts.h>
-@@ -499,18 +500,18 @@
- #endif
- #endif
- 
--static struct resource gta02_led_resources[] = {
--      [0] = {
--              .start  = GTA02_GPIO_VIBRATOR_ON,
--              .end    = GTA02_GPIO_VIBRATOR_ON,
--      },
--      /* FIXME */
-+static struct s3c24xx_led_platdata gta02_led_pdata = {
-+    .name       = "gta02-vib",
-+    .gpio       = GTA02_GPIO_VIBRATOR_ON,
-+    .def_trigger    = "",
- };
- 
--struct platform_device gta02_led_dev = {
--      .name           = "gta01-led",
--      .num_resources  = ARRAY_SIZE(gta02_led_resources),
--      .resource       = gta02_led_resources,
-+static struct platform_device gta02_led_dev = {
-+    .name       = "s3c24xx_led",
-+    .id     = 1,
-+    .dev        = {
-+        .platform_data  = &gta02_led_pdata,
-+    },
- };
- 
- static struct resource gta01_button_resources[] = {

Modified: branches/src/target/kernel/2.6.23.x/patches/gta01-backlight.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/gta01-backlight.patch   
2007-10-16 13:42:02 UTC (rev 3187)
+++ branches/src/target/kernel/2.6.23.x/patches/gta01-backlight.patch   
2007-10-16 14:44:30 UTC (rev 3188)
@@ -1,10 +1,10 @@
 This is a backlight driver for FIC's Neo1973 Phone (codename GTA01)
 
-Index: linux-2.6.22/drivers/video/backlight/Kconfig
+Index: linux-2.6.22.5-moko/drivers/video/backlight/Kconfig
 ===================================================================
---- linux-2.6.22.orig/drivers/video/backlight/Kconfig
-+++ linux-2.6.22/drivers/video/backlight/Kconfig
-@@ -54,6 +54,14 @@
+--- linux-2.6.22.5-moko.orig/drivers/video/backlight/Kconfig
++++ linux-2.6.22.5-moko/drivers/video/backlight/Kconfig
+@@ -48,6 +48,14 @@
          If you have a Sharp Zaurus SL-5500 (Collie) or SL-5600 (Poodle) say y 
to
          enable the LCD/backlight driver.
  
@@ -19,10 +19,10 @@
  config BACKLIGHT_HP680
        tristate "HP Jornada 680 Backlight Driver"
        depends on BACKLIGHT_CLASS_DEVICE && SH_HP6XX
-Index: linux-2.6.22/drivers/video/backlight/Makefile
+Index: linux-2.6.22.5-moko/drivers/video/backlight/Makefile
 ===================================================================
---- linux-2.6.22.orig/drivers/video/backlight/Makefile
-+++ linux-2.6.22/drivers/video/backlight/Makefile
+--- linux-2.6.22.5-moko.orig/drivers/video/backlight/Makefile
++++ linux-2.6.22.5-moko/drivers/video/backlight/Makefile
 @@ -3,6 +3,7 @@
  obj-$(CONFIG_LCD_CLASS_DEVICE)     += lcd.o
  obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE) += backlight.o
@@ -31,11 +31,11 @@
  obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o
  obj-$(CONFIG_BACKLIGHT_LOCOMO)        += locomolcd.o
  obj-$(CONFIG_BACKLIGHT_PROGEAR) += progear_bl.o
-Index: linux-2.6.22/drivers/video/backlight/gta01_bl.c
+Index: linux-2.6.22.5-moko/drivers/video/backlight/gta01_bl.c
 ===================================================================
 --- /dev/null
-+++ linux-2.6.22/drivers/video/backlight/gta01_bl.c
-@@ -0,0 +1,289 @@
++++ linux-2.6.22.5-moko/drivers/video/backlight/gta01_bl.c
+@@ -0,0 +1,249 @@
 +/*
 + *  Backlight Driver for FIC GTA01 (Neo1973) GSM Phone
 + *
@@ -59,7 +59,8 @@
 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 + * MA 02111-1307 USA
 + *
-+ * TODO: implement PWM, instead of simple on/off switching
++ * Javi Roman <[EMAIL PROTECTED]>:
++ *    implement PWM, instead of simple on/off switching
 + *
 + */
 +
@@ -74,6 +75,7 @@
 +
 +#include <asm/arch/hardware.h>
 +#include <asm/arch/gta01.h>
++#include <asm/arch/pwm.h>
 +
 +#include <asm/plat-s3c/regs-timer.h>
 +
@@ -87,6 +89,7 @@
 +      int intensity;
 +      struct mutex mutex;
 +      struct clk *clk;
++      struct s3c2410_pwm_t *pwm;
 +};
 +
 +static struct gta01bl_data gta01bl;
@@ -127,61 +130,28 @@
 +              s3c2410_gpio_setpin(GTA01_GPIO_BACKLIGHT, 1);
 +              s3c2410_gpio_cfgpin(GTA01_GPIO_BACKLIGHT, S3C2410_GPIO_OUTPUT);
 +      } else  {
-+              __raw_writel(intensity & 0xffff, S3C2410_TCMPB(0));
++              s3c2410_pwm_duty_cycle(intensity & 0xffff, gta01bl.pwm);
 +              s3c2410_gpio_cfgpin(GTA01_GPIO_BACKLIGHT, S3C2410_GPB0_TOUT0);
 +      }
 +#endif
 +      mutex_unlock(&gta01bl.mutex);
 +
 +      gta01bl.intensity = intensity;
-+
 +      return 0;
 +}
 +
 +static void gta01bl_init_hw(void)
 +{
-+      unsigned long tcon, tcfg0, tcfg1, tcnt, pclk;
++      gta01bl.pwm->timerid = PWM0;
++      gta01bl.pwm->prescaler = (4 - 1);
++      gta01bl.pwm->divider = S3C2410_TCFG1_MUX0_DIV8;
++      gta01bl.pwm->counter = (((gta01bl.pwm->pclk_rate) / 32) / GTA01BL_FREQ) 
-1;
++      gta01bl.pwm->comparer = gta01bl.pwm->counter;
 +
-+      pclk = clk_get_rate(gta01bl.clk);
++      s3c2410_pwm_enable(gta01bl.pwm);
++      s3c2410_pwm_start(gta01bl.pwm);
 +
-+      tcon = __raw_readl(S3C2410_TCON);
-+      tcfg1 = __raw_readl(S3C2410_TCFG1);
-+      tcfg0 = __raw_readl(S3C2410_TCFG0);
-+
-+      tcfg1 &= ~S3C2410_TCFG1_MUX0_MASK;
-+      tcfg1 |= S3C2410_TCFG1_MUX0_DIV8;
-+
-+      tcfg0 &= ~S3C2410_TCFG_PRESCALER0_MASK;
-+      tcfg0 |= (4 - 1);
-+
-+      tcnt = (pclk / 32) / GTA01BL_FREQ;
-+      tcnt--;
-+
-+      __raw_writel(tcfg1, S3C2410_TCFG1);
-+      __raw_writel(tcfg0, S3C2410_TCFG0);
-+
-+#if 0
-+      __raw_writel(tcnt, S3C2410_TCNTB(0));
-+      __raw_writel(tcon, S3C2410_TCON);
-+      __raw_writel(tcnt, S3C2410_TCNTB(0));
-+#endif
-+
-+      /* ensure timer is stopped */
-+
-+      tcon &= 0xffffff00;
-+      tcon |= S3C2410_TCON_T0RELOAD;
-+      tcon |= S3C2410_TCON_T0MANUALUPD;
-+
-+      __raw_writel(tcnt, S3C2410_TCNTB(0));
-+      __raw_writel(tcnt, S3C2410_TCMPB(0));
-+      __raw_writel(tcon, S3C2410_TCON);
-+
-+      /* start the timer */
-+      tcon |= S3C2410_TCON_T0START;
-+      tcon &= ~S3C2410_TCON_T0MANUALUPD;
-+      __raw_writel(tcon, S3C2410_TCON);
-+
-+      gta01bl_prop.max_brightness = tcnt;
++      gta01bl_prop.max_brightness = gta01bl.pwm->counter;
 +}
 +
 +#ifdef CONFIG_PM
@@ -247,12 +217,9 @@
 +      gta01bl_prop.max_brightness = 1;
 +#else
 +      /* use s3c_device_timer0 for PWM */
-+      gta01bl.clk = clk_get(NULL, "timers");
-+      if (IS_ERR(gta01bl.clk))
-+              return PTR_ERR(gta01bl.clk);
++      if (!(gta01bl.pwm = s3c2410_pwm_alloc()))
++              return -ENOMEM;
 +
-+      clk_enable(gta01bl.clk);
-+
 +      gta01bl_init_hw();
 +#endif
 +      mutex_init(&gta01bl.mutex);
@@ -279,15 +246,9 @@
 +static int gta01bl_remove(struct platform_device *dev)
 +{
 +#ifndef GTA01_BACKLIGHT_ONOFF_ONLY
-+      unsigned long tcon;
 +
-+      /* stop this timer */
-+      tcon = __raw_readl(S3C2410_TCON);
-+      tcon &= 0xffffff00;
-+      __raw_writel(tcon, S3C2410_TCON);
++      s3c2410_pwm_disable(gta01bl.pwm);
 +
-+      clk_disable(gta01bl.clk);
-+      clk_put(gta01bl.clk);
 +#endif
 +      backlight_device_unregister(gta01_backlight_device);
 +      mutex_destroy(&gta01bl.mutex);

Added: branches/src/target/kernel/2.6.23.x/patches/gta01-vibrator.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/gta01-vibrator.patch    
2007-10-16 13:42:02 UTC (rev 3187)
+++ branches/src/target/kernel/2.6.23.x/patches/gta01-vibrator.patch    
2007-10-16 14:44:30 UTC (rev 3188)
@@ -0,0 +1,235 @@
+This patch adds driver support for the FIC GTA01 vibrator device.  The driver
+uses the existing LED class driver framework, since there's a lot of
+similarity between the LED and the vibrator function.
+
+Index: linux-2.6.23/drivers/leds/leds-gta01.c
+===================================================================
+--- /dev/null
++++ linux-2.6.23/drivers/leds/leds-gta01.c
+@@ -0,0 +1,188 @@
++/*
++ * LED driver for the FIC GTA01 (Neo1973) GSM Phone Vibrator
++ *
++ * (C) 2006-2007 by OpenMoko, Inc.
++ * Author: Harald Welte <[EMAIL PROTECTED]>
++ * All rights reserved.
++ *
++ * 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.
++ *
++ * Javi Roman <[EMAIL PROTECTED]>:
++ *    Implement PWM support for GTA01Bv4 and later
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/leds.h>
++#include <asm/hardware.h>
++#include <asm/mach-types.h>
++#include <asm/arch/pwm.h>
++#include <asm/arch/gta01.h>
++#include <asm/plat-s3c/regs-timer.h>
++
++#define COUNTER 256
++
++struct gta01_vib_priv
++{
++      struct led_classdev cdev;
++      unsigned int gpio;
++      struct mutex mutex;
++      unsigned int has_pwm;
++      struct s3c2410_pwm_t *pwm;
++};
++
++static inline struct gta01_vib_priv *pdev_to_vpriv(struct platform_device 
*dev)
++{
++      return platform_get_drvdata(dev);
++}
++
++static inline struct gta01_vib_priv *to_vpriv(struct led_classdev *led_cdev)
++{
++      return dev_get_drvdata(led_cdev->dev);
++}
++
++static void gta01vib_vib_set(struct led_classdev *led_cdev,
++              enum led_brightness value)
++{
++      struct gta01_vib_priv *vp = to_vpriv(led_cdev);
++
++      /*
++       * value == 255 -> 99% duty cycle (full power)
++       * value == 128 -> 50% duty cycle (medium power)
++       * value == 0 -> 0% duty cycle (zero power)
++       */
++      mutex_lock(&vp->mutex);
++      if (vp->has_pwm) {
++                      s3c2410_pwm_duty_cycle(value, vp->pwm);
++                      s3c2410_gpio_cfgpin(vp->gpio, S3C2410_GPB3_TOUT3);
++      } else {
++              if (value)
++                      s3c2410_gpio_setpin(vp->gpio, 1);
++              else
++                      s3c2410_gpio_setpin(vp->gpio, 0);
++      }
++
++      mutex_unlock(&vp->mutex);
++}
++
++static struct led_classdev gta01_vib_led = {
++      .name                   = "gta01:vibrator",
++      .brightness_set         = gta01vib_vib_set,
++};
++
++#ifdef CONFIG_PM
++static int gta01vib_suspend(struct platform_device *dev, pm_message_t state)
++{
++      led_classdev_suspend(&gta01_vib_led);
++      return 0;
++}
++
++static int gta01vib_resume(struct platform_device *dev)
++{
++      led_classdev_resume(&gta01_vib_led);
++      return 0;
++}
++#endif
++
++static void gta01vib_init_hw(struct platform_device *pdev)
++{
++      struct gta01_vib_priv *vp = pdev_to_vpriv(pdev);
++
++      vp->pwm->timerid= PWM3;
++      vp->pwm->prescaler = 0x0000;
++      vp->pwm->divider = S3C2410_TCFG1_MUX3_DIV8;
++      vp->pwm->counter = COUNTER;
++      vp->pwm->comparer = COUNTER;
++
++      s3c2410_pwm_enable(vp->pwm);
++      s3c2410_pwm_start(vp->pwm);
++
++      return;
++}
++
++static int __init gta01vib_probe(struct platform_device *pdev)
++{
++      struct gta01_vib_priv *vp;
++      struct resource *r;
++
++      if (!machine_is_neo1973_gta01())
++              return -EIO;
++
++      r = platform_get_resource(pdev, 0, 0);
++      if (!r || !r->start)
++              return -EIO;
++
++      vp = kzalloc(sizeof(struct gta01_vib_priv), GFP_KERNEL);
++      if (!vp)
++              return -ENOMEM;
++
++      platform_set_drvdata(pdev, vp);
++
++      vp->gpio = r->start;
++
++      /* TOUT3 */
++      if (vp->gpio == S3C2410_GPB3) {
++              vp->has_pwm = 1;
++
++              vp->pwm = s3c2410_pwm_alloc();
++              if (!vp->pwm) {
++                      dev_err(&pdev->dev, "PWM allocation failed\n");
++                      kfree(vp);
++                      return -ENOMEM;
++              }
++
++              gta01vib_init_hw(pdev);
++      }
++
++      mutex_init(&vp->mutex);
++
++      return led_classdev_register(&pdev->dev, &gta01_vib_led);
++}
++
++static int gta01vib_remove(struct platform_device *pdev)
++{
++      struct gta01_vib_priv *vp = pdev_to_vpriv(pdev);
++
++      if (vp->has_pwm)
++              s3c2410_pwm_disable(vp->pwm);
++
++      led_classdev_unregister(&gta01_vib_led);
++      platform_set_drvdata(pdev, NULL);
++      kfree(vp);
++
++      mutex_destroy(&vp->mutex);
++
++      return 0;
++}
++
++static struct platform_driver gta01vib_driver = {
++      .probe          = gta01vib_probe,
++      .remove         = gta01vib_remove,
++#ifdef CONFIG_PM
++      .suspend        = gta01vib_suspend,
++      .resume         = gta01vib_resume,
++#endif
++      .driver         = {
++              .name           = "gta01-led",
++      },
++};
++
++static int __init gta01vib_init(void)
++{
++      return platform_driver_register(&gta01vib_driver);
++}
++
++static void __exit gta01vib_exit(void)
++{
++      platform_driver_unregister(&gta01vib_driver);
++}
++
++module_init(gta01vib_init);
++module_exit(gta01vib_exit);
++
++MODULE_AUTHOR("Harald Welte <[EMAIL PROTECTED]>");
++MODULE_DESCRIPTION("FIC GTA01 Vibrator driver");
++MODULE_LICENSE("GPL");
+Index: linux-2.6.23/drivers/leds/Kconfig
+===================================================================
+--- linux-2.6.23.orig/drivers/leds/Kconfig
++++ linux-2.6.23/drivers/leds/Kconfig
+@@ -57,7 +57,7 @@
+ 
+ config LEDS_S3C24XX
+       tristate "LED Support for Samsung S3C24XX GPIO LEDs"
+-      depends on LEDS_CLASS && ARCH_S3C2410
++      depends on LEDS_CLASS && ARCH_S3C2410 && S3C2410_PWM
+       help
+         This option enables support for LEDs connected to GPIO lines
+         on Samsung S3C24XX series CPUs, such as the S3C2410 and S3C2440.
+@@ -101,6 +101,12 @@
+         outputs. To be useful the particular board must have LEDs
+         and they must be connected to the GPIO lines.
+ 
++config LEDS_GTA01
++      tristate "Vibrator Support for the FIC Neo1973 (GTA01) Vibrator"
++      depends on LEDS_CLASS && MACH_NEO1973_GTA01
++      help
++        This option enables support for the Vibrator on the FIC Neo1973.
++
+ comment "LED Triggers"
+ 
+ config LEDS_TRIGGERS
+Index: linux-2.6.23/drivers/leds/Makefile
+===================================================================
+--- linux-2.6.23.orig/drivers/leds/Makefile
++++ linux-2.6.23/drivers/leds/Makefile
+@@ -17,6 +17,7 @@
+ obj-$(CONFIG_LEDS_H1940)              += leds-h1940.o
+ obj-$(CONFIG_LEDS_COBALT)             += leds-cobalt.o
+ obj-$(CONFIG_LEDS_GPIO)                       += leds-gpio.o
++obj-$(CONFIG_LEDS_GTA01)              += leds-gta01.o
+ 
+ # LED Triggers
+ obj-$(CONFIG_LEDS_TRIGGER_TIMER)      += ledtrig-timer.o

Modified: branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch        
2007-10-16 13:42:02 UTC (rev 3187)
+++ branches/src/target/kernel/2.6.23.x/patches/gta02-core.patch        
2007-10-16 14:44:30 UTC (rev 3188)
@@ -958,6 +958,19 @@
  MODULE_AUTHOR("Harald Welte <[EMAIL PROTECTED]>");
 -MODULE_DESCRIPTION("FIC GTA01 (Neo1973) GSM Management");
 +MODULE_DESCRIPTION("FIC Neo1973 GSM Power Management");
+Index: linux-2.6.22/drivers/leds/leds-gta01.c
+===================================================================
+--- linux-2.6.22.orig/drivers/leds/leds-gta01.c
++++ linux-2.6.22/drivers/leds/leds-gta01.c
+@@ -71,7 +71,7 @@
+       struct gta01_vib_priv *vp;
+       struct resource *r;
+ 
+-      if (!machine_is_neo1973_gta01())
++      if (!machine_is_neo1973_gta01() && !machine_is_neo1973_gta02())
+               return -EIO;
+ 
+       r = platform_get_resource(pdev, 0, 0);
 Index: linux-2.6.22/sound/soc/s3c24xx/neo1973_wm8753.c
 ===================================================================
 --- linux-2.6.22.orig/sound/soc/s3c24xx/neo1973_wm8753.c

Modified: branches/src/target/kernel/2.6.23.x/patches/series
===================================================================
--- branches/src/target/kernel/2.6.23.x/patches/series  2007-10-16 13:42:02 UTC 
(rev 3187)
+++ branches/src/target/kernel/2.6.23.x/patches/series  2007-10-16 14:44:30 UTC 
(rev 3188)
@@ -26,6 +26,7 @@
 gta01-core.patch
 gta01-jbt6k74.patch
 gta01-backlight.patch
+gta01-vibrator.patch
 gta01-inputdevice.patch
 gta01-power_control.patch
 gta01-no_nand_partitions.patch
@@ -47,6 +48,5 @@
 neo1973-soc-include-fix.patch
 explicitly-link-notes-section.patch
 fix-s3c2410fb-register-access.patch
-gta-vibrator.patch
 lis302dl.patch
-gta02-leds.patch
+#gta02-leds.patch




--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to