diff options
Diffstat (limited to 'include/linux/mfd/pcf50606/core.h')
-rw-r--r-- | include/linux/mfd/pcf50606/core.h | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/include/linux/mfd/pcf50606/core.h b/include/linux/mfd/pcf50606/core.h deleted file mode 100644 index b45d7ebc137..00000000000 --- a/include/linux/mfd/pcf50606/core.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - * core.h -- Core driver for NXP PCF50606 - * - * (C) 2006-2008 by Openmoko, Inc. - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - */ - -#ifndef __LINUX_MFD_PCF50606_CORE_H -#define __LINUX_MFD_PCF50606_CORE_H - -#include <linux/i2c.h> -#include <linux/workqueue.h> -#include <linux/regulator/driver.h> -#include <linux/regulator/machine.h> -#include <linux/power_supply.h> - -#include <linux/mfd/pcf50606/pmic.h> -#include <linux/mfd/pcf50606/input.h> -#include <linux/mfd/pcf50606/mbc.h> -#include <linux/mfd/pcf50606/rtc.h> -#include <linux/mfd/pcf50606/adc.h> -#include <linux/mfd/pcf50606/wdt.h> - -struct pcf50606; - -struct pcf50606_platform_data { - struct regulator_init_data reg_init_data[PCF50606_NUM_REGULATORS]; - - char **batteries; - int num_batteries; - - /* Callbacks */ - void (*probe_done)(struct pcf50606 *); - void (*mbc_event_callback)(struct pcf50606 *, int); - void (*regulator_registered)(struct pcf50606 *, int); - void (*force_shutdown)(struct pcf50606 *); - - u8 resumers[3]; - - /* Runtime data - filled by driver afer probe */ - struct pcf50606 *pcf; -}; - -struct pcf50606_irq { - void (*handler)(struct pcf50606 *, int, void *); - void *data; -}; - -int pcf50606_irq_mask(struct pcf50606 *pcf, int irq); -int pcf50606_irq_unmask(struct pcf50606 *pcf, int irq); -int pcf50606_irq_mask_get(struct pcf50606 *pcf, int irq); - -int pcf50606_read_block(struct pcf50606 *, u8 reg, - int nr_regs, u8 *data); -int pcf50606_write_block(struct pcf50606 *pcf, u8 reg, - int nr_regs, u8 *data); -u8 pcf50606_reg_read(struct pcf50606 *, u8 reg); -int pcf50606_reg_write(struct pcf50606 *pcf, u8 reg, u8 val); - -int pcf50606_reg_set_bit_mask(struct pcf50606 *pcf, u8 reg, u8 mask, u8 val); -int pcf50606_reg_clear_bits(struct pcf50606 *pcf, u8 reg, u8 bits); - -/* Interrupt registers */ - -#define PCF50606_REG_INT1 0x02 -#define PCF50606_REG_INT2 0x03 -#define PCF50606_REG_INT3 0x04 - -#define PCF50606_REG_INT1M 0x05 -#define PCF50606_REG_INT2M 0x06 -#define PCF50606_REG_INT3M 0x07 - -enum { - /* Chip IRQs */ - PCF50606_IRQ_ONKEYR, - PCF50606_IRQ_ONKEYF, - PCF50606_IRQ_ONKEY1S, - PCF50606_IRQ_EXTONR, - PCF50606_IRQ_EXTONF, - PCF50606_IRQ_SECOND, - PCF50606_IRQ_ALARM, - PCF50606_IRQ_CHGINS, - PCF50606_IRQ_CHGRM, - PCF50606_IRQ_CHGFOK, - PCF50606_IRQ_CHGERR, - PCF50606_IRQ_CHGFRDY, - PCF50606_IRQ_CHGPROT, - PCF50606_IRQ_CHGWD10S, - PCF50606_IRQ_CHGWDEXP, - PCF50606_IRQ_ADCRDY, - PCF50606_IRQ_ACDINS, - PCF50606_IRQ_ACDREM, - PCF50606_IRQ_TSCPRES, - PCF50606_IRQ_LOWBAT, - PCF50606_IRQ_HIGHTMP, - - /* Always last */ - PCF50606_NUM_IRQ, -}; - -struct pcf50606 { - struct device *dev; - struct i2c_client *i2c_client; - - struct pcf50606_platform_data *pdata; - int irq; - struct pcf50606_irq irq_handler[PCF50606_NUM_IRQ]; - struct work_struct irq_work; - struct mutex lock; - - u8 mask_regs[3]; - - u8 suspend_irq_masks[3]; - u8 resume_reason[3]; - int is_suspended; - - int onkey1s_held; - - struct pcf50606_pmic pmic; - struct pcf50606_input input; - struct pcf50606_mbc mbc; - struct pcf50606_rtc rtc; - struct pcf50606_adc adc; - struct pcf50606_wdt wdt; -}; - -enum pcf50606_reg_int1 { - PCF50606_INT1_ONKEYR = 0x01, /* ONKEY rising edge */ - PCF50606_INT1_ONKEYF = 0x02, /* ONKEY falling edge */ - PCF50606_INT1_ONKEY1S = 0x04, /* OMKEY at least 1sec low */ - PCF50606_INT1_EXTONR = 0x08, /* EXTON rising edge */ - PCF50606_INT1_EXTONF = 0x10, /* EXTON falling edge */ - PCF50606_INT1_SECOND = 0x40, /* RTC periodic second interrupt */ - PCF50606_INT1_ALARM = 0x80, /* RTC alarm time is reached */ -}; - -enum pcf50606_reg_int2 { - PCF50606_INT2_CHGINS = 0x01, /* Charger inserted */ - PCF50606_INT2_CHGRM = 0x02, /* Charger removed */ - PCF50606_INT2_CHGFOK = 0x04, /* Fast charging OK */ - PCF50606_INT2_CHGERR = 0x08, /* Error in charging mode */ - PCF50606_INT2_CHGFRDY = 0x10, /* Fast charge completed */ - PCF50606_INT2_CHGPROT = 0x20, /* Charging protection interrupt */ - PCF50606_INT2_CHGWD10S = 0x40, /* Charger watchdig expires in 10s */ - PCF50606_INT2_CHGWDEXP = 0x80, /* Charger watchdog expires */ -}; - -enum pcf50606_reg_int3 { - PCF50606_INT3_ADCRDY = 0x01, /* ADC conversion finished */ - PCF50606_INT3_ACDINS = 0x02, /* Accessory inserted */ - PCF50606_INT3_ACDREM = 0x04, /* Accessory removed */ - PCF50606_INT3_TSCPRES = 0x08, /* Touch screen pressed */ - PCF50606_INT3_LOWBAT = 0x40, /* Low battery voltage */ - PCF50606_INT3_HIGHTMP = 0x80, /* High temperature */ -}; - -#endif - |