diff options
author | Holger Freyther <zecke@openmoko.org> | 2008-11-19 17:09:53 +0000 |
---|---|---|
committer | Andy Green <agreen@pads.home.warmcat.com> | 2008-11-19 17:09:53 +0000 |
commit | 91f495bb69a8bd8f5f6619bd433bf73537ac447d (patch) | |
tree | 94ef138f9538f73d900e95ad6ba02992b1924572 | |
parent | 35ab1c23a5e3704e8f60eb19944ff71bf7b04306 (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.c | 36 | ||||
-rw-r--r-- | drivers/i2c/chips/pcf50633.c | 4 | ||||
-rw-r--r-- | drivers/power/bq27000_battery.c | 11 | ||||
-rw-r--r-- | include/linux/bq27000_battery.h | 2 |
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; |