linux/drivers/input
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
..
gameport input: drop empty comment blocks 2022-09-29 16:25:42 -07:00
joystick Input: joystick - fix Kconfig warning for JOYSTICK_ADC 2022-11-07 11:36:03 -08:00
keyboard Input: matrix_keypad - force switch rows to input mode 2022-11-03 13:41:03 -07:00
misc Input: iqs7222 - add support for IQS7222A v1.13+ 2022-10-24 05:10:09 -07:00
mouse Merge branch 'next' into for-linus 2022-10-09 22:30:23 -07:00
rmi4 Input: synaptics-rmi4 - convert to use sysfs_emit() APIs 2022-09-27 09:00:41 -07:00
serio Input updates for 6.1 merge window: 2022-10-11 10:53:25 -07:00
tablet input: drop empty comment blocks 2022-09-29 16:25:42 -07:00
touchscreen Input: elants_i2c - properly handle the reset GPIO when power is off 2022-11-17 22:14:45 -08:00
apm-power.c
evbug.c Input: evbug - remove an empty comment block 2021-05-24 21:06:39 -07:00
evdev.c Input: evdev - per-client waitgroups 2020-10-06 18:34:15 -07:00
ff-core.c input: drop empty comment blocks 2022-09-29 16:25:42 -07:00
ff-memless.c input: drop empty comment blocks 2022-09-29 16:25:42 -07:00
input-compat.c
input-compat.h
input-core-private.h Input: deactivate MT slots when inhibiting or suspending devices 2022-07-20 11:35:13 -07:00
input-leds.c
input-mt.c Input: deactivate MT slots when inhibiting or suspending devices 2022-07-20 11:35:13 -07:00
input-poller.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
input-poller.h
input.c Input: Use kstrtobool() instead of strtobool() 2022-11-07 11:44:17 -08:00
joydev.c Input: joydev - fix comment typo 2022-09-25 00:57:25 -07:00
Kconfig Input: extract ChromeOS vivaldi physmap show function 2022-03-14 21:11:09 -07:00
Makefile Input: extract ChromeOS vivaldi physmap show function 2022-03-14 21:11:09 -07:00
matrix-keymap.c
mousedev.c
sparse-keymap.c Input: Use fallthrough pseudo-keyword 2020-07-07 11:25:54 -07:00
touchscreen.c Input: touchscreen - avoid bitwise vs logical OR warning 2021-10-15 22:22:54 -07:00
vivaldi-fmap.c Input: extract ChromeOS vivaldi physmap show function 2022-03-14 21:11:09 -07:00