Message ID | 20210901192229.29864-1-rpimentel.silva@gmail.com |
---|---|
State | New |
Headers | show |
Series | Input: ili210x - Set the device name according to the device model | expand |
On Wed, Sep 1, 2021 at 5:48 PM Marek Vasut <marex@denx.de> wrote: > > On 9/1/21 10:27 PM, Rogerio Pimentel wrote: > > On Wed, Sep 1, 2021 at 4:46 PM Marek Vasut <marex@denx.de> wrote: > >> > >> On 9/1/21 9:22 PM, Rogerio Pimentel wrote: > >> > >> [...] > >> > >>> diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c > >>> index 30576a5f2f04..ca7af4a6f588 100644 > >>> --- a/drivers/input/touchscreen/ili210x.c > >>> +++ b/drivers/input/touchscreen/ili210x.c > >>> @@ -19,6 +19,8 @@ > >>> #define ILI251X_DATA_SIZE1 31 > >>> #define ILI251X_DATA_SIZE2 20 > >>> > >>> +#define ILI_NAME_LEN 27 > >>> + > >>> /* Touchscreen commands */ > >>> #define REG_TOUCHDATA 0x10 > >>> #define REG_PANEL_INFO 0x20 > >>> @@ -394,6 +396,7 @@ static int ili210x_i2c_probe(struct i2c_client *client, > >>> struct input_dev *input; > >>> int error; > >>> unsigned int max_xy; > >>> + char *model_name; > >>> > >>> dev_dbg(dev, "Probing for ILI210X I2C Touschreen driver"); > >>> > >>> @@ -440,7 +443,11 @@ static int ili210x_i2c_probe(struct i2c_client *client, > >>> i2c_set_clientdata(client, priv); > >>> > >>> /* Setup input device */ > >>> - input->name = "ILI210x Touchscreen"; > >>> + input->name = "Ilitek Touchscreen"; > >>> + model_name = (char *)input->name; > >>> + snprintf(model_name, ILI_NAME_LEN, "Ilitek %s Touchscreen", > >> > >> Which ilitek devices do you have available exactly ? > >> > >> There is a firmware interface which does report the device type, but I > >> don't know whether it works on all the ilitek touchscreen devices. If it > >> does, then it could be used here to pull the type from the firmware and > >> then use this instead > >> > >> snprintf(model_name, ILI_NAME_LEN, "Ilitek ILI%04x Touchscreen", type); > >> > >> Try this command against the touch controller, it sends it command 0x61 > >> and reads two bytes of the reply: > >> i2ctransfer -f -y 1 w1@0x41 0x61 r2 > >> 0x10 0x25 # <---- on ILI2510 it reports 0x25 0x10 in reverse > > > > Thanks for the comments and suggestions. I'll make the changes and send V2. > > Can you tell which ILI2xxx touch controller you have exactly ? Now I have only the ILI2511. Will also have to support ILI2510 and ILI2118. > Can you share the output of the 'i2ctransfer' (from i2c-tools) command > above ? # i2ctransfer -f -y 3 w1@0x41 0x61 r2 0x11 0x25
diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c index 30576a5f2f04..ca7af4a6f588 100644 --- a/drivers/input/touchscreen/ili210x.c +++ b/drivers/input/touchscreen/ili210x.c @@ -19,6 +19,8 @@ #define ILI251X_DATA_SIZE1 31 #define ILI251X_DATA_SIZE2 20 +#define ILI_NAME_LEN 27 + /* Touchscreen commands */ #define REG_TOUCHDATA 0x10 #define REG_PANEL_INFO 0x20 @@ -394,6 +396,7 @@ static int ili210x_i2c_probe(struct i2c_client *client, struct input_dev *input; int error; unsigned int max_xy; + char *model_name; dev_dbg(dev, "Probing for ILI210X I2C Touschreen driver"); @@ -440,7 +443,11 @@ static int ili210x_i2c_probe(struct i2c_client *client, i2c_set_clientdata(client, priv); /* Setup input device */ - input->name = "ILI210x Touchscreen"; + input->name = "Ilitek Touchscreen"; + model_name = (char *)input->name; + snprintf(model_name, ILI_NAME_LEN, "Ilitek %s Touchscreen", + id->name); + input->name = model_name; input->id.bustype = BUS_I2C; /* Multi touch */ @@ -487,10 +494,10 @@ static int ili210x_i2c_probe(struct i2c_client *client, } static const struct i2c_device_id ili210x_i2c_id[] = { - { "ili210x", (long)&ili210x_chip }, - { "ili2117", (long)&ili211x_chip }, - { "ili2120", (long)&ili212x_chip }, - { "ili251x", (long)&ili251x_chip }, + { .name = "ili210x", (long)&ili210x_chip }, + { .name = "ili2117", (long)&ili211x_chip }, + { .name = "ili2120", (long)&ili212x_chip }, + { .name = "ili251x", (long)&ili251x_chip }, { } }; MODULE_DEVICE_TABLE(i2c, ili210x_i2c_id);
Adding the device model into the device name is useful when applications need to set different parameters according to the touchscreen being used, e.g. X11 calibration points. Signed-off-by: Rogerio Pimentel <rpimentel.silva@gmail.com> --- drivers/input/touchscreen/ili210x.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-)