create firmware image for the Ubiquiti LS-SR71 board
[openwrt/openwrt.git] / target / linux / s3c24xx / patches-2.6.26 / 1199-From-5718bde77ed1a75e0fd2cdf5e099e66121d10c0a-Mon-Se.patch
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.
8
9 ---
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(-)
15
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[] = {
21
22 };
23
24 +/* BQ27000 Battery */
25 +
26 +struct bq27000_platform_data bq27000_pdata = {
27 + .name = "bat",
28 + .rsense_mohms = 20,
29 + .hdq_read = gta02hdq_read,
30 + .hdq_write = gta02hdq_write,
31 + .hdq_initialized = gta02hdq_initialized,
32 +};
33 +
34 +struct platform_device bq27000_battery_device = {
35 + .name = "bq27000-battery",
36 + .dev = {
37 + .platform_data = &bq27000_pdata,
38 + },
39 +};
40 +
41 +
42 /* PMU driver info */
43
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,
46 break;
47 }
48
49 + bq27000_charging_state_change(&bq27000_battery_device);
50 return 0;
51 }
52
53 @@ -740,23 +759,6 @@ struct platform_device gta02_hdq_device = {
54 };
55 #endif
56
57 -/* BQ27000 Battery */
58 -
59 -struct bq27000_platform_data bq27000_pdata = {
60 - .name = "bat",
61 - .rsense_mohms = 20,
62 - .hdq_read = gta02hdq_read,
63 - .hdq_write = gta02hdq_write,
64 - .hdq_initialized = gta02hdq_initialized,
65 -};
66 -
67 -struct platform_device bq27000_battery_device = {
68 - .name = "bq27000-battery",
69 - .dev = {
70 - .platform_data = &bq27000_pdata,
71 - },
72 -};
73 -
74
75 /* NOR Flash */
76
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)
82 if (pcf->pdata->cb)
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);
87 }
88 if (pcfirq[0] & PCF50633_INT1_ADPREM) {
89 /* Charger removed */
90 @@ -900,8 +898,6 @@ static void pcf50633_work(struct work_struct *work)
91 if (pcf->pdata->cb)
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);
96 }
97 if (pcfirq[0] & PCF50633_INT1_USBINS) {
98 DEBUGPC("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)
104 return 0;
105 }
106
107 +void bq27000_charging_state_change(struct platform_device *pdev)
108 +{
109 + struct bq27000_device_info *di = platform_get_drvdata(pdev);
110 +
111 + if (!di)
112 + return;
113 +
114 + power_supply_changed(&di->bat);
115 +}
116 +EXPORT_SYMBOL_GPL(bq27000_charging_state_change);
117 +
118 #ifdef CONFIG_PM
119
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
125 @@ -1,6 +1,8 @@
126 #ifndef __BQ27000_BATTERY_H__
127 #define __BQ27000_BATTERY_H__
128
129 +void bq27000_charging_state_change(struct platform_device *pdev);
130 +
131 struct bq27000_platform_data {
132 const char *name;
133 int rsense_mohms;
134 --
135 1.5.6.3
136