diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1041-pcf506xx.patch.patch')
-rw-r--r-- | target/linux/s3c24xx/patches-2.6.24/1041-pcf506xx.patch.patch | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1041-pcf506xx.patch.patch b/target/linux/s3c24xx/patches-2.6.24/1041-pcf506xx.patch.patch deleted file mode 100644 index c09f7b9a11..0000000000 --- a/target/linux/s3c24xx/patches-2.6.24/1041-pcf506xx.patch.patch +++ /dev/null @@ -1,200 +0,0 @@ -From 825154a75730a9505750384cda1dc47c6edb3a1d Mon Sep 17 00:00:00 2001 -From: mokopatches <mokopatches@openmoko.org> -Date: Fri, 4 Apr 2008 11:36:10 +0100 -Subject: [PATCH] pcf506xx.patch - Moved shared PMU code from pcf50606.h and pcf50633.h (which prevented inclusion - of both at the same time) to pcf506xx.h - -- include/linux/pcf50606.h (struct pmu_voltage_rail, enum pmu_event, pmu_cb): - moved to pcf506xx.h -- include/linux/pcf50633.h (struct pmu_voltage_rail, enum pmu_event, pmu_cb): - moved to pcf506xx.h - -Signed off-by: Werner Almesberger <werner@openmoko.org> ---- - drivers/i2c/chips/pcf50606.c | 28 +++++++++++++++++++++++++++- - include/linux/pcf50606.h | 23 +++-------------------- - include/linux/pcf50633.h | 27 +++------------------------ - include/linux/pcf506xx.h | 31 +++++++++++++++++++++++++++++++ - 4 files changed, 64 insertions(+), 45 deletions(-) - create mode 100644 include/linux/pcf506xx.h - -diff --git a/drivers/i2c/chips/pcf50606.c b/drivers/i2c/chips/pcf50606.c -index 6626c68..b530583 100644 ---- a/drivers/i2c/chips/pcf50606.c -+++ b/drivers/i2c/chips/pcf50606.c -@@ -102,6 +102,7 @@ struct pcf50606_data { - int allow_close; - int onkey_seconds; - int irq; -+ int coldplug_done; - #ifdef CONFIG_PM - struct { - u_int8_t dcdc1, dcdc2; -@@ -573,6 +574,30 @@ static void pcf50606_work(struct work_struct *work) - if (ret != 3) - DEBUGPC("Oh crap PMU IRQ register read failed %d\n", ret); - -+ if (!pcf->coldplug_done) { -+ DEBUGPC("PMU Coldplug init\n"); -+ -+ /* we used SECOND to kick ourselves started -- turn it off */ -+ pcfirq[0] &= ~PCF50606_INT1_SECOND; -+ reg_set_bit_mask(pcf, PCF50606_REG_INT1M, PCF50606_INT1_SECOND, -+ PCF50606_INT1_SECOND); -+ -+ /* coldplug the USB if present */ -+ if (__reg_read(pcf, PCF50606_REG_OOCS) & PCF50606_OOCS_EXTON) { -+ /* Charger inserted */ -+ DEBUGPC("COLD CHGINS "); -+ input_report_key(pcf->input_dev, KEY_BATTERY, 1); -+ apm_queue_event(APM_POWER_STATUS_CHANGE); -+ pcf->flags |= PCF50606_F_CHG_PRESENT; -+ if (pcf->pdata->cb) -+ pcf->pdata->cb(&pcf->client.dev, -+ PCF50606_FEAT_MBC, PMU_EVT_INSERT); -+ } -+ -+ pcf->coldplug_done = 1; -+ } -+ -+ - dev_dbg(&pcf->client.dev, "INT1=0x%02x INT2=0x%02x INT3=0x%02x:", - pcfirq[0], pcfirq[1], pcfirq[2]); - -@@ -1642,7 +1667,8 @@ static int pcf50606_detect(struct i2c_adapter *adapter, int address, int kind) - pm_power_off = &pcf50606_go_standby; - - /* configure interrupt mask */ -- reg_write(data, PCF50606_REG_INT1M, PCF50606_INT1_SECOND); -+ /* we don't mask SECOND here, because we want one to do coldplug with */ -+ reg_write(data, PCF50606_REG_INT1M, 0x00); - reg_write(data, PCF50606_REG_INT2M, 0x00); - reg_write(data, PCF50606_REG_INT3M, PCF50606_INT3_TSCPRES); - -diff --git a/include/linux/pcf50606.h b/include/linux/pcf50606.h -index bc98e47..167328f 100644 ---- a/include/linux/pcf50606.h -+++ b/include/linux/pcf50606.h -@@ -1,6 +1,9 @@ - #ifndef _LINUX_PCF50606_H - #define _LINUX_PCF50606_H - -+#include <linux/pcf506xx.h> -+ -+ - /* public in-kernel pcf50606 api */ - enum pcf50606_regulator_id { - PCF50606_REGULATOR_DCD, -@@ -48,26 +51,6 @@ pcf50606_onoff_set(struct pcf50606_data *pcf, - extern void - pcf50606_charge_fast(struct pcf50606_data *pcf, int on); - --#define PMU_VRAIL_F_SUSPEND_ON 0x00000001 /* Remains on during suspend */ --#define PMU_VRAIL_F_UNUSED 0x00000002 /* This rail is not used */ --struct pmu_voltage_rail { -- char *name; -- unsigned int flags; -- struct { -- unsigned int init; -- unsigned int max; -- } voltage; --}; -- --enum pmu_event { -- PMU_EVT_NONE, -- PMU_EVT_INSERT, -- PMU_EVT_REMOVE, -- __NUM_PMU_EVTS --}; -- --typedef int pmu_cb(struct device *dev, unsigned int feature, -- enum pmu_event event); - - #define PCF50606_FEAT_EXTON 0x00000001 /* not yet supported */ - #define PCF50606_FEAT_MBC 0x00000002 -diff --git a/include/linux/pcf50633.h b/include/linux/pcf50633.h -index 5f32004..bf50fe4 100644 ---- a/include/linux/pcf50633.h -+++ b/include/linux/pcf50633.h -@@ -1,6 +1,9 @@ - #ifndef _LINUX_PCF50633_H - #define _LINUX_PCF50633_H - -+#include <linux/pcf506xx.h> -+ -+ - /* public in-kernel pcf50633 api */ - enum pcf50633_regulator_id { - PCF50633_REGULATOR_AUTO, -@@ -57,30 +60,6 @@ pcf50633_usb_curlim_set(struct pcf50633_data *pcf, int ma); - extern void - pcf50633_charge_enable(struct pcf50633_data *pcf, int on); - --/* FIXME: sharded with pcf50606 */ --#define PMU_VRAIL_F_SUSPEND_ON 0x00000001 /* Remains on during suspend */ --#define PMU_VRAIL_F_UNUSED 0x00000002 /* This rail is not used */ --struct pmu_voltage_rail { -- char *name; -- unsigned int flags; -- struct { -- unsigned int init; -- unsigned int max; -- } voltage; --}; -- --enum pmu_event { -- PMU_EVT_NONE, -- PMU_EVT_INSERT, -- PMU_EVT_REMOVE, -- PMU_EVT_USB_INSERT, -- PMU_EVT_USB_REMOVE, -- __NUM_PMU_EVTS --}; -- --typedef int pmu_cb(struct device *dev, unsigned int feature, -- enum pmu_event event); -- - #define PCF50633_FEAT_EXTON 0x00000001 /* not yet supported */ - #define PCF50633_FEAT_MBC 0x00000002 - #define PCF50633_FEAT_BBC 0x00000004 /* not yet supported */ -diff --git a/include/linux/pcf506xx.h b/include/linux/pcf506xx.h -new file mode 100644 -index 0000000..33be73e ---- /dev/null -+++ b/include/linux/pcf506xx.h -@@ -0,0 +1,31 @@ -+#ifndef _LINUX_PCF506XX_H -+#define _LINUX_PCF506XX_H -+ -+ -+#define PMU_VRAIL_F_SUSPEND_ON 0x00000001 /* Remains on during suspend */ -+#define PMU_VRAIL_F_UNUSED 0x00000002 /* This rail is not used */ -+struct pmu_voltage_rail { -+ char *name; -+ unsigned int flags; -+ struct { -+ unsigned int init; -+ unsigned int max; -+ } voltage; -+}; -+ -+enum pmu_event { -+ PMU_EVT_NONE, -+ PMU_EVT_INSERT, -+ PMU_EVT_REMOVE, -+#ifdef CONFIG_SENSORS_PCF50633 -+ PMU_EVT_USB_INSERT, -+ PMU_EVT_USB_REMOVE, -+#endif -+ __NUM_PMU_EVTS -+}; -+ -+typedef int pmu_cb(struct device *dev, unsigned int feature, -+ enum pmu_event event); -+ -+ -+#endif /* !_LINUX_PCF506XX_H */ --- -1.5.6.5 - |