提交 da059ecf 编写于 作者: P Peter Ujfalusi 提交者: Samuel Ortiz

mfd: twl: Convert module id definitions to enums

Use enum list for the module definitions (TWL4030_MODULE_*) which will ease
up future work with the IDs.
At the same time group the IDs in block of five so it is easier to find the
ID we are looking for (to count the number they stand for).

At the same time define TWL_MODULE_LED so client drivers can switch to use
it as soon as it is possible.
Acked-by: NTero Kristo <t-kristo@ti.com>
Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
上级 0e8f1398
...@@ -66,9 +66,6 @@ ...@@ -66,9 +66,6 @@
/* Triton Core internal information (BEGIN) */ /* Triton Core internal information (BEGIN) */
/* Last - for index max*/
#define TWL4030_MODULE_LAST TWL4030_MODULE_SECURED_REG
#define TWL_NUM_SLAVES 4 #define TWL_NUM_SLAVES 4
#define SUB_CHIP_ID0 0 #define SUB_CHIP_ID0 0
...@@ -184,7 +181,7 @@ struct twl_mapping { ...@@ -184,7 +181,7 @@ struct twl_mapping {
}; };
static struct twl_mapping *twl_map; static struct twl_mapping *twl_map;
static struct twl_mapping twl4030_map[TWL4030_MODULE_LAST + 1] = { static struct twl_mapping twl4030_map[] = {
/* /*
* NOTE: don't change this table without updating the * NOTE: don't change this table without updating the
* <linux/i2c/twl.h> defines for TWL4030_MODULE_* * <linux/i2c/twl.h> defines for TWL4030_MODULE_*
...@@ -327,7 +324,7 @@ int twl_i2c_write(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes) ...@@ -327,7 +324,7 @@ int twl_i2c_write(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes)
int sid; int sid;
struct twl_client *twl; struct twl_client *twl;
if (unlikely(mod_no > TWL_MODULE_LAST)) { if (unlikely(mod_no >= TWL_MODULE_LAST)) {
pr_err("%s: invalid module number %d\n", DRIVER_NAME, mod_no); pr_err("%s: invalid module number %d\n", DRIVER_NAME, mod_no);
return -EPERM; return -EPERM;
} }
...@@ -369,7 +366,7 @@ int twl_i2c_read(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes) ...@@ -369,7 +366,7 @@ int twl_i2c_read(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes)
int sid; int sid;
struct twl_client *twl; struct twl_client *twl;
if (unlikely(mod_no > TWL_MODULE_LAST)) { if (unlikely(mod_no >= TWL_MODULE_LAST)) {
pr_err("%s: invalid module number %d\n", DRIVER_NAME, mod_no); pr_err("%s: invalid module number %d\n", DRIVER_NAME, mod_no);
return -EPERM; return -EPERM;
} }
......
...@@ -39,39 +39,39 @@ ...@@ -39,39 +39,39 @@
* address each module uses within a given i2c slave. * address each module uses within a given i2c slave.
*/ */
/* Slave 0 (i2c address 0x48) */ enum twl4030_module_ids {
#define TWL4030_MODULE_USB 0x00 TWL4030_MODULE_USB = 0, /* Slave 0 (i2c address 0x48) */
TWL4030_MODULE_AUDIO_VOICE, /* Slave 1 (i2c address 0x49) */
/* Slave 1 (i2c address 0x49) */ TWL4030_MODULE_GPIO,
#define TWL4030_MODULE_AUDIO_VOICE 0x01 TWL4030_MODULE_INTBR,
#define TWL4030_MODULE_GPIO 0x02 TWL4030_MODULE_PIH,
#define TWL4030_MODULE_INTBR 0x03
#define TWL4030_MODULE_PIH 0x04 TWL4030_MODULE_TEST,
#define TWL4030_MODULE_TEST 0x05 TWL4030_MODULE_KEYPAD, /* Slave 2 (i2c address 0x4a) */
TWL4030_MODULE_MADC,
/* Slave 2 (i2c address 0x4a) */ TWL4030_MODULE_INTERRUPTS,
#define TWL4030_MODULE_KEYPAD 0x06 TWL4030_MODULE_LED,
#define TWL4030_MODULE_MADC 0x07
#define TWL4030_MODULE_INTERRUPTS 0x08 TWL4030_MODULE_MAIN_CHARGE,
#define TWL4030_MODULE_LED 0x09 TWL4030_MODULE_PRECHARGE,
#define TWL4030_MODULE_MAIN_CHARGE 0x0A TWL4030_MODULE_PWM0,
#define TWL4030_MODULE_PRECHARGE 0x0B TWL4030_MODULE_PWM1,
#define TWL4030_MODULE_PWM0 0x0C TWL4030_MODULE_PWMA,
#define TWL4030_MODULE_PWM1 0x0D
#define TWL4030_MODULE_PWMA 0x0E TWL4030_MODULE_PWMB,
#define TWL4030_MODULE_PWMB 0x0F TWL5031_MODULE_ACCESSORY,
TWL5031_MODULE_INTERRUPTS,
#define TWL5031_MODULE_ACCESSORY 0x10 TWL4030_MODULE_BACKUP, /* Slave 3 (i2c address 0x4b) */
#define TWL5031_MODULE_INTERRUPTS 0x11 TWL4030_MODULE_INT,
/* Slave 3 (i2c address 0x4b) */ TWL4030_MODULE_PM_MASTER,
#define TWL4030_MODULE_BACKUP 0x12 TWL4030_MODULE_PM_RECEIVER,
#define TWL4030_MODULE_INT 0x13 TWL4030_MODULE_RTC,
#define TWL4030_MODULE_PM_MASTER 0x14 TWL4030_MODULE_SECURED_REG,
#define TWL4030_MODULE_PM_RECEIVER 0x15 TWL4030_MODULE_LAST,
#define TWL4030_MODULE_RTC 0x16 };
#define TWL4030_MODULE_SECURED_REG 0x17
/* Similar functionalities implemented in TWL4030/6030 */
#define TWL_MODULE_USB TWL4030_MODULE_USB #define TWL_MODULE_USB TWL4030_MODULE_USB
#define TWL_MODULE_PIH TWL4030_MODULE_PIH #define TWL_MODULE_PIH TWL4030_MODULE_PIH
#define TWL_MODULE_MAIN_CHARGE TWL4030_MODULE_MAIN_CHARGE #define TWL_MODULE_MAIN_CHARGE TWL4030_MODULE_MAIN_CHARGE
...@@ -79,6 +79,7 @@ ...@@ -79,6 +79,7 @@
#define TWL_MODULE_PM_RECEIVER TWL4030_MODULE_PM_RECEIVER #define TWL_MODULE_PM_RECEIVER TWL4030_MODULE_PM_RECEIVER
#define TWL_MODULE_RTC TWL4030_MODULE_RTC #define TWL_MODULE_RTC TWL4030_MODULE_RTC
#define TWL_MODULE_PWM TWL4030_MODULE_PWM0 #define TWL_MODULE_PWM TWL4030_MODULE_PWM0
#define TWL_MODULE_LED TWL4030_MODULE_LED
#define TWL6030_MODULE_ID0 0x0D #define TWL6030_MODULE_ID0 0x0D
#define TWL6030_MODULE_ID1 0x0E #define TWL6030_MODULE_ID1 0x0E
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册