zephyr/drivers/input
Fabio Baltieri 1dd2307b3f input: gpio_qdec: add optical encoder support
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>
2024-01-23 09:45:57 -05:00
..
CMakeLists.txt drivers: input: add an analog-axis driver 2024-01-10 15:05:35 +01:00
input_analog_axis_settings.c drivers: input: add an analog-axis driver 2024-01-10 15:05:35 +01:00
input_analog_axis.c drivers: input: add an analog-axis driver 2024-01-10 15:05:35 +01:00
input_cap1203.c drivers: gpio: use gpio_is_ready_dt helper function 2023-08-28 08:48:35 -05:00
input_cst816s.c input: cst816s: simplify the reset code 2023-11-06 08:50:33 +00:00
input_esp32_touch_sensor.c driver: input: espressif touch_sensor 2023-12-11 18:31:38 +01:00
input_ft5336.c input: ft5336: add suspend and resume support 2023-12-15 11:32:56 +00:00
input_gpio_kbd_matrix.c input: gpio_kbd_matrix: use edge-to-active interrupt 2023-12-18 12:25:19 +01:00
input_gpio_keys.c input: gpio_keys: implement polling mode support 2024-01-10 18:21:49 +00:00
input_gpio_qdec.c input: gpio_qdec: add optical encoder support 2024-01-23 09:45:57 -05:00
input_gt911.c posix: Fix name collision with __bswap 2024-01-10 18:13:44 +00:00
input_ite_it8xxx2_kbd.c input: gpio_kbd_matrix: define a type for the row data 2023-11-22 09:52:39 +01:00
input_kbd_matrix.c input: kbd_matrix: fail gracefully if changing an undefined key mask 2024-01-04 18:40:10 +00:00
input_npcx_kbd.c input: npcx_kbd: setup the interrupt to falling edge only 2023-12-20 18:07:43 +00:00
input_sdl_touch_bottom.c
input_sdl_touch_bottom.h
input_sdl_touch.c
input_stmpe811.c drivers: input: add driver for stmpe811 i2c touch controller 2023-09-22 09:29:56 +02:00
input_xpt2046.c
Kconfig drivers: input: add an analog-axis driver 2024-01-10 15:05:35 +01:00
Kconfig.analog_axis drivers: input: add an analog-axis driver 2024-01-10 15:05:35 +01:00
Kconfig.cap1203
Kconfig.cst816s
Kconfig.esp32 driver: input: espressif touch_sensor 2023-12-11 18:31:38 +01:00
Kconfig.evdev drivers: input: depend on multithreading on drivers using a thread 2024-01-09 11:27:44 +00:00
Kconfig.ft5336
Kconfig.gpio_kbd_matrix input: add a gpio based keyboard matrix driver 2023-11-15 11:41:25 +01:00
Kconfig.gpio_keys drivers: input: drop the zephyr,gpio-keys binding 2023-08-07 11:26:26 +02:00
Kconfig.gpio_qdec
Kconfig.gt911
Kconfig.it8xxx2 drivers: input: depend on multithreading on drivers using a thread 2024-01-09 11:27:44 +00:00
Kconfig.kbd_matrix drivers: input: depend on multithreading on drivers using a thread 2024-01-09 11:27:44 +00:00
Kconfig.npcx drivers: input: depend on multithreading on drivers using a thread 2024-01-09 11:27:44 +00:00
Kconfig.sdl
Kconfig.stmpe811 drivers: input: add driver for stmpe811 i2c touch controller 2023-09-22 09:29:56 +02:00
Kconfig.xpt2046
linux_evdev_bottom.c input: add a linux-evdev device 2023-12-18 12:23:59 +01:00
linux_evdev_bottom.h input: add a linux-evdev device 2023-12-18 12:23:59 +01:00
linux_evdev.c input: use K_KERNEL_STACK_SIZEOF to set the thread stack size 2023-12-23 09:59:28 +00:00