From 618097c906c68f2df5fb03ace81e6295be6ded42 Mon Sep 17 00:00:00 2001 From: Holger Freyther 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 --- 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