summaryrefslogtreecommitdiff
path: root/target/linux/s3c24xx/patches/0034-pcf506xx.patch.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/s3c24xx/patches/0034-pcf506xx.patch.patch')
-rwxr-xr-xtarget/linux/s3c24xx/patches/0034-pcf506xx.patch.patch200
1 files changed, 0 insertions, 200 deletions
diff --git a/target/linux/s3c24xx/patches/0034-pcf506xx.patch.patch b/target/linux/s3c24xx/patches/0034-pcf506xx.patch.patch
deleted file mode 100755
index 0eeaf2fc61..0000000000
--- a/target/linux/s3c24xx/patches/0034-pcf506xx.patch.patch
+++ /dev/null
@@ -1,200 +0,0 @@
-From 4ced79a6699eb5828c71b5438826fb44e3b41997 Mon Sep 17 00:00:00 2001
-From: mokopatches <mokopatches@openmoko.org>
-Date: Wed, 16 Jul 2008 14:46:56 +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.3
-