Ping... Hi Dmitry, Can you help review these two patches? Haibo Chen > -----Original Message----- > From: haibo.chen@xxxxxxx <haibo.chen@xxxxxxx> > Sent: 2020年2月11日 16:41 > To: dmitry.torokhov@xxxxxxxxx; linux-input@xxxxxxxxxxxxxxx > Cc: BOUGH CHEN <haibo.chen@xxxxxxx>; dl-linux-imx > <linux-imx@xxxxxxx> > Subject: [PATCH 1/2] input: egalax_ts: switch to i2c interface before wake up > > From: Haibo Chen <haibo.chen@xxxxxxx> > > For HannStar (HSD100PXN1 Rev: 1-A00C11 F/W:0634) LVDS touch screen, it > has a special request for the EETI touch controller. The host needs to trigger > I2C event to device FW at booting first, and then the FW can switch to I2C > interface. Otherwise, the FW can’t work with I2C interface, and can't > generate any interrupt when touch the screen. > > This patch send an I2C command before the device wake up, make sure the > device switch to I2C interface first. > > Signed-off-by: Haibo Chen <haibo.chen@xxxxxxx> > --- > drivers/input/touchscreen/egalax_ts.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/input/touchscreen/egalax_ts.c > b/drivers/input/touchscreen/egalax_ts.c > index 83ac8c128192..5e35ca5edc7b 100644 > --- a/drivers/input/touchscreen/egalax_ts.c > +++ b/drivers/input/touchscreen/egalax_ts.c > @@ -183,6 +183,20 @@ static int egalax_ts_probe(struct i2c_client *client, > ts->client = client; > ts->input_dev = input_dev; > > + /* HannStar (HSD100PXN1 Rev: 1-A00C11 F/W:0634) LVDS touch > + * screen needs to trigger I2C event to device FW at booting > + * first, and then the FW can switch to I2C interface. > + * Otherwise, the FW can’t work with I2C interface. So here > + * just use the exist function egalax_firmware_version() to > + * send a I2C command to the device, make sure the device FW > + * switch to I2C interface. > + */ > + error = egalax_firmware_version(client); > + if (error) { > + dev_err(&client->dev, "Failed to switch to I2C interface\n"); > + return error; > + } > + > /* controller may be in sleep, wake it up. */ > error = egalax_wake_up_device(client); > if (error) { > -- > 2.17.1