linux/drivers/input/touchscreen
Douglas Anderson a85fbd6498 Input: elants_i2c - properly handle the reset GPIO when power is off
As can be seen in elants_i2c_power_off(), we want the reset GPIO
asserted when power is off. The reset GPIO is active low so we need
the reset line logic low when power is off to avoid leakage.

We have a problem, though, at probe time. At probe time we haven't
powered the regulators on yet but we have:

  devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_LOW);

While that _looks_ right, it turns out that it's not. The
GPIOD_OUT_LOW doesn't mean to init the GPIO to low. It means init the
GPIO to "not asserted". Since this is an active low GPIO that inits it
to be high.

Let's fix this to properly init the GPIO. Now after both probe and
power off the state of the GPIO is consistent (it's "asserted" or
level low).

Once we fix this, we can see that at power on time we no longer to
assert the reset GPIO as the first thing. The reset GPIO is _always_
asserted before powering on. Let's fix powering on to account for
this.

Fixes: afe10358e4 ("Input: elants_i2c - wire up regulator support")
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20221117123805.1.I9959ac561dd6e1e8e1ce7085e4de6167b27c574f@changeid
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2022-11-17 22:14:45 -08:00
..
88pm860x-ts.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
Kconfig Input: add driver for Himax hx83112b touchscreen devices 2022-11-07 11:28:55 -08:00
Makefile Input: add driver for Himax hx83112b touchscreen devices 2022-11-07 11:28:55 -08:00
ad7877.c Input: ad7877 - use new structure for SPI transfer delays 2020-12-10 23:39:15 -08:00
ad7879-i2c.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
ad7879-spi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
ad7879.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
ad7879.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
ads7846.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
ar1021_i2c.c Input: move to use request_irq by IRQF_NO_AUTOEN flag 2021-03-25 15:27:56 -07:00
atmel_mxt_ts.c Input: move from strlcpy with unused retval to strscpy 2022-08-18 15:44:08 -07:00
auo-pixcir-ts.c Input: auo-pixcir-ts - switch to using generic device properties 2022-09-16 06:38:51 -07:00
bcm_iproc_tsc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
bu21013_ts.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
bu21029_ts.c Input: move to use request_irq by IRQF_NO_AUTOEN flag 2021-03-25 15:27:56 -07:00
chipone_icn8318.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
chipone_icn8505.c Input: icn8505 - utilize acpi_get_subsystem_id() 2022-09-28 09:01:32 -07:00
colibri-vf50-ts.c Input: colibri-vf50-ts - remove unneeded gpio.h header file 2019-10-27 11:14:22 -07:00
cy8ctma140.c Input: add driver for the Cypress CY8CTMA140 touchscreen 2020-05-09 22:26:48 -07:00
cy8ctmg110_ts.c Input: cy8ctmg110_ts - switch to using gpiod API 2021-06-05 20:34:16 -07:00
cyttsp4_core.c Input: cyttsp4 - move 'cyttsp4_tch_abs_string' to the only file that references it 2020-11-08 22:35:48 -08:00
cyttsp4_core.h Input: cyttsp4 - move 'cyttsp4_tch_abs_string' to the only file that references it 2020-11-08 22:35:48 -08:00
cyttsp4_i2c.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
cyttsp4_spi.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
cyttsp5.c Input: Add driver for Cypress Generation 5 touchscreen 2022-11-01 07:57:33 -07:00
cyttsp_core.c Input: cyttsp - remove public header 2021-06-01 21:13:11 -07:00
cyttsp_core.h Input: cyttsp - remove public header 2021-06-01 21:13:11 -07:00
cyttsp_i2c.c Input: cyttsp - remove public header 2021-06-01 21:13:11 -07:00
cyttsp_i2c_common.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
cyttsp_spi.c Input: cyttsp - remove public header 2021-06-01 21:13:11 -07:00
da9034-ts.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
da9052_tsi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dynapro.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
edt-ft5x06.c Input: move from strlcpy with unused retval to strscpy 2022-08-18 15:44:08 -07:00
eeti_ts.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
egalax_ts.c Input: egalax_ts - do not hardcode interrupt trigger 2022-10-24 05:02:26 -07:00
egalax_ts_serial.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ektf2127.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
elants_i2c.c Input: elants_i2c - properly handle the reset GPIO when power is off 2022-11-17 22:14:45 -08:00
elo.c Input: elo - fix an error code in elo_connect() 2021-02-18 14:39:42 -08:00
exc3000.c Input: exc3000 - fix return value check of wait_for_completion_timeout 2022-06-28 22:45:43 -07:00
fsl-imx25-tcq.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
fujitsu_ts.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
goodix.c Merge branch 'next' into for-linus 2022-10-09 22:30:23 -07:00
goodix.h Input: goodix - fix race on driver unbind 2022-02-28 23:26:30 -08:00
goodix_fwupload.c Input: goodix - fix memory leak in goodix_firmware_upload 2021-12-09 21:20:29 -08:00
gunze.c input: drop empty comment blocks 2022-09-29 16:25:42 -07:00
hampshire.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
hideep.c Input: hideep - fix the uninitialized use in hideep_nvm_unlock() 2021-06-19 22:36:28 -07:00
himax_hx83112b.c Input: add driver for Himax hx83112b touchscreen devices 2022-11-07 11:28:55 -08:00
hp680_ts_input.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
htcpen.c isa: Make the remove callback for isa drivers return void 2021-01-26 07:42:27 +01:00
hycon-hy46xx.c Input: add driver for the Hycon HY46XX touchpanel series 2021-04-13 19:08:30 -07:00
hynitron_cstxxx.c Input: hynitron_cstxxx - initialize tmp to 0 to fix uninitialized variable issue 2022-11-17 22:14:43 -08:00
ili210x.c Input: ili210x - use one common reset implementation 2022-05-18 14:31:31 -07:00
ilitek_ts_i2c.c Input: Add support for ILITEK Lego Series 2021-04-09 23:23:01 -07:00
imagis.c Input: add Imagis touchscreen driver 2022-03-20 22:00:12 -07:00
imx6ul_tsc.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
inexio.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ipaq-micro-ts.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
iqs5xx.c Input: iqs5xx - use local input_dev pointer 2022-03-20 21:59:40 -07:00
jornada720_ts.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lpc32xx_ts.c Input: lpc32xx_ts - convert to use BIT() 2021-03-20 19:48:37 -07:00
mainstone-wm97xx.c Input: wm97xx - get rid of irq_enable method in wm97xx_mach_ops 2022-05-07 22:55:48 +02:00
max11801_ts.c Input: Use fallthrough pseudo-keyword 2020-07-07 11:25:54 -07:00
mc13783_ts.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mcs5000_ts.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
melfas_mip4.c Input: melfas_mip4 - fix return value check in mip4_probe() 2022-09-24 22:09:49 -07:00
migor_ts.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
mk712.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mms114.c Input: mms114 - support MMS134S 2021-09-06 23:33:26 -07:00
msg2638.c Input: msg2638 - add support for msg2138 key events 2022-11-16 15:53:03 -08:00
mtouch.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mxs-lradc-ts.c Input: mxs-lradc-ts - use devm_platform_ioremap_resource() 2019-07-24 12:48:47 +03:00
pcap_ts.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
penmount.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pixcir_i2c_ts.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
raspberrypi-ts.c input: raspberrypi-ts: Release firmware handle when not needed 2021-03-22 17:59:51 +01:00
raydium_i2c_ts.c Input: raydium_i2c_ts - make use of the helper function devm_add_action_or_reset() 2021-09-22 21:56:49 -07:00
resistive-adc-touch.c Input: resistive-adc-touch - fix division by zero error on z1 == 0 2021-10-15 22:11:03 -07:00
rohm_bu21023.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
s3c2410_ts.c ARM: s3c: adc: move header to linux/soc/samsung 2020-08-19 21:44:11 +02:00
s6sy761.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
silead.c Input: silead - add pen support 2021-12-12 21:10:23 -08:00
sis_i2c.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
st1232.c Input: st1232 - prefer asynchronous probing 2021-10-11 18:32:56 -07:00
stmfts.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
stmpe-ts.c Input: stmpe-ts - add description for 'prop' struct member 2021-01-19 19:03:18 -08:00
sun4i-ts.c Input: sun4i-ts - switch to new of thermal API 2022-08-17 14:09:39 +02:00
sur40.c Input: move from strlcpy with unused retval to strscpy 2022-08-18 15:44:08 -07:00
surface3_spi.c Input: surface3_spi - remove set but unused variable 'timestamp' 2021-01-19 19:03:16 -08:00
sx8654.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti_am335x_tsc.c Input: ti_am335x_tsc - fix a typo in a comment 2022-01-10 12:46:54 -08:00
touchit213.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
touchright.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
touchwin.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tps6507x-ts.c Input: tps6507x-ts - remove variable loops 2022-10-24 05:18:55 -07:00
ts4800-ts.c Input: ts4800-ts - switch to using polled mode of input devices 2019-10-29 17:13:40 -07:00
tsc40.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 315 2019-06-05 17:37:05 +02:00
tsc200x-core.c Input: tsc200x - add axis inversion and swapping support 2022-02-15 21:25:20 -08:00
tsc200x-core.h Input: tsc200x - make tsc200x_remove() return void 2021-10-12 19:48:54 -07:00
tsc2004.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
tsc2005.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
tsc2007.h Input: tsc2007 - convert to GPIO descriptors 2021-03-15 17:12:02 -07:00
tsc2007_core.c Input: tsc2007 - make use of device properties 2021-03-15 17:12:04 -07:00
tsc2007_iio.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
ucb1400_ts.c Input: ucb1400_ts - remove redundant variable penup 2021-12-19 23:55:25 -08:00
usbtouchscreen.c Input: move from strlcpy with unused retval to strscpy 2022-08-18 15:44:08 -07:00
wacom_i2c.c Input: wacom_i2c - clean up the query device fields 2021-11-29 00:15:39 -08:00
wacom_w8001.c Input: move from strlcpy with unused retval to strscpy 2022-08-18 15:44:08 -07:00
wdt87xx_i2c.c Input: wdt87xx_i2c - replace mdelay() with msleep() in wdt87xx_resume() 2018-07-27 11:59:05 -07:00
wm97xx-core.c Merge branch 'next' into for-linus 2022-08-02 10:06:12 -07:00
wm831x-ts.c Input: move to use request_irq by IRQF_NO_AUTOEN flag 2021-03-25 15:27:56 -07:00
wm9705.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wm9712.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wm9713.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
zet6223.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
zforce_ts.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
zinitix.c Input: zinitix - rename defines ZINITIX_* 2022-05-27 21:49:34 -07:00
zylonite-wm97xx.c Input: wm97xx - get rid of irq_enable method in wm97xx_mach_ops 2022-05-07 22:55:48 +02:00