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. r4092 - branches/src/target/kernel/2.6.24.x/patches
      ([EMAIL PROTECTED])
   2. r4093 - developers/werner/bin ([EMAIL PROTECTED])
   3. r4094 - trunk/src/target/u-boot/patches ([EMAIL PROTECTED])
   4. r4095 - trunk/src/host/openembedded ([EMAIL PROTECTED])
--- Begin Message ---
Author: werner
Date: 2008-02-21 06:54:23 +0100 (Thu, 21 Feb 2008)
New Revision: 4092

Modified:
   branches/src/target/kernel/2.6.24.x/patches/gta02-power_control.patch
Log:
gta02-pm-gps.patch by Willie Chen

This is GPS driver for GTA02. It deals with power on/off GPS module.
The GPS data can be generated through UART1.

gta02-power_control.patch:
- arch/arm/plat-s3c24xx/neo1973_pm_gps.c (gps_pwron_set, gps_pwron_get,
  gta01_pm_gps_suspend, gta01_pm_gps_resume, gta01_pm_gps_probe,
  gta01_pm_gps_remove): added support for GTA02



Modified: branches/src/target/kernel/2.6.24.x/patches/gta02-power_control.patch
===================================================================
--- branches/src/target/kernel/2.6.24.x/patches/gta02-power_control.patch       
2008-02-21 05:16:15 UTC (rev 4091)
+++ branches/src/target/kernel/2.6.24.x/patches/gta02-power_control.patch       
2008-02-21 05:54:23 UTC (rev 4092)
@@ -295,3 +295,272 @@
  
        return sysfs_create_group(&pdev->dev.kobj, &gta01_gsm_attr_group);
  }
+Index: linux-2.6.24/arch/arm/plat-s3c24xx/neo1973_pm_gps.c
+===================================================================
+--- linux-2.6.24.orig/arch/arm/plat-s3c24xx/neo1973_pm_gps.c
++++ linux-2.6.24/arch/arm/plat-s3c24xx/neo1973_pm_gps.c
+@@ -17,10 +17,18 @@
+ #include <linux/delay.h>
+ #include <linux/platform_device.h>
+ 
+-#include <linux/pcf50606.h>
+-
+ #include <asm/hardware.h>
++
++#include <asm/mach-types.h>
++#ifdef CONFIG_MACH_NEO1973_GTA01
+ #include <asm/arch/gta01.h>
++#include <linux/pcf50606.h>
++#endif
++
++#ifdef CONFIG_MACH_NEO1973_GTA02
++#include <asm/arch/gta02.h>
++#include <linux/pcf50633.h>
++#endif
+ 
+ /* This is the 2.8V supply for the RTC crystal, the mail clock crystal and
+  * the input to VDD_RF */
+@@ -248,15 +256,42 @@ static int gps_power_1v5_get(void)
+ /* This is the POWERON pin */
+ static void gps_pwron_set(int on)
+ {
+-      s3c2410_gpio_setpin(GTA01_GPIO_GPS_PWRON, on);
++#ifdef CONFIG_MACH_NEO1973_GTA01
++      if (machine_is_neo1973_gta01())
++              s3c2410_gpio_setpin(GTA01_GPIO_GPS_PWRON, on);
++#endif /* CONFIG_MACH_NEO1973_GTA01 */
++
++#ifdef CONFIG_MACH_NEO1973_GTA02
++      if (machine_is_neo1973_gta02()) {
++              if (on)
++                      pcf50633_voltage_set(pcf50633_global,
++                              PCF50633_REGULATOR_LDO5, 3000);
++                      pcf50633_onoff_set(pcf50633_global,
++                              PCF50633_REGULATOR_LDO5, on);
++      }
++#endif /* CONFIG_MACH_NEO1973_GTA02 */
+ }
+ 
+ static int gps_pwron_get(void)
+ {
+-      if (s3c2410_gpio_getpin(GTA01_GPIO_GPS_PWRON))
+-              return 1;
+-      else
+-              return 0;
++#ifdef CONFIG_MACH_NEO1973_GTA01
++      if (machine_is_neo1973_gta01()) {
++              if (s3c2410_gpio_getpin(GTA01_GPIO_GPS_PWRON))
++                      return 1;
++              else
++                      return 0;
++      }
++#endif /* CONFIG_MACH_NEO1973_GTA01 */
++
++#ifdef CONFIG_MACH_NEO1973_GTA02
++      if (machine_is_neo1973_gta02()) {
++              if (pcf50633_onoff_get(pcf50633_global, 
PCF50633_REGULATOR_LDO5))
++                      return 1;
++              else
++                      return 0;
++      }
++#endif /* CONFIG_MACH_NEO1973_GTA02 */
++      return -1;
+ }
+ 
+ /* This is the nRESET pin */
+@@ -441,17 +476,40 @@ static DEVICE_ATTR(power_sequence, 0644,
+ static int gta01_pm_gps_suspend(struct platform_device *pdev,
+                               pm_message_t state)
+ {
+-      /* FIXME */
+-      gps_power_sequence_down();
++#ifdef CONFIG_MACH_NEO1973_GTA01
++      if (machine_is_neo1973_gta01()) {
++              /* FIXME */
++              gps_power_sequence_down();
++      }
++#endif /* CONFIG_MACH_NEO1973_GTA01 */
++
++#ifdef CONFIG_MACH_NEO1973_GTA02
++      if (machine_is_neo1973_gta02()) {
++              /* FIXME */
++              pcf50633_onoff_set(pcf50633_global,
++                      PCF50633_REGULATOR_LDO5, 0);
++      }
++#endif /* CONFIG_MACH_NEO1973_GTA02 */
+ 
+       return 0;
+ }
+ 
+ static int gta01_pm_gps_resume(struct platform_device *pdev)
+ {
+-      /* FIXME */
+-      gps_power_sequence_up();
++#ifdef CONFIG_MACH_NEO1973_GTA01
++      if (machine_is_neo1973_gta01()) {
++              /* FIXME */
++              gps_power_sequence_up();
++      }
++#endif /* CONFIG_MACH_NEO1973_GTA01 */
+ 
++#ifdef CONFIG_MACH_NEO1973_GTA02
++      if (machine_is_neo1973_gta02()) {
++              /* FIXME */
++              pcf50633_onoff_set(pcf50633_global,
++                      PCF50633_REGULATOR_LDO5, 1);
++#endif /* CONFIG_MACH_NEO1973_GTA02 */
++      }
+       return 0;
+ }
+ #else
+@@ -476,59 +534,109 @@ static struct attribute_group gta01_gps_
+       .attrs  = gta01_gps_sysfs_entries,
+ };
+ 
++static struct attribute *gta02_gps_sysfs_entries[] = {
++      &dev_attr_pwron.attr,
++      NULL
++};
++
++static struct attribute_group gta02_gps_attr_group = {
++      .name   = NULL,
++      .attrs  = gta02_gps_sysfs_entries,
++};
++
+ static int __init gta01_pm_gps_probe(struct platform_device *pdev)
+ {
+-      s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_PWRON, S3C2410_GPIO_OUTPUT);
++#ifdef CONFIG_MACH_NEO1973_GTA01
++      if (machine_is_neo1973_gta01()) {
++              s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_PWRON, S3C2410_GPIO_OUTPUT);
+ 
+-      switch (system_rev) {
+-      case GTA01v3_SYSTEM_REV:
+-              break;
+-      case GTA01v4_SYSTEM_REV:
+-              s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_RESET, S3C2410_GPIO_OUTPUT);
+-              break;
+-      case GTA01Bv3_SYSTEM_REV:
+-      case GTA01Bv4_SYSTEM_REV:
+-              s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_EN_3V3, S3C2410_GPIO_OUTPUT);
+-              /* fallthrough */
+-      case GTA01Bv2_SYSTEM_REV:
+-              s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_EN_2V8, S3C2410_GPIO_OUTPUT);
+-              s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_EN_3V, S3C2410_GPIO_OUTPUT);
+-              s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_RESET, S3C2410_GPIO_OUTPUT);
+-              break;
+-      default:
+-              dev_warn(&pdev->dev, "Unknown GTA01 Revision 0x%x, "
+-                       "AGPS PM features not available!!!\n",
+-                       system_rev);
+-              return -1;
+-              break;
+-      }
++              switch (system_rev) {
++              case GTA01v3_SYSTEM_REV:
++                      break;
++              case GTA01v4_SYSTEM_REV:
++                      s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_RESET, 
S3C2410_GPIO_OUTPUT);
++                      break;
++              case GTA01Bv3_SYSTEM_REV:
++              case GTA01Bv4_SYSTEM_REV:
++                      s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_EN_3V3, 
S3C2410_GPIO_OUTPUT);
++                      /* fallthrough */
++              case GTA01Bv2_SYSTEM_REV:
++                      s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_EN_2V8, 
S3C2410_GPIO_OUTPUT);
++                      s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_EN_3V, 
S3C2410_GPIO_OUTPUT);
++                      s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_RESET, 
S3C2410_GPIO_OUTPUT);
++                      break;
++              default:
++                      dev_warn(&pdev->dev, "Unknown GTA01 Revision 0x%x, "
++                              "AGPS PM features not available!!!\n",
++                              system_rev);
++                      return -1;
++                      break;
++              }
+ 
+-      gps_power_sequence_down();
++              gps_power_sequence_down();
+ 
+-      switch (system_rev) {
+-      case GTA01v3_SYSTEM_REV:
+-      case GTA01v4_SYSTEM_REV:
+-      case GTA01Bv2_SYSTEM_REV:
+-              gta01_gps_sysfs_entries[ARRAY_SIZE(gta01_gps_sysfs_entries)-3] =
+-                                      &dev_attr_power_tcxo_2v8.attr;
+-              break;
+-      case GTA01Bv3_SYSTEM_REV:
+-      case GTA01Bv4_SYSTEM_REV:
+-              gta01_gps_sysfs_entries[ARRAY_SIZE(gta01_gps_sysfs_entries)-3] =
+-                                      &dev_attr_power_core_1v5.attr;
+-              gta01_gps_sysfs_entries[ARRAY_SIZE(gta01_gps_sysfs_entries)-2] =
+-                                      &dev_attr_power_vdd_core_1v5.attr;
+-              break;
++              switch (system_rev) {
++              case GTA01v3_SYSTEM_REV:
++              case GTA01v4_SYSTEM_REV:
++              case GTA01Bv2_SYSTEM_REV:
++                      
gta01_gps_sysfs_entries[ARRAY_SIZE(gta01_gps_sysfs_entries)-3] =
++                                              &dev_attr_power_tcxo_2v8.attr;
++                      break;
++              case GTA01Bv3_SYSTEM_REV:
++              case GTA01Bv4_SYSTEM_REV:
++                      
gta01_gps_sysfs_entries[ARRAY_SIZE(gta01_gps_sysfs_entries)-3] =
++                                              &dev_attr_power_core_1v5.attr;
++                      
gta01_gps_sysfs_entries[ARRAY_SIZE(gta01_gps_sysfs_entries)-2] =
++                                              
&dev_attr_power_vdd_core_1v5.attr;
++                      break;
++              }
++
++              return sysfs_create_group(&pdev->dev.kobj, 
&gta01_gps_attr_group);
+       }
++#endif /* CONFIG_MACH_NEO1973_GTA01 */
+ 
+-      return sysfs_create_group(&pdev->dev.kobj, &gta01_gps_attr_group);
++#ifdef CONFIG_MACH_NEO1973_GTA02
++      if (machine_is_neo1973_gta02()) {
++              switch (system_rev) {
++              case GTA02v2_SYSTEM_REV:
++              case GTA02v3_SYSTEM_REV:
++              case GTA02v4_SYSTEM_REV:
++              case GTA02v5_SYSTEM_REV:
++                      pcf50633_voltage_set(pcf50633_global,
++                              PCF50633_REGULATOR_LDO5, 3000);
++                      pcf50633_onoff_set(pcf50633_global,
++                              PCF50633_REGULATOR_LDO5, 0);
++                      dev_info(&pdev->dev, "FIC Neo1973 GPS Power 
Managerment:"
++                               "starting\n");
++                      break;
++              default:
++                      dev_warn(&pdev->dev, "Unknown GTA02 Revision 0x%x, "
++                              "AGPS PM features not available!!!\n",
++                              system_rev);
++                      return -1;
++                      break;
++              }
++              return sysfs_create_group(&pdev->dev.kobj, 
&gta02_gps_attr_group);
++      }
++#endif /* CONFIG_MACH_NEO1973_GTA02 */
++      return -1;
+ }
+ 
+ static int gta01_pm_gps_remove(struct platform_device *pdev)
+ {
+-      gps_power_sequence_down();
+-      sysfs_remove_group(&pdev->dev.kobj, &gta01_gps_attr_group);
++#ifdef CONFIG_MACH_NEO1973_GTA01
++      if (machine_is_neo1973_gta01()) {
++              gps_power_sequence_down();
++              sysfs_remove_group(&pdev->dev.kobj, &gta01_gps_attr_group);
++      }
++#endif /* CONFIG_MACH_NEO1973_GTA01 */
+ 
++#ifdef CONFIG_MACH_NEO1973_GTA02
++      if (machine_is_neo1973_gta02()) {
++              pcf50633_onoff_set(pcf50633_global, PCF50633_REGULATOR_LDO5, 0);
++              sysfs_remove_group(&pdev->dev.kobj, &gta02_gps_attr_group);
++      }
++#endif /* CONFIG_MACH_NEO1973_GTA02 */
+       return 0;
+ }
+ 




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2008-02-21 07:08:00 +0100 (Thu, 21 Feb 2008)
New Revision: 4093

Added:
   developers/werner/bin/layout4
Modified:
   developers/werner/bin/kern4
   developers/werner/bin/uboot4
Log:
Rearranged scripts to handle different screen sizes.



Modified: developers/werner/bin/kern4
===================================================================
--- developers/werner/bin/kern4 2008-02-21 05:54:23 UTC (rev 4092)
+++ developers/werner/bin/kern4 2008-02-21 06:08:00 UTC (rev 4093)
@@ -1,7 +1,6 @@
 #!/bin/sh
 
 DIR=/home/moko/2624/linux-2.6.24
-FONT=6x10
 
 if [ "${PWD#/home/moko}" = "$PWD" ]; then
     cd $DIR
@@ -9,13 +8,15 @@
 
 sleep 2
 
-xterm -fn $FONT -geometry 80x40+23+165 -e bash-init \
+. layout4
+
+xterm -fn $FONT -geometry $X1 -e bash-init \
   'cat 
/home/moko/svn.openmoko.org/branches/src/target/kernel/2.6.24.x/scripts/build' &
-xterm -fn $FONT -geometry 80x40+23-20 &
-xterm -fn $FONT -geometry 80x48+551+3 &
-xterm -fn $FONT -geometry 80x50+552-4 &
-xterm -fn $FONT -geometry 80x40-93+114 -e bash-init \
+xterm -fn $FONT -geometry $X2 &
+xterm -fn $FONT -geometry $X3 &
+xterm -fn $FONT -geometry $X4 &
+xterm -fn $FONT -geometry $X5 -e bash-init \
   'cd /home/moko/svn.openmoko.org/branches/src/target/kernel/2.6.24.x/scripts' 
\
   'vi LOG' &
-xterm -fn $FONT -geometry 80x40-86-38 -e bash-init \
+xterm -fn $FONT -geometry $X6 -e bash-init \
   'cd /home/moko/svn.openmoko.org/branches/src/target/kernel/2.6.24.x/patches' 
&

Added: developers/werner/bin/layout4
===================================================================
--- developers/werner/bin/layout4       2008-02-21 05:54:23 UTC (rev 4092)
+++ developers/werner/bin/layout4       2008-02-21 06:08:00 UTC (rev 4093)
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# source this with
+# . layout4
+
+FONT=6x10
+
+RES="`xdpyinfo | awk '/dimensions:/{print $2}' | sed 1q`"
+case $RES in
+    1680x1050)
+       X1=80x40+23+165
+       X2=80x40+23-20
+       X3=80x48+551+3
+       X4=80x50+552-4 
+       X5=80x40-93+114
+       X6=80x40-86-38
+       ;;
+    1600x1200)
+       X1=80x43+21+280
+       X2=80x41+23-10
+       X3=80x54+551+3
+       X4=80x58+552-4
+       X5=80x54-17+4
+       X6=80x58-17-5
+       ;;
+    *) ;;
+esac


Property changes on: developers/werner/bin/layout4
___________________________________________________________________
Name: svn:executable
   + *

Modified: developers/werner/bin/uboot4
===================================================================
--- developers/werner/bin/uboot4        2008-02-21 05:54:23 UTC (rev 4092)
+++ developers/werner/bin/uboot4        2008-02-21 06:08:00 UTC (rev 4093)
@@ -1,7 +1,6 @@
 #!/bin/sh
 
-DIR=/home/moko/fr/u-boot
-FONT=6x10
+DIR=/home/moko/2624/u-boot
 
 if [ "${PWD#/home/moko}" = "$PWD" ]; then
     cd $DIR
@@ -9,15 +8,17 @@
 
 sleep 2
 
-xterm -fn $FONT -geometry 80x40+23+165 -e bash-init \
+. layout4
+
+xterm -fn $FONT -geometry $X1 -e bash-init \
   'cat /home/moko/svn.openmoko.org/trunk/src/target/u-boot/scripts/build' &
-xterm -fn $FONT -geometry 80x40+23-20 -e bash-init \
+xterm -fn $FONT -geometry $X2 -e bash-init \
   '# make gta01bv4_config' \
   '# make gta02v3_config' &
-xterm -fn $FONT -geometry 80x48+551+3 &
-xterm -fn $FONT -geometry 80x50+552-4 &
-xterm -fn $FONT -geometry 80x40-93+114 -e bash-init \
+xterm -fn $FONT -geometry $X3 &
+xterm -fn $FONT -geometry $X4  &
+xterm -fn $FONT -geometry $X5 -e bash-init \
   'cd /home/moko/svn.openmoko.org/trunk/src/target/u-boot/scripts' \
   'vi LOG' &
-xterm -fn $FONT -geometry 80x40-86-38 -e bash-init \
+xterm -fn $FONT -geometry $X6 -e bash-init \
   'cd /home/moko/svn.openmoko.org/trunk/src/target/u-boot/patches' &




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2008-02-21 07:18:31 +0100 (Thu, 21 Feb 2008)
New Revision: 4094

Modified:
   trunk/src/target/u-boot/patches/uboot-gta02.patch
Log:
uboot-pcf50633-default-curr-lim-1A.patch

    From: Andy Green <[EMAIL PROTECTED]>

     1) Stop PMU killing us if we don't have a battery in (by setting default
        current limit to 1A)
     2) Detect charger type using PMU ADC
     3) Configure PMU current limit for discovered charger type
     4) printf the discovered charger type to console

fix-uboot-pcf50633-default-curr-lim-500mA.patch

    From: Andy Green <[EMAIL PROTECTED]>

    Apply on top of uboot-pcf50633-default-curr-lim-1A.patch.

    Just sets the default limit to 500mA which is inside overall
    USB spec (duh).  This current limit is enough for a GTA02
    without a battery to work fine from USB alone.

    Harald Welte notes we should only pull 100mA until we
    negotiated more with the host, currently we don't do this.

Signed-off-by: Andy Green <[EMAIL PROTECTED]>



Modified: trunk/src/target/u-boot/patches/uboot-gta02.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-gta02.patch   2008-02-21 06:08:00 UTC 
(rev 4093)
+++ trunk/src/target/u-boot/patches/uboot-gta02.patch   2008-02-21 06:18:31 UTC 
(rev 4094)
@@ -4,7 +4,7 @@
 ===================================================================
 --- u-boot.orig/Makefile
 +++ u-boot/Makefile
-@@ -2423,6 +2423,14 @@
+@@ -2423,6 +2423,14 @@ omap730p2_cs3boot_config :      unconfig
  sbc2410x_config: unconfig
        @$(MKCONFIG) $(@:_config=) arm arm920t sbc2410x NULL s3c24x0
  
@@ -972,7 +972,7 @@
 ===================================================================
 --- /dev/null
 +++ u-boot/include/pcf50633.h
-@@ -0,0 +1,237 @@
+@@ -0,0 +1,403 @@
 +#ifndef _PCF50633_H
 +#define _PCF50633_H
 +
@@ -1193,6 +1193,172 @@
 +
 +#define PCF50633_OOCSTAT_ONKEY                0x01
 +
++
++enum pcf50633_reg_adcc1 {
++      PCF50633_ADCC1_ADCSTART         = 0x01,
++      PCF50633_ADCC1_RES_10BIT        = 0x02,
++      PCF50633_ADCC1_AVERAGE_NO       = 0x00,
++      PCF50633_ADCC1_AVERAGE_4        = 0x04,
++      PCF50633_ADCC1_AVERAGE_8        = 0x08,
++      PCF50633_ADCC1_AVERAGE_16       = 0x0c,
++
++      PCF50633_ADCC1_MUX_BATSNS_RES   = 0x00,
++      PCF50633_ADCC1_MUX_BATSNS_SUBTR = 0x10,
++      PCF50633_ADCC1_MUX_ADCIN2_RES   = 0x20,
++      PCF50633_ADCC1_MUX_ADCIN2_SUBTR = 0x30,
++      PCF50633_ADCC1_MUX_BATTEMP      = 0x60,
++      PCF50633_ADCC1_MUX_ADCIN1       = 0x70,
++};
++#define PCF50633_ADCC1_AVERAGE_MASK   0x0c
++#define       PCF50633_ADCC1_ADCMUX_MASK      0xf0
++
++enum pcf50633_reg_adcc2 {
++      PCF50633_ADCC2_RATIO_NONE       = 0x00,
++      PCF50633_ADCC2_RATIO_BATTEMP    = 0x01,
++      PCF50633_ADCC2_RATIO_ADCIN1     = 0x02,
++      PCF50633_ADCC2_RATIO_BOTH       = 0x03,
++      PCF50633_ADCC2_RATIOSETTL_100US = 0x04,
++};
++#define PCF50633_ADCC2_RATIO_MASK     0x03
++
++enum pcf50633_reg_adcc3 {
++      PCF50633_ADCC3_ACCSW_EN         = 0x01,
++      PCF50633_ADCC3_NTCSW_EN         = 0x04,
++      PCF50633_ADCC3_RES_DIV_TWO      = 0x10,
++      PCF50633_ADCC3_RES_DIV_THREE    = 0x00,
++};
++
++enum pcf50633_reg_adcs3 {
++      PCF50633_ADCS3_REF_NTCSW        = 0x00,
++      PCF50633_ADCS3_REF_ACCSW        = 0x10,
++      PCF50633_ADCS3_REF_2V0          = 0x20,
++      PCF50633_ADCS3_REF_VISA         = 0x30,
++      PCF50633_ADCS3_REF_2V0_2        = 0x70,
++      PCF50633_ADCS3_ADCRDY           = 0x80,
++};
++#define PCF50633_ADCS3_ADCDAT1L_MASK  0x03
++#define PCF50633_ADCS3_ADCDAT2L_MASK  0x0c
++#define PCF50633_ADCS3_ADCDAT2L_SHIFT 2
++#define PCF50633_ASCS3_REF_MASK               0x70
++
++enum pcf50633_regulator_enable {
++      PCF50633_REGULATOR_ON           = 0x01,
++      PCF50633_REGULATOR_ON_GPIO1     = 0x02,
++      PCF50633_REGULATOR_ON_GPIO2     = 0x04,
++      PCF50633_REGULATOR_ON_GPIO3     = 0x08,
++};
++#define PCF50633_REGULATOR_ON_MASK    0x0f
++
++enum pcf50633_regulator_phase {
++      PCF50633_REGULATOR_ACTPH1       = 0x00,
++      PCF50633_REGULATOR_ACTPH2       = 0x10,
++      PCF50633_REGULATOR_ACTPH3       = 0x20,
++      PCF50633_REGULATOR_ACTPH4       = 0x30,
++};
++#define PCF50633_REGULATOR_ACTPH_MASK 0x30
++
++enum pcf50633_reg_gpocfg {
++      PCF50633_GPOCFG_GPOSEL_0        = 0x00,
++      PCF50633_GPOCFG_GPOSEL_LED_NFET = 0x01,
++      PCF50633_GPOCFG_GPOSEL_SYSxOK   = 0x02,
++      PCF50633_GPOCFG_GPOSEL_CLK32K   = 0x03,
++      PCF50633_GPOCFG_GPOSEL_ADAPUSB  = 0x04,
++      PCF50633_GPOCFG_GPOSEL_USBxOK   = 0x05,
++      PCF50633_GPOCFG_GPOSEL_ACTPH4   = 0x06,
++      PCF50633_GPOCFG_GPOSEL_1        = 0x07,
++      PCF50633_GPOCFG_GPOSEL_INVERSE  = 0x08,
++};
++#define PCF50633_GPOCFG_GPOSEL_MASK   0x07
++
++#if 0
++enum pcf50633_reg_mbcc1 {
++      PCF50633_MBCC1_CHGENA           = 0x01,
++      PCF50633_MBCC1_AUTOSTOP         = 0x02,
++      PCF50633_MBCC1_AUTORES          = 0x04,
++      PCF50633_MBCC1_RESUME           = 0x08,
++      PCF50633_MBCC1_RESTART          = 0x10,
++      PCF50633_MBCC1_PREWDTIME_30MIN  = 0x00,
++      PCF50633_MBCC1_PREWDTIME_60MIN  = 0x20,
++      PCF50633_MBCC1_WDTIME_2HRS      = 0x40,
++      PCF50633_MBCC1_WDTIME_4HRS      = 0x80,
++      PCF50633_MBCC1_WDTIME_6HRS      = 0xc0,
++};
++
++enum pcf50633_reg_mbcc2 {
++      PCF50633_MBCC2_VBATCOND_2V7     = 0x00,
++      PCF50633_MBCC2_VBATCOND_2V85    = 0x01,
++      PCF50633_MBCC2_VBATCOND_3V0     = 0x02,
++      PCF50633_MBCC2_VBATCOND_3V15    = 0x03,
++      PCF50633_MBCC2_VRESDEBTIME_64S  = 0x80,
++};
++#define PCF50633_MBCC2_VMAX_MASK      0x3c
++#endif
++
++enum pcf50633_reg_mbcc7 {
++      PCF50633_MBCC7_USB_100mA        = 0x00,
++      PCF50633_MBCC7_USB_500mA        = 0x01,
++      PCF50633_MBCC7_USB_1000mA       = 0x02,
++      PCF50633_MBCC7_USB_SUSPEND      = 0x03,
++      PCF50633_MBCC7_BATTEMP_EN       = 0x04,
++      PCF50633_MBCC7_BATSYSIMAX_1A6   = 0x00,
++      PCF50633_MBCC7_BATSYSIMAX_1A8   = 0x40,
++      PCF50633_MBCC7_BATSYSIMAX_2A0   = 0x80,
++      PCF50633_MBCC7_BATSYSIMAX_2A2   = 0xc0,
++};
++#define PCF56033_MBCC7_USB_MASK               0x03
++
++enum pcf50633_reg_mbcc8 {
++      PCF50633_MBCC8_USBENASUS        = 0x10,
++};
++
++enum pcf50633_reg_mbcs1 {
++      PCF50633_MBCS1_USBPRES          = 0x01,
++      PCF50633_MBCS1_USBOK            = 0x02,
++      PCF50633_MBCS1_ADAPTPRES        = 0x04,
++      PCF50633_MBCS1_ADAPTOK          = 0x08,
++      PCF50633_MBCS1_TBAT_OK          = 0x00,
++      PCF50633_MBCS1_TBAT_ABOVE       = 0x10,
++      PCF50633_MBCS1_TBAT_BELOW       = 0x20,
++      PCF50633_MBCS1_TBAT_UNDEF       = 0x30,
++      PCF50633_MBCS1_PREWDTEXP        = 0x40,
++      PCF50633_MBCS1_WDTEXP           = 0x80,
++};
++
++enum pcf50633_reg_mbcs2_mbcmod {
++      PCF50633_MBCS2_MBC_PLAY         = 0x00,
++      PCF50633_MBCS2_MBC_USB_PRE      = 0x01,
++      PCF50633_MBCS2_MBC_USB_PRE_WAIT = 0x02,
++      PCF50633_MBCS2_MBC_USB_FAST     = 0x03,
++      PCF50633_MBCS2_MBC_USB_FAST_WAIT= 0x04,
++      PCF50633_MBCS2_MBC_USB_SUSPEND  = 0x05,
++      PCF50633_MBCS2_MBC_ADP_PRE      = 0x06,
++      PCF50633_MBCS2_MBC_ADP_PRE_WAIT = 0x07,
++      PCF50633_MBCS2_MBC_ADP_FAST     = 0x08,
++      PCF50633_MBCS2_MBC_ADP_FAST_WAIT= 0x09,
++      PCF50633_MBCS2_MBC_BAT_FULL     = 0x0a,
++      PCF50633_MBCS2_MBC_HALT         = 0x0b,
++};
++#define PCF50633_MBCS2_MBC_MASK               0x0f
++enum pcf50633_reg_mbcs2_chgstat {
++      PCF50633_MBCS2_CHGS_NONE        = 0x00,
++      PCF50633_MBCS2_CHGS_ADAPTER     = 0x10,
++      PCF50633_MBCS2_CHGS_USB         = 0x20,
++      PCF50633_MBCS2_CHGS_BOTH        = 0x30,
++};
++#define PCF50633_MBCS2_RESSTAT_AUTO   0x40
++
++enum pcf50633_reg_mbcs3 {
++      PCF50633_MBCS3_USBLIM_PLAY      = 0x01,
++      PCF50633_MBCS3_USBLIM_CGH       = 0x02,
++      PCF50633_MBCS3_TLIM_PLAY        = 0x04,
++      PCF50633_MBCS3_TLIM_CHG         = 0x08,
++      PCF50633_MBCS3_ILIM             = 0x10, /* 1: Ibat > Icutoff */
++      PCF50633_MBCS3_VLIM             = 0x20, /* 1: Vbat == Vmax */
++      PCF50633_MBCS3_VBATSTAT         = 0x40, /* 1: Vbat > Vbatcond */
++      PCF50633_MBCS3_VRES             = 0x80, /* 1: Vbat > Vth(RES) */
++};
++
++
 +/* this is to be provided by the board implementation */
 +extern const u_int8_t pcf50633_initial_regs[__NUM_PCF50633_REGS];
 +
@@ -1214,7 +1380,7 @@
 ===================================================================
 --- /dev/null
 +++ u-boot/drivers/misc/pcf50633.c
-@@ -0,0 +1,218 @@
+@@ -0,0 +1,278 @@
 +#include <common.h>
 +
 +#ifdef CONFIG_DRIVER_PCF50633
@@ -1224,6 +1390,10 @@
 +#include <asm/atomic.h>
 +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
 +
++
++#define ADC_NOMINAL_RES_1A 6
++#define ADC_NOMINAL_RES_NC_R_USB 43
++
 +#define PCF50633_I2C_ADDR             0x73
 +
 +void __pcf50633_reg_write(u_int8_t reg, u_int8_t val)
@@ -1324,12 +1494,48 @@
 +      return 0;
 +}
 +
++/* figure out our charger situation */
++int pcf50633_read_charger_type(void)
++{
++      u_int16_t ret;
 +
++      /* kill ratiometric, but enable ACCSW biasing */
++      pcf50633_reg_write(PCF50633_REG_ADCC2, 0x00);
++      pcf50633_reg_write(PCF50633_REG_ADCC3, 0x01);
++
++      /* start ADC conversion of selected channel */
++      pcf50633_reg_write(PCF50633_REG_ADCC1, PCF50633_ADCC1_MUX_ADCIN1 |
++                                             PCF50633_ADCC1_AVERAGE_16 |
++                                             PCF50633_ADCC1_ADCSTART |
++                                             PCF50633_ADCC1_RES_10BIT);
++
++      /* spin until completed */
++      while (!(pcf50633_reg_read(PCF50633_REG_ADCS3) & 0x80))
++              ;
++
++      /* grab the result */
++      ret = (pcf50633_reg_read(PCF50633_REG_ADCS1) << 2) |
++            (pcf50633_reg_read(PCF50633_REG_ADCS3) &
++            PCF50633_ADCS3_ADCDAT1L_MASK);
++
++      /* well it is nearest to the 1A resistor */
++      if (ret < ((ADC_NOMINAL_RES_1A + ADC_NOMINAL_RES_NC_R_USB) / 2))
++              return 1000;
++
++      /* ok all we know is there is no resistor, it can be USB pwr or none */
++      if ((pcf50633_reg_read(PCF50633_REG_MBCS1) & 0x3) == 0x3)
++              return 500; /* USB power then */
++
++      return 0; /* nope, no power, just battery */
++}
++
++
++
 +/* initialize PCF50633 register set */
 +void pcf50633_init(void)
 +{
 +      unsigned long flags;
-+      u_int8_t i;
++      u_int8_t i, limit;
 +
 +      local_irq_save(flags);
 +      for (i = 0; i < PCF50633_LAST_REG; i++) {
@@ -1338,6 +1544,25 @@
 +              __pcf50633_reg_write(i, pcf50633_initial_regs[i]);
 +      }
 +      local_irq_restore(flags);
++
++      printf("Power: ");
++      switch (pcf50633_read_charger_type()) {
++      case 0: /* no charger, battery only */
++              printf("Battery\n");
++              limit = PCF50633_MBCC7_USB_SUSPEND;
++              break;
++      case 500:
++              printf("USB / 500mA\n");
++              limit = PCF50633_MBCC7_USB_500mA;
++              break;
++      default:
++              printf("1A\n");
++              limit = PCF50633_MBCC7_USB_1000mA;
++              break;
++      }
++      pcf50633_reg_write(PCF50633_REG_MBCC7,
++                         (pcf50633_reg_read(PCF50633_REG_MBCC7) &
++                         (~PCF56033_MBCC7_USB_MASK)) | limit);
 +}
 +
 +void pcf50633_usb_maxcurrent(unsigned int ma)
@@ -1356,6 +1581,7 @@
 +      return pcf50633_reg_set_bit_mask(PCF50633_REG_MBCC7, 0x03, val);
 +}
 +
++
 +static const char *charger_states[] = {
 +      [0]     = "play_only",
 +      [1]     = "usb_precharge",
@@ -1484,7 +1710,7 @@
  
  /* REFRESH parameter */
  #define REFEN                 0x1     /* Refresh enable */
-@@ -165,6 +167,27 @@
+@@ -165,6 +167,27 @@ lowlevel_init:
        str     r1, [r0]
  #endif
  
@@ -1512,7 +1738,7 @@
        /* everything is fine now */
        mov     pc, lr
  
-@@ -182,6 +205,10 @@
+@@ -182,6 +205,10 @@ SMRDATA:
      .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))
      .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))
      .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)
@@ -1639,7 +1865,7 @@
 +      [PCF50633_REG_MBCC4]    = 0xff, /* 255/255 == 1A adapter fast */
 +      [PCF50633_REG_MBCC5]    = 0x7f, /* 127/255 == 500mA usb fast */
 +      [PCF50633_REG_MBCC6]    = 0x00, /* cutoff current 1/32 * Ichg */
-+      [PCF50633_REG_MBCC7]    = 0x00, /* 1.6A max bat curr, USB 100mA */
++      [PCF50633_REG_MBCC7]    = 0x01, /* 1.6A max bat curr, USB 500mA */
 +      [PCF50633_REG_MBCC8]    = 0x00,
 +
 +      [PCF50633_REG_BBCCTL]   = 0x19, /* 3V, 200uA, on */
@@ -1878,7 +2104,7 @@
 ===================================================================
 --- u-boot.orig/drivers/video/Makefile
 +++ u-boot/drivers/video/Makefile
-@@ -33,6 +33,7 @@
+@@ -33,6 +33,7 @@ COBJS-y += s3c2410_fb.o
  COBJS-y += sed13806.o
  COBJS-y += sed156x.o
  COBJS-y += sm501.o
@@ -1890,7 +2116,7 @@
 ===================================================================
 --- u-boot.orig/drivers/misc/Makefile
 +++ u-boot/drivers/misc/Makefile
-@@ -28,6 +28,7 @@
+@@ -28,6 +28,7 @@ LIB  := $(obj)libmisc.a
  COBJS-y += ali512x.o
  COBJS-y += ns87308.o
  COBJS-y += pcf50606.o
@@ -1902,7 +2128,7 @@
 ===================================================================
 --- u-boot.orig/common/cmd_nand.c
 +++ u-boot/common/cmd_nand.c
-@@ -204,8 +204,10 @@
+@@ -204,8 +204,10 @@ int do_nand(cmd_tbl_t * cmdtp, int flag,
                putc('\n');
                for (i = 0; i < CFG_MAX_NAND_DEVICE; i++) {
                        if (nand_info[i].name)
@@ -1918,7 +2144,7 @@
 ===================================================================
 --- u-boot.orig/drivers/mtd/nand/nand_ids.c
 +++ u-boot/drivers/mtd/nand/nand_ids.c
-@@ -67,7 +67,7 @@
+@@ -67,7 +67,7 @@ struct nand_flash_dev nand_flash_ids[] =
  
        {"NAND 256MiB 3,3V 8-bit",      0x71, 512, 256, 0x4000, 0},
  
@@ -1939,7 +2165,7 @@
  
  void udc_ctrl(enum usbd_event event, int param)
  {
-@@ -11,7 +12,8 @@
+@@ -11,7 +12,8 @@ void udc_ctrl(enum usbd_event event, int
        switch (event) {
        case UDC_CTRL_PULLUP_ENABLE:
  #if defined(CONFIG_ARCH_GTA01_v4) || defined(CONFIG_ARCH_GTA01B_v2) || \
@@ -1949,7 +2175,7 @@
                if (param)
                        gpio->GPBDAT |= (1 << 9);
                else
-@@ -23,6 +25,11 @@
+@@ -23,6 +25,11 @@ void udc_ctrl(enum usbd_event event, int
      defined(CONFIG_ARCH_GTA01B_v2) || defined(CONFIG_ARCH_GTA01B_v3) || \
      defined(CONFIG_ARCH_GTA01B_v4)
                pcf50606_charge_autofast(param);




--- End Message ---
--- Begin Message ---
Author: john_lee
Date: 2008-02-21 07:50:13 +0100 (Thu, 21 Feb 2008)
New Revision: 4095

Modified:
   trunk/src/host/openembedded/site.conf
Log:
Don't use SOURCEFORGE_MIRROR because it causes problems in other
locations of the world such as OM Taipei office.

The default value of SOURCEFORGE_MIRROR in bitbake.conf should be fine
and people can always set their own in local.conf.



Modified: trunk/src/host/openembedded/site.conf
===================================================================
--- trunk/src/host/openembedded/site.conf       2008-02-21 06:18:31 UTC (rev 
4094)
+++ trunk/src/host/openembedded/site.conf       2008-02-21 06:50:13 UTC (rev 
4095)
@@ -7,5 +7,5 @@
 #DEBUG_OPTIMIZATION = "-O -g3"
 #DEBUG_BUILD = "0"
 #INHIBIT_PACKAGE_STRIP = "1"
-SOURCEFORGE_MIRROR = "http://belnet.dl.sf.net";
+#SOURCEFORGE_MIRROR = "http://belnet.dl.sf.net";
 #PARALLEL_MAKE = ""




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

Reply via email to