aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Freyther <zecke@openmoko.org>2008-11-19 17:09:53 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-11-19 17:09:53 +0000
commit91f495bb69a8bd8f5f6619bd433bf73537ac447d (patch)
tree94ef138f9538f73d900e95ad6ba02992b1924572
parent35ab1c23a5e3704e8f60eb19944ff71bf7b04306 (diff)
From 5718bde77ed1a75e0fd2cdf5e099e66121d10c0a Mon Sep 17 00:00:00 2001
Subject: [PATCH] [battery] Make the bq27000 send an uevent when the charging state possible changed Remove the todo entries from the pcf50633, make the mach-gta02 call the bq27000 driver from the pmu callback.
-rw-r--r--arch/arm/mach-s3c2440/mach-gta02.c36
-rw-r--r--drivers/i2c/chips/pcf50633.c4
-rw-r--r--drivers/power/bq27000_battery.c11
-rw-r--r--include/linux/bq27000_battery.h2
4 files changed, 32 insertions, 21 deletions
diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c
index afe8039f0ff..e66498b8911 100644
--- a/arch/arm/mach-s3c2440/mach-gta02.c
+++ b/arch/arm/mach-s3c2440/mach-gta02.c
@@ -450,6 +450,24 @@ static struct s3c2410_uartcfg gta02_uartcfgs[] = {
};
+/* BQ27000 Battery */
+
+struct bq27000_platform_data bq27000_pdata = {
+ .name = "bat",
+ .rsense_mohms = 20,
+ .hdq_read = gta02hdq_read,
+ .hdq_write = gta02hdq_write,
+ .hdq_initialized = gta02hdq_initialized,
+};
+
+struct platform_device bq27000_battery_device = {
+ .name = "bq27000-battery",
+ .dev = {
+ .platform_data = &bq27000_pdata,
+ },
+};
+
+
/* PMU driver info */
static int pmu_callback(struct device *dev, unsigned int feature,
@@ -482,6 +500,7 @@ static int pmu_callback(struct device *dev, unsigned int feature,
break;
}
+ bq27000_charging_state_change(&bq27000_battery_device);
return 0;
}
@@ -740,23 +759,6 @@ struct platform_device gta02_hdq_device = {
};
#endif
-/* BQ27000 Battery */
-
-struct bq27000_platform_data bq27000_pdata = {
- .name = "bat",
- .rsense_mohms = 20,
- .hdq_read = gta02hdq_read,
- .hdq_write = gta02hdq_write,
- .hdq_initialized = gta02hdq_initialized,
-};
-
-struct platform_device bq27000_battery_device = {
- .name = "bq27000-battery",
- .dev = {
- .platform_data = &bq27000_pdata,
- },
-};
-
/* NOR Flash */
diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c
index 62bd2d511e0..4be6cd328ad 100644
--- a/drivers/i2c/chips/pcf50633.c
+++ b/drivers/i2c/chips/pcf50633.c
@@ -888,8 +888,6 @@ static void pcf50633_work(struct work_struct *work)
if (pcf->pdata->cb)
pcf->pdata->cb(&pcf->client.dev,
PCF50633_FEAT_MBC, PMU_EVT_INSERT);
- /* FIXME: signal this to userspace */
- //kobject_uevent( ,KOBJ_ADD);
}
if (pcfirq[0] & PCF50633_INT1_ADPREM) {
/* Charger removed */
@@ -900,8 +898,6 @@ static void pcf50633_work(struct work_struct *work)
if (pcf->pdata->cb)
pcf->pdata->cb(&pcf->client.dev,
PCF50633_FEAT_MBC, PMU_EVT_REMOVE);
- /* FIXME: signal this to userspace */
- //kobject_uevent( ,KOBJ_ADD);
}
if (pcfirq[0] & PCF50633_INT1_USBINS) {
DEBUGPC("USBINS ");
diff --git a/drivers/power/bq27000_battery.c b/drivers/power/bq27000_battery.c
index 652a9fa9708..5598568933d 100644
--- a/drivers/power/bq27000_battery.c
+++ b/drivers/power/bq27000_battery.c
@@ -329,6 +329,17 @@ static int bq27000_battery_remove(struct platform_device *pdev)
return 0;
}
+void bq27000_charging_state_change(struct platform_device *pdev)
+{
+ struct bq27000_device_info *di = platform_get_drvdata(pdev);
+
+ if (!di)
+ return;
+
+ power_supply_changed(&di->bat);
+}
+EXPORT_SYMBOL_GPL(bq27000_charging_state_change);
+
#ifdef CONFIG_PM
static int bq27000_battery_suspend(struct platform_device *pdev,
diff --git a/include/linux/bq27000_battery.h b/include/linux/bq27000_battery.h
index 36b4f20c8db..fed4287d756 100644
--- a/include/linux/bq27000_battery.h
+++ b/include/linux/bq27000_battery.h
@@ -1,6 +1,8 @@
#ifndef __BQ27000_BATTERY_H__
#define __BQ27000_BATTERY_H__
+void bq27000_charging_state_change(struct platform_device *pdev);
+
struct bq27000_platform_data {
const char *name;
int rsense_mohms;