HI!
I'm testing the fluid to upgrade firmware on gta02 but having problem
when control the power on/off of gsm.
With this patch, fluid works fine.
-Sean Chiang
diff -rup orig/arch/arm/common/gta01_pm_gsm.c linux-2.6.22.5/arch/arm/common/gta01_pm_gsm.c
--- orig/arch/arm/common/gta01_pm_gsm.c 2007-12-24 17:25:46.000000000 +0800
+++ linux-2.6.22.5/arch/arm/common/gta01_pm_gsm.c 2007-12-24 16:44:46.000000000 +0800
@@ -89,6 +89,8 @@ static ssize_t gsm_write(struct device *
switch (system_rev) {
#ifdef CONFIG_MACH_NEO1973_GTA02
case GTA02v2_SYSTEM_REV:
+ case GTA02v3_SYSTEM_REV:
+ case GTA02v4_SYSTEM_REV:
pcf50633_gpio_set(pcf50633_global,
PCF50633_GPIO2, 1);
break;
@@ -102,6 +104,8 @@ static ssize_t gsm_write(struct device *
switch (system_rev) {
#ifdef CONFIG_MACH_NEO1973_GTA02
case GTA02v2_SYSTEM_REV:
+ case GTA02v3_SYSTEM_REV:
+ case GTA02v4_SYSTEM_REV:
pcf50633_gpio_set(pcf50633_global,
PCF50633_GPIO2, 0);
break;
@@ -187,6 +191,8 @@ static int __init gta01_gsm_probe(struct
#ifdef CONFIG_MACH_NEO1973_GTA02
case GTA02v1_SYSTEM_REV:
case GTA02v2_SYSTEM_REV:
+ case GTA02v3_SYSTEM_REV:
+ case GTA02v4_SYSTEM_REV:
gta01_gsm.gpio_ngsm_en = 0;
break;
#endif
diff -rup orig/drivers/i2c/chips/pcf50633.c linux-2.6.22.5/drivers/i2c/chips/pcf50633.c
--- orig/drivers/i2c/chips/pcf50633.c 2007-12-24 17:25:46.000000000 +0800
+++ linux-2.6.22.5/drivers/i2c/chips/pcf50633.c 2007-12-24 17:54:40.000000000 +0800
@@ -452,7 +452,7 @@ EXPORT_SYMBOL_GPL(pcf50633_go_standby);
void pcf50633_gpio_set(struct pcf50633_data *pcf, enum pcf50633_gpio gpio,
int on)
{
- u_int8_t reg = PCF50633_GPIO1-1 + gpio;
+ u_int8_t reg = gpio - PCF50633_GPIO1 + PCF50633_REG_GPIO1CFG;
if (on)
reg_set_bit_mask(pcf, reg, 0x0f, 0x07);
@@ -463,7 +463,7 @@ EXPORT_SYMBOL_GPL(pcf50633_gpio_set);
int pcf50633_gpio_get(struct pcf50633_data *pcf, enum pcf50633_gpio gpio)
{
- u_int8_t reg = PCF50633_GPIO1-1 + gpio;
+ u_int8_t reg = gpio - PCF50633_GPIO1 + PCF50633_REG_GPIO1CFG;
u_int8_t val = reg_read(pcf, reg) & 0x0f;
if (val == PCF50633_GPOCFG_GPOSEL_1 ||