The vendor cyttsp5 driver does not use regmap for i2c support, it would appear this is due to regmap not providing sufficient levels of control to handle various error conditions that may be present under some configuration/firmware variants. To improve reliability lets refactor the cyttsp5 i2c interface to function more like the vendor driver and implement some of the error handling retry/recovery techniques present there. As part of this rather than assuming the device is in bootloader mode we should first check that the device is in bootloader and only attempt to launch the app if it actually is in the bootloader. Co-developed-by: James Hilliard <james.hilliard1@xxxxxxxxx> Signed-off-by: James Hilliard <james.hilliard1@xxxxxxxxx> Signed-off-by: Vasiliy Doylov (NekoCWD) <nekodevelopper@xxxxxxxxx> --- Changes v1 -> v2: - remove unused reg variable Changes v2 -> v3: - splitted commit --- --- Vasiliy Doylov (NekoCWD) (4): input: cyttsp5: improve error handling input: cyttsp5: improve read size input: cyttsp5: use raw i2c instead of regmap input: cyttsp5: add startup retry drivers/input/touchscreen/cyttsp5.c | 257 +++++++++++++++++++++++------------- 1 file changed, 168 insertions(+), 89 deletions(-) --- base-commit: 6ecd20965bdc21b265a0671ccf36d9ad8043f5ab change-id: 20250110-nekocwd-upstreaming-cyttsp5-b84ed9127c44 Best regards, -- Vasiliy Doylov (NekoCWD) <nekodevelopper@xxxxxxxxx>