changed Makefile and profiles, added patches for kernel 2.6.24
[openwrt.git] / target / linux / s3c24xx / patches-2.6.24 / 1219-From-5718bde77ed1a75e0fd2cdf5e099e66121d10c0a-Mon-Se.patch
1 From d869fe11c6acbc3466abcdae741376b2c71bca69 Mon Sep 17 00:00:00 2001
2 From: Holger Freyther <zecke@openmoko.org>
3 Date: Wed, 2 Jul 2008 22:44:59 +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 4d19dae..8a27925 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 c87e26d..4855d5a 100644
101 --- a/drivers/power/bq27000_battery.c
102 +++ b/drivers/power/bq27000_battery.c
103 @@ -330,6 +330,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.5
136