From 1e8163901ed89e4849a1c9e304d140e043cc2b9f Mon Sep 17 00:00:00 2001 From: Holger Freyther Date: Fri, 25 Jul 2008 23:06:17 +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 4be6cd3..ead4273 100644 --- a/drivers/i2c/chips/pcf50633.c +++ b/drivers/i2c/chips/pcf50633.c @@ -1036,25 +1036,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.3