Message ID | 20210408131153.3446138-6-linus.walleij@linaro.org |
---|---|
State | Accepted |
Commit | c61ac36fd52cb3015acd93af5da01f8f8350051f |
Headers | show |
Series | Update CYTTSP driver | expand |
On Thu, Apr 08, 2021 at 03:11:50PM +0200, Linus Walleij wrote: > The data sheet for CY8CTMA340 specifies that the reset pulse > shall be at least 1 ms. Specify 1-2 ms with usleep_range() > to cut some slack for the scheduler. > > Curiously the datasheet does not specify how long we have to > wait after a hard reset until the chip is up, but I have found > a vendor tree (Samsung GT-S7710) that has code for this touch > screen and there this is set to 5 ms so I use this with > the same 1 ms fuzz. > > Reviewed-by: Javier Martinez Canillas <javier@dowhile0.org> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Applied, thank you. -- Dmitry
diff --git a/drivers/input/touchscreen/cyttsp_core.c b/drivers/input/touchscreen/cyttsp_core.c index 91f8f38b3f06..84f4f1c1a220 100644 --- a/drivers/input/touchscreen/cyttsp_core.c +++ b/drivers/input/touchscreen/cyttsp_core.c @@ -230,10 +230,16 @@ static int cyttsp_set_sysinfo_regs(struct cyttsp *ts) static void cyttsp_hard_reset(struct cyttsp *ts) { if (ts->reset_gpio) { + /* + * According to the CY8CTMA340 datasheet page 21, the external + * reset pulse width should be >= 1 ms. The datasheet does not + * specify how long we have to wait after reset but a vendor + * tree specifies 5 ms here. + */ gpiod_set_value_cansleep(ts->reset_gpio, 1); - msleep(CY_DELAY_DFLT); + usleep_range(1000, 2000); gpiod_set_value_cansleep(ts->reset_gpio, 0); - msleep(CY_DELAY_DFLT); + usleep_range(5000, 6000); } }