diff options
Diffstat (limited to 'include/linux/i2c/twl.h')
| -rw-r--r-- | include/linux/i2c/twl.h | 103 | 
1 files changed, 54 insertions, 49 deletions
diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h index 9a5e2846232..488debbef89 100644 --- a/include/linux/i2c/twl.h +++ b/include/linux/i2c/twl.h @@ -39,52 +39,55 @@   * address each module uses within a given i2c slave.   */ -/* Slave 0 (i2c address 0x48) */ -#define TWL4030_MODULE_USB		0x00 +/* Module IDs for similar functionalities found in twl4030/twl6030 */ +enum twl_module_ids { +	TWL_MODULE_USB, +	TWL_MODULE_PIH, +	TWL_MODULE_MAIN_CHARGE, +	TWL_MODULE_PM_MASTER, +	TWL_MODULE_PM_RECEIVER, -/* Slave 1 (i2c address 0x49) */ -#define TWL4030_MODULE_AUDIO_VOICE	0x01 -#define TWL4030_MODULE_GPIO		0x02 -#define TWL4030_MODULE_INTBR		0x03 -#define TWL4030_MODULE_PIH		0x04 -#define TWL4030_MODULE_TEST		0x05 +	TWL_MODULE_RTC, +	TWL_MODULE_PWM, +	TWL_MODULE_LED, +	TWL_MODULE_SECURED_REG, -/* Slave 2 (i2c address 0x4a) */ -#define TWL4030_MODULE_KEYPAD		0x06 -#define TWL4030_MODULE_MADC		0x07 -#define TWL4030_MODULE_INTERRUPTS	0x08 -#define TWL4030_MODULE_LED		0x09 -#define TWL4030_MODULE_MAIN_CHARGE	0x0A -#define TWL4030_MODULE_PRECHARGE	0x0B -#define TWL4030_MODULE_PWM0		0x0C -#define TWL4030_MODULE_PWM1		0x0D -#define TWL4030_MODULE_PWMA		0x0E -#define TWL4030_MODULE_PWMB		0x0F +	TWL_MODULE_LAST, +}; + +/* Modules only available in twl4030 series */ +enum twl4030_module_ids { +	TWL4030_MODULE_AUDIO_VOICE = TWL_MODULE_LAST, +	TWL4030_MODULE_GPIO, +	TWL4030_MODULE_INTBR, +	TWL4030_MODULE_TEST, +	TWL4030_MODULE_KEYPAD, -#define TWL5031_MODULE_ACCESSORY	0x10 -#define TWL5031_MODULE_INTERRUPTS	0x11 +	TWL4030_MODULE_MADC, +	TWL4030_MODULE_INTERRUPTS, +	TWL4030_MODULE_PRECHARGE, +	TWL4030_MODULE_BACKUP, +	TWL4030_MODULE_INT, -/* Slave 3 (i2c address 0x4b) */ -#define TWL4030_MODULE_BACKUP		0x12 -#define TWL4030_MODULE_INT		0x13 -#define TWL4030_MODULE_PM_MASTER	0x14 -#define TWL4030_MODULE_PM_RECEIVER	0x15 -#define TWL4030_MODULE_RTC		0x16 -#define TWL4030_MODULE_SECURED_REG	0x17 +	TWL5031_MODULE_ACCESSORY, +	TWL5031_MODULE_INTERRUPTS, -#define TWL_MODULE_USB		TWL4030_MODULE_USB -#define TWL_MODULE_AUDIO_VOICE	TWL4030_MODULE_AUDIO_VOICE -#define TWL_MODULE_PIH		TWL4030_MODULE_PIH -#define TWL_MODULE_MADC		TWL4030_MODULE_MADC -#define TWL_MODULE_MAIN_CHARGE	TWL4030_MODULE_MAIN_CHARGE -#define TWL_MODULE_PM_MASTER	TWL4030_MODULE_PM_MASTER -#define TWL_MODULE_PM_RECEIVER	TWL4030_MODULE_PM_RECEIVER -#define TWL_MODULE_RTC		TWL4030_MODULE_RTC -#define TWL_MODULE_PWM		TWL4030_MODULE_PWM0 +	TWL4030_MODULE_LAST, +}; -#define TWL6030_MODULE_ID0	0x0D -#define TWL6030_MODULE_ID1	0x0E -#define TWL6030_MODULE_ID2	0x0F +/* Modules only available in twl6030 series */ +enum twl6030_module_ids { +	TWL6030_MODULE_ID0 = TWL_MODULE_LAST, +	TWL6030_MODULE_ID1, +	TWL6030_MODULE_ID2, +	TWL6030_MODULE_GPADC, +	TWL6030_MODULE_GASGAUGE, + +	TWL6030_MODULE_LAST, +}; + +/* Until the clients has been converted to use TWL_MODULE_LED */ +#define TWL4030_MODULE_LED	TWL_MODULE_LED  #define GPIO_INTR_OFFSET	0  #define KEYPAD_INTR_OFFSET	1 @@ -172,20 +175,22 @@ TWL_CLASS_IS(4030, TWL4030_CLASS_ID)  TWL_CLASS_IS(6030, TWL6030_CLASS_ID)  /* - * Read and write single 8-bit registers - */ -int twl_i2c_write_u8(u8 mod_no, u8 val, u8 reg); -int twl_i2c_read_u8(u8 mod_no, u8 *val, u8 reg); - -/*   * Read and write several 8-bit registers at once. - * - * IMPORTANT:  For twl_i2c_write(), allocate num_bytes + 1 - * for the value, and populate your data starting at offset 1.   */  int twl_i2c_write(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes);  int twl_i2c_read(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes); +/* + * Read and write single 8-bit registers + */ +static inline int twl_i2c_write_u8(u8 mod_no, u8 val, u8 reg) { +	return twl_i2c_write(mod_no, &val, reg, 1); +} + +static inline int twl_i2c_read_u8(u8 mod_no, u8 *val, u8 reg) { +	return twl_i2c_read(mod_no, val, reg, 1); +} +  int twl_get_type(void);  int twl_get_version(void);  int twl_get_hfclk_rate(void);  |