diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.26/1199-From-5718bde77ed1a75e0fd2cdf5e099e66121d10c0a-Mon-Se.patch')
-rwxr-xr-x | target/linux/s3c24xx/patches-2.6.26/1199-From-5718bde77ed1a75e0fd2cdf5e099e66121d10c0a-Mon-Se.patch | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.26/1199-From-5718bde77ed1a75e0fd2cdf5e099e66121d10c0a-Mon-Se.patch b/target/linux/s3c24xx/patches-2.6.26/1199-From-5718bde77ed1a75e0fd2cdf5e099e66121d10c0a-Mon-Se.patch new file mode 100755 index 000000000..456c0b193 --- /dev/null +++ b/target/linux/s3c24xx/patches-2.6.26/1199-From-5718bde77ed1a75e0fd2cdf5e099e66121d10c0a-Mon-Se.patch @@ -0,0 +1,136 @@ +From 76e50bb39e4362b6c073cfea8bd323f6fe146119 Mon Sep 17 00:00:00 2001 +From: Holger Freyther <zecke@openmoko.org> +Date: Fri, 25 Jul 2008 23:06:17 +0100 +Subject: [PATCH] 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. + +--- + arch/arm/mach-s3c2440/mach-gta02.c | 36 +++++++++++++++++++----------------- + drivers/i2c/chips/pcf50633.c | 4 ---- + drivers/power/bq27000_battery.c | 11 +++++++++++ + 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 afe8039..e66498b 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 62bd2d5..4be6cd3 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 652a9fa..5598568 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 36b4f20..fed4287 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; +-- +1.5.6.3 + |