Commit 65c67985 authored by Dario Binacchi's avatar Dario Binacchi Committed by Dmitry Torokhov

Input: edt-ft5x06 - remove code duplication

The use of the macros M06_REG_ADDR and M06_REG_CMD avoids code
duplication without impacting the application load, and reduces the
chances of errors or mistakes.
Signed-off-by: default avatarDario Binacchi <dario.binacchi@amarulasolutions.com>
Link: https://lore.kernel.org/r/20230402200951.1032513-6-dario.binacchi@amarulasolutions.comSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 38e8cf7b
...@@ -75,6 +75,9 @@ ...@@ -75,6 +75,9 @@
#define EDT_DEFAULT_NUM_X 1024 #define EDT_DEFAULT_NUM_X 1024
#define EDT_DEFAULT_NUM_Y 1024 #define EDT_DEFAULT_NUM_Y 1024
#define M06_REG_CMD(factory) ((factory) ? 0xf3 : 0xfc)
#define M06_REG_ADDR(factory, addr) ((factory) ? (addr) & 0x7f : (addr) & 0x3f)
enum edt_pmode { enum edt_pmode {
EDT_PMODE_NOT_SUPPORTED, EDT_PMODE_NOT_SUPPORTED,
EDT_PMODE_HIBERNATE, EDT_PMODE_HIBERNATE,
...@@ -294,8 +297,8 @@ static int edt_ft5x06_register_write(struct edt_ft5x06_ts_data *tsdata, ...@@ -294,8 +297,8 @@ static int edt_ft5x06_register_write(struct edt_ft5x06_ts_data *tsdata,
switch (tsdata->version) { switch (tsdata->version) {
case EDT_M06: case EDT_M06:
wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc; wrbuf[0] = M06_REG_CMD(tsdata->factory_mode);
wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f; wrbuf[1] = M06_REG_ADDR(tsdata->factory_mode, addr);
wrbuf[2] = value; wrbuf[2] = value;
wrbuf[3] = wrbuf[0] ^ wrbuf[1] ^ wrbuf[2]; wrbuf[3] = wrbuf[0] ^ wrbuf[1] ^ wrbuf[2];
return edt_ft5x06_ts_readwrite(tsdata->client, 4, return edt_ft5x06_ts_readwrite(tsdata->client, 4,
...@@ -324,8 +327,8 @@ static int edt_ft5x06_register_read(struct edt_ft5x06_ts_data *tsdata, ...@@ -324,8 +327,8 @@ static int edt_ft5x06_register_read(struct edt_ft5x06_ts_data *tsdata,
switch (tsdata->version) { switch (tsdata->version) {
case EDT_M06: case EDT_M06:
wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc; wrbuf[0] = M06_REG_CMD(tsdata->factory_mode);
wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f; wrbuf[1] = M06_REG_ADDR(tsdata->factory_mode, addr);
wrbuf[1] |= tsdata->factory_mode ? 0x80 : 0x40; wrbuf[1] |= tsdata->factory_mode ? 0x80 : 0x40;
error = edt_ft5x06_ts_readwrite(tsdata->client, 2, wrbuf, 2, error = edt_ft5x06_ts_readwrite(tsdata->client, 2, wrbuf, 2,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment