1dd2307b3f
Change the gpio_qdec driver to support optical encoders. Add a property to use for defining an arbitrary number of GPIOs for the sensing devices (typically infrared LEDs, but could also be the biasing for the phototransistor), and one for adding a delay between turning those on and reading the pin status. The infrared LEDs typically consume a non negligible amount of power, so there's also a new idle-poll-time-us property that enables two possible modes of operation: - if idle-poll-time-us is zero (default) the LEDs are enabled all the time and the driver enters polling mode using the GPIO interrupt as with mechanical encoders. This is usable for mains powered devices and has the lowest overhead on the CPU. - if idle-poll-time-us is non zero, then the driver polls the encoder all the time, turning on the LEDs just before reading the state and shutting them off immediately after, but when the encoder is idle it switches the polling rate to idle-poll-time-us to save power, and only polls at sample-time-us when some movement is detected. Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com> |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
input_analog_axis.c | ||
input_analog_axis_settings.c | ||
input_cap1203.c | ||
input_cst816s.c | ||
input_esp32_touch_sensor.c | ||
input_ft5336.c | ||
input_gpio_kbd_matrix.c | ||
input_gpio_keys.c | ||
input_gpio_qdec.c | ||
input_gt911.c | ||
input_ite_it8xxx2_kbd.c | ||
input_kbd_matrix.c | ||
input_npcx_kbd.c | ||
input_sdl_touch.c | ||
input_sdl_touch_bottom.c | ||
input_sdl_touch_bottom.h | ||
input_stmpe811.c | ||
input_xpt2046.c | ||
Kconfig | ||
Kconfig.analog_axis | ||
Kconfig.cap1203 | ||
Kconfig.cst816s | ||
Kconfig.esp32 | ||
Kconfig.evdev | ||
Kconfig.ft5336 | ||
Kconfig.gpio_kbd_matrix | ||
Kconfig.gpio_keys | ||
Kconfig.gpio_qdec | ||
Kconfig.gt911 | ||
Kconfig.it8xxx2 | ||
Kconfig.kbd_matrix | ||
Kconfig.npcx | ||
Kconfig.sdl | ||
Kconfig.stmpe811 | ||
Kconfig.xpt2046 | ||
linux_evdev.c | ||
linux_evdev_bottom.c | ||
linux_evdev_bottom.h |