On Wed, 5 Feb 2025 07:33:36 -0800 Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote: > On Tue, Feb 04, 2025 at 02:01:00PM -0500, Hugo Villeneuve wrote: > > From: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx> > > > > The current reset pulse width is measured to be 5us on a > > Renesas RZ/G2L SOM. The manufacturer's minimum reset pulse width is > > specified as 10us. > > > > Extend reset pulse width to make sure it is long enough on all platforms. > > > > Also reword confusing comments about reset pin assertion. > > > > Fixes: 5b0c03e24a06 ("Input: Add driver for Cypress Generation 5 touchscreen") > > Cc: <stable@xxxxxxxxxxxxxxx> > > Signed-off-by: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx> > > --- > > drivers/input/touchscreen/cyttsp5.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/input/touchscreen/cyttsp5.c b/drivers/input/touchscreen/cyttsp5.c > > index eafe5a9b8964..bb09e84d0e92 100644 > > --- a/drivers/input/touchscreen/cyttsp5.c > > +++ b/drivers/input/touchscreen/cyttsp5.c > > @@ -870,13 +870,16 @@ static int cyttsp5_probe(struct device *dev, struct regmap *regmap, int irq, > > ts->input->phys = ts->phys; > > input_set_drvdata(ts->input, ts); > > > > - /* Reset the gpio to be in a reset state */ > > + /* Assert gpio to be in a reset state */ > > ts->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); > > if (IS_ERR(ts->reset_gpio)) { > > error = PTR_ERR(ts->reset_gpio); > > dev_err(dev, "Failed to request reset gpio, error %d\n", error); > > return error; > > } > > + > > + fsleep(1000); /* Ensure long-enough reset pulse (minimum 10us). */ > > + > > If the manufacturer specified that 10us is enough why do we want to wait > 100 times longer? Hi, 10us would do fine. I simply put 1ms because it is then much easier to see the reset pulse on an oscilloscope when correlating it with other signals. Hugo. -- Hugo Villeneuve