Input: atmel_mxt_ts - read ID information block in one i2c transaction
Reading the whole info block in one i2c transaction speeds up driver probe significantly, especially on slower i2c busses. Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
This commit is contained in:
Родитель
cf94bc09c8
Коммит
23003a8496
|
@ -36,6 +36,7 @@
|
|||
#define MXT_FW_NAME "maxtouch.fw"
|
||||
|
||||
/* Registers */
|
||||
#define MXT_INFO 0x00
|
||||
#define MXT_FAMILY_ID 0x00
|
||||
#define MXT_VARIANT_ID 0x01
|
||||
#define MXT_VERSION 0x02
|
||||
|
@ -760,32 +761,11 @@ static int mxt_get_info(struct mxt_data *data)
|
|||
struct i2c_client *client = data->client;
|
||||
struct mxt_info *info = &data->info;
|
||||
int error;
|
||||
u8 val;
|
||||
|
||||
error = mxt_read_reg(client, MXT_FAMILY_ID, &val);
|
||||
/* Read 7-byte info block starting at address 0 */
|
||||
error = __mxt_read_reg(client, MXT_INFO, sizeof(*info), info);
|
||||
if (error)
|
||||
return error;
|
||||
info->family_id = val;
|
||||
|
||||
error = mxt_read_reg(client, MXT_VARIANT_ID, &val);
|
||||
if (error)
|
||||
return error;
|
||||
info->variant_id = val;
|
||||
|
||||
error = mxt_read_reg(client, MXT_VERSION, &val);
|
||||
if (error)
|
||||
return error;
|
||||
info->version = val;
|
||||
|
||||
error = mxt_read_reg(client, MXT_BUILD, &val);
|
||||
if (error)
|
||||
return error;
|
||||
info->build = val;
|
||||
|
||||
error = mxt_read_reg(client, MXT_OBJECT_NUM, &val);
|
||||
if (error)
|
||||
return error;
|
||||
info->object_num = val;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче