| #include <linux/muic/muic.h> |
| |
| #define MFD_MUIC_DEV_NAME "mfd-muic-universal" |
| |
| enum max77849_irq { |
| MUIC_MFD_IRQ, |
| MUIC_MFD_IRQ_NR, |
| }; |
| |
| enum muic_mfd_irq_src { |
| IRQ_SRC_MUIC = 1 << 0, |
| IRQ_SRC_SYS = 1 << 1, |
| IRQ_SRC_CHG = 1 << 2, |
| IRQ_SRC_FUEL = 1 << 3, |
| IRQ_SRC_NR, |
| }; |
| |
| enum muic_mfd_irq_grp { |
| IRQ_GRP_MUIC = 0, |
| IRQ_GRP_SYS = 1, |
| IRQ_GRP_CHG = 2, |
| IRQ_GRP_FUEL = 3, |
| IRQ_GRP_NR, |
| }; |
| |
| struct muic_mfd_dev { |
| struct device *dev; |
| struct i2c_client *i2c; |
| struct i2c_client *chg; |
| struct i2c_client *fuel; |
| struct i2c_client *muic; |
| struct mutex i2c_lock; |
| |
| int type; |
| |
| int irq; |
| int irq_base; |
| int irq_gpio; |
| bool wakeup; |
| struct mutex irqlock; |
| |
| int irq_masks_cur[IRQ_GRP_NR]; |
| int irq_masks_cache[IRQ_GRP_NR]; |
| |
| struct muic_mfd_platform_data *pdata; |
| }; |
| |
| struct muic_mfd_platform_data { |
| /* IRQ */ |
| int irq_base; |
| int irq_gpio; |
| bool wakeup; |
| struct muic_platform_data *muic_pdata; |
| |
| #if 0 |
| sec_battery_platform_data_t *charger_data; |
| sec_battery_platform_data_t *fuelgauge_data; |
| int num_regulators; |
| struct max77849_regulator_data *regulators; |
| #endif |
| |
| struct mfd_cell *sub_devices; |
| int num_subdevs; |
| }; |
| |