73 lines
2.4 KiB
Diff
73 lines
2.4 KiB
Diff
From 618097c906c68f2df5fb03ace81e6295be6ded42 Mon Sep 17 00:00:00 2001
|
|
From: Holger Freyther <zecke@openmoko.org>
|
|
Date: Wed, 2 Jul 2008 22:45:07 +0100
|
|
Subject: [PATCH] From c221bb27c8e22daa451e26353140777223d397d2 Mon Sep 17 00:00:00 2001
|
|
Subject: [PATCH] [pcf50633] Report more events to userspace using the default callback
|
|
|
|
Signed-Off-By: Holger Freyther <zecke@openmoko.org>
|
|
---
|
|
drivers/i2c/chips/pcf50633.c | 20 +++++++++++++++-----
|
|
include/linux/pcf506xx.h | 1 +
|
|
2 files changed, 16 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c
|
|
index 8a27925..10934f7 100644
|
|
--- a/drivers/i2c/chips/pcf50633.c
|
|
+++ b/drivers/i2c/chips/pcf50633.c
|
|
@@ -1037,25 +1037,35 @@ static void pcf50633_work(struct work_struct *work)
|
|
* this is really "battery not pulling current" -- it can
|
|
* appear with no battery attached
|
|
*/
|
|
- /* FIXME: signal this to userspace */
|
|
+ if (pcf->pdata->cb)
|
|
+ pcf->pdata->cb(&pcf->client.dev,
|
|
+ PCF50633_FEAT_MBC, PMU_EVT_CHARGER_CHANGE);
|
|
}
|
|
if (pcfirq[2] & PCF50633_INT3_THLIMON) {
|
|
DEBUGPC("THLIMON ");
|
|
pcf->flags |= PCF50633_F_CHG_PROT;
|
|
- /* FIXME: signal this to userspace */
|
|
+ if (pcf->pdata->cb)
|
|
+ pcf->pdata->cb(&pcf->client.dev,
|
|
+ PCF50633_FEAT_MBC, PMU_EVT_CHARGER_CHANGE);
|
|
}
|
|
if (pcfirq[2] & PCF50633_INT3_THLIMOFF) {
|
|
DEBUGPC("THLIMOFF ");
|
|
pcf->flags &= ~PCF50633_F_CHG_PROT;
|
|
- /* FIXME: signal this to userspace */
|
|
+ if (pcf->pdata->cb)
|
|
+ pcf->pdata->cb(&pcf->client.dev,
|
|
+ PCF50633_FEAT_MBC, PMU_EVT_CHARGER_CHANGE);
|
|
}
|
|
if (pcfirq[2] & PCF50633_INT3_USBLIMON) {
|
|
DEBUGPC("USBLIMON ");
|
|
- /* FIXME: signal this to userspace */
|
|
+ if (pcf->pdata->cb)
|
|
+ pcf->pdata->cb(&pcf->client.dev,
|
|
+ PCF50633_FEAT_MBC, PMU_EVT_CHARGER_CHANGE);
|
|
}
|
|
if (pcfirq[2] & PCF50633_INT3_USBLIMOFF) {
|
|
DEBUGPC("USBLIMOFF ");
|
|
- /* FIXME: signal this to userspace */
|
|
+ if (pcf->pdata->cb)
|
|
+ pcf->pdata->cb(&pcf->client.dev,
|
|
+ PCF50633_FEAT_MBC, PMU_EVT_CHARGER_CHANGE);
|
|
}
|
|
if (pcfirq[2] & PCF50633_INT3_ADCRDY) {
|
|
/* ADC result ready */
|
|
diff --git a/include/linux/pcf506xx.h b/include/linux/pcf506xx.h
|
|
index a1365e0..459b160 100644
|
|
--- a/include/linux/pcf506xx.h
|
|
+++ b/include/linux/pcf506xx.h
|
|
@@ -23,6 +23,7 @@ enum pmu_event {
|
|
#endif
|
|
PMU_EVT_CHARGER_ACTIVE,
|
|
PMU_EVT_CHARGER_IDLE,
|
|
+ PMU_EVT_CHARGER_CHANGE,
|
|
__NUM_PMU_EVTS
|
|
};
|
|
|
|
--
|
|
1.5.6.5
|
|
|