1 From 76e50bb39e4362b6c073cfea8bd323f6fe146119 Mon Sep 17 00:00:00 2001
2 From: Holger Freyther <zecke@openmoko.org>
3 Date: Fri, 25 Jul 2008 23:06:17 +0100
4 Subject: [PATCH] From 5718bde77ed1a75e0fd2cdf5e099e66121d10c0a Mon Sep 17 00:00:00 2001
5 Subject: [PATCH] [battery] Make the bq27000 send an uevent when the charging state possible changed
6 Remove the todo entries from the pcf50633, make the mach-gta02
7 call the bq27000 driver from the pmu callback.
10 arch/arm/mach-s3c2440/mach-gta02.c | 36 +++++++++++++++++++-----------------
11 drivers/i2c/chips/pcf50633.c | 4 ----
12 drivers/power/bq27000_battery.c | 11 +++++++++++
13 include/linux/bq27000_battery.h | 2 ++
14 4 files changed, 32 insertions(+), 21 deletions(-)
16 diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c
17 index afe8039..e66498b 100644
18 --- a/arch/arm/mach-s3c2440/mach-gta02.c
19 +++ b/arch/arm/mach-s3c2440/mach-gta02.c
20 @@ -450,6 +450,24 @@ static struct s3c2410_uartcfg gta02_uartcfgs[] = {
24 +/* BQ27000 Battery */
26 +struct bq27000_platform_data bq27000_pdata = {
29 + .hdq_read = gta02hdq_read,
30 + .hdq_write = gta02hdq_write,
31 + .hdq_initialized = gta02hdq_initialized,
34 +struct platform_device bq27000_battery_device = {
35 + .name = "bq27000-battery",
37 + .platform_data = &bq27000_pdata,
44 static int pmu_callback(struct device *dev, unsigned int feature,
45 @@ -482,6 +500,7 @@ static int pmu_callback(struct device *dev, unsigned int feature,
49 + bq27000_charging_state_change(&bq27000_battery_device);
53 @@ -740,23 +759,6 @@ struct platform_device gta02_hdq_device = {
57 -/* BQ27000 Battery */
59 -struct bq27000_platform_data bq27000_pdata = {
62 - .hdq_read = gta02hdq_read,
63 - .hdq_write = gta02hdq_write,
64 - .hdq_initialized = gta02hdq_initialized,
67 -struct platform_device bq27000_battery_device = {
68 - .name = "bq27000-battery",
70 - .platform_data = &bq27000_pdata,
77 diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c
78 index 62bd2d5..4be6cd3 100644
79 --- a/drivers/i2c/chips/pcf50633.c
80 +++ b/drivers/i2c/chips/pcf50633.c
81 @@ -888,8 +888,6 @@ static void pcf50633_work(struct work_struct *work)
83 pcf->pdata->cb(&pcf->client.dev,
84 PCF50633_FEAT_MBC, PMU_EVT_INSERT);
85 - /* FIXME: signal this to userspace */
86 - //kobject_uevent( ,KOBJ_ADD);
88 if (pcfirq[0] & PCF50633_INT1_ADPREM) {
90 @@ -900,8 +898,6 @@ static void pcf50633_work(struct work_struct *work)
92 pcf->pdata->cb(&pcf->client.dev,
93 PCF50633_FEAT_MBC, PMU_EVT_REMOVE);
94 - /* FIXME: signal this to userspace */
95 - //kobject_uevent( ,KOBJ_ADD);
97 if (pcfirq[0] & PCF50633_INT1_USBINS) {
99 diff --git a/drivers/power/bq27000_battery.c b/drivers/power/bq27000_battery.c
100 index 652a9fa..5598568 100644
101 --- a/drivers/power/bq27000_battery.c
102 +++ b/drivers/power/bq27000_battery.c
103 @@ -329,6 +329,17 @@ static int bq27000_battery_remove(struct platform_device *pdev)
107 +void bq27000_charging_state_change(struct platform_device *pdev)
109 + struct bq27000_device_info *di = platform_get_drvdata(pdev);
114 + power_supply_changed(&di->bat);
116 +EXPORT_SYMBOL_GPL(bq27000_charging_state_change);
120 static int bq27000_battery_suspend(struct platform_device *pdev,
121 diff --git a/include/linux/bq27000_battery.h b/include/linux/bq27000_battery.h
122 index 36b4f20..fed4287 100644
123 --- a/include/linux/bq27000_battery.h
124 +++ b/include/linux/bq27000_battery.h
126 #ifndef __BQ27000_BATTERY_H__
127 #define __BQ27000_BATTERY_H__
129 +void bq27000_charging_state_change(struct platform_device *pdev);
131 struct bq27000_platform_data {