diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mfd/max8997-private.h | 21 | ||||
| -rw-r--r-- | include/linux/mfd/max8997.h | 7 |
2 files changed, 26 insertions, 2 deletions
diff --git a/include/linux/mfd/max8997-private.h b/include/linux/mfd/max8997-private.h index 93a9477e075f..69d1010e2e51 100644 --- a/include/linux/mfd/max8997-private.h +++ b/include/linux/mfd/max8997-private.h | |||
| @@ -24,6 +24,8 @@ | |||
| 24 | 24 | ||
| 25 | #include <linux/i2c.h> | 25 | #include <linux/i2c.h> |
| 26 | 26 | ||
| 27 | #define MAX8997_REG_INVALID (0xff) | ||
| 28 | |||
| 27 | enum max8997_pmic_reg { | 29 | enum max8997_pmic_reg { |
| 28 | MAX8997_REG_PMIC_ID0 = 0x00, | 30 | MAX8997_REG_PMIC_ID0 = 0x00, |
| 29 | MAX8997_REG_PMIC_ID1 = 0x01, | 31 | MAX8997_REG_PMIC_ID1 = 0x01, |
| @@ -313,6 +315,7 @@ enum max8997_irq { | |||
| 313 | #define MAX8997_REG_BUCK2DVS(x) (MAX8997_REG_BUCK2DVS1 + (x) - 1) | 315 | #define MAX8997_REG_BUCK2DVS(x) (MAX8997_REG_BUCK2DVS1 + (x) - 1) |
| 314 | #define MAX8997_REG_BUCK5DVS(x) (MAX8997_REG_BUCK5DVS1 + (x) - 1) | 316 | #define MAX8997_REG_BUCK5DVS(x) (MAX8997_REG_BUCK5DVS1 + (x) - 1) |
| 315 | 317 | ||
| 318 | #define MAX8997_NUM_GPIO 12 | ||
| 316 | struct max8997_dev { | 319 | struct max8997_dev { |
| 317 | struct device *dev; | 320 | struct device *dev; |
| 318 | struct i2c_client *i2c; /* 0xcc / PMIC, Battery Control, and FLASH */ | 321 | struct i2c_client *i2c; /* 0xcc / PMIC, Battery Control, and FLASH */ |
| @@ -324,11 +327,19 @@ struct max8997_dev { | |||
| 324 | int type; | 327 | int type; |
| 325 | struct platform_device *battery; /* battery control (not fuel gauge) */ | 328 | struct platform_device *battery; /* battery control (not fuel gauge) */ |
| 326 | 329 | ||
| 330 | int irq; | ||
| 331 | int ono; | ||
| 332 | int irq_base; | ||
| 327 | bool wakeup; | 333 | bool wakeup; |
| 334 | struct mutex irqlock; | ||
| 335 | int irq_masks_cur[MAX8997_IRQ_GROUP_NR]; | ||
| 336 | int irq_masks_cache[MAX8997_IRQ_GROUP_NR]; | ||
| 328 | 337 | ||
| 329 | /* For hibernation */ | 338 | /* For hibernation */ |
| 330 | u8 reg_dump[MAX8997_REG_PMIC_END + MAX8997_MUIC_REG_END + | 339 | u8 reg_dump[MAX8997_REG_PMIC_END + MAX8997_MUIC_REG_END + |
| 331 | MAX8997_HAPTIC_REG_END]; | 340 | MAX8997_HAPTIC_REG_END]; |
| 341 | |||
| 342 | bool gpio_status[MAX8997_NUM_GPIO]; | ||
| 332 | }; | 343 | }; |
| 333 | 344 | ||
| 334 | enum max8997_types { | 345 | enum max8997_types { |
| @@ -336,6 +347,10 @@ enum max8997_types { | |||
| 336 | TYPE_MAX8966, | 347 | TYPE_MAX8966, |
| 337 | }; | 348 | }; |
| 338 | 349 | ||
| 350 | extern int max8997_irq_init(struct max8997_dev *max8997); | ||
| 351 | extern void max8997_irq_exit(struct max8997_dev *max8997); | ||
| 352 | extern int max8997_irq_resume(struct max8997_dev *max8997); | ||
| 353 | |||
| 339 | extern int max8997_read_reg(struct i2c_client *i2c, u8 reg, u8 *dest); | 354 | extern int max8997_read_reg(struct i2c_client *i2c, u8 reg, u8 *dest); |
| 340 | extern int max8997_bulk_read(struct i2c_client *i2c, u8 reg, int count, | 355 | extern int max8997_bulk_read(struct i2c_client *i2c, u8 reg, int count, |
| 341 | u8 *buf); | 356 | u8 *buf); |
| @@ -344,4 +359,10 @@ extern int max8997_bulk_write(struct i2c_client *i2c, u8 reg, int count, | |||
| 344 | u8 *buf); | 359 | u8 *buf); |
| 345 | extern int max8997_update_reg(struct i2c_client *i2c, u8 reg, u8 val, u8 mask); | 360 | extern int max8997_update_reg(struct i2c_client *i2c, u8 reg, u8 val, u8 mask); |
| 346 | 361 | ||
| 362 | #define MAX8997_GPIO_INT_BOTH (0x3 << 4) | ||
| 363 | #define MAX8997_GPIO_INT_RISE (0x2 << 4) | ||
| 364 | #define MAX8997_GPIO_INT_FALL (0x1 << 4) | ||
| 365 | |||
| 366 | #define MAX8997_GPIO_INT_MASK (0x3 << 4) | ||
| 367 | #define MAX8997_GPIO_DATA_MASK (0x1 << 2) | ||
| 347 | #endif /* __LINUX_MFD_MAX8997_PRIV_H */ | 368 | #endif /* __LINUX_MFD_MAX8997_PRIV_H */ |
diff --git a/include/linux/mfd/max8997.h b/include/linux/mfd/max8997.h index cb671b3451bf..60931d089422 100644 --- a/include/linux/mfd/max8997.h +++ b/include/linux/mfd/max8997.h | |||
| @@ -78,8 +78,11 @@ struct max8997_regulator_data { | |||
| 78 | }; | 78 | }; |
| 79 | 79 | ||
| 80 | struct max8997_platform_data { | 80 | struct max8997_platform_data { |
| 81 | bool wakeup; | 81 | /* IRQ */ |
| 82 | /* IRQ: Not implemented */ | 82 | int irq_base; |
| 83 | int ono; | ||
| 84 | int wakeup; | ||
| 85 | |||
| 83 | /* ---- PMIC ---- */ | 86 | /* ---- PMIC ---- */ |
| 84 | struct max8997_regulator_data *regulators; | 87 | struct max8997_regulator_data *regulators; |
| 85 | int num_regulators; | 88 | int num_regulators; |
