r3186 - branches/src/target/kernel/2.6.23.x/patches
shoragan at sita.openmoko.org
shoragan at sita.openmoko.org
Tue Oct 16 13:58:18 CEST 2007
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, >a01_gsm_attr_group);
}
+@@ -214,4 +250,4 @@
+
+ MODULE_LICENSE("GPL");
+ MODULE_AUTHOR("Harald Welte <laforge at openmoko.org>");
+-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,
More information about the commitlog
mailing list