]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Input: cyttsp5 - ensure minimum reset pulse width
authorHugo Villeneuve <hvilleneuve@dimonoff.com>
Thu, 10 Apr 2025 18:46:32 +0000 (14:46 -0400)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 19 Apr 2025 02:50:41 +0000 (19:50 -0700)
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@vger.kernel.org
Acked-by: Alistair Francis <alistair@alistair23.me>
Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Link: https://lore.kernel.org/r/20250410184633.1164837-1-hugo@hugovil.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/cyttsp5.c

index eafe5a9b89648475ff7435566eb38c094d66a473..14c43f0a6c217d7fbe4c6c1520ce0555796c05d9 100644 (file)
@@ -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(10); /* Ensure long-enough reset pulse (minimum 10us). */
+
        gpiod_set_value_cansleep(ts->reset_gpio, 0);
 
        /* Need a delay to have device up */