mbox series

[v2,0/5] Add support for Azoteq IQS626A

Message ID 1611459776-23265-1-git-send-email-jeff@labundy.com (mailing list archive)
Headers show
Series Add support for Azoteq IQS626A | expand

Message

Jeff LaBundy Jan. 24, 2021, 3:42 a.m. UTC
This series introduces support for the Azoteq IQS626A capacitive touch
controller, a highly flexible multifunction sensor targeting wearable
applications. It is a close cousin to the IQS269A with the following key
differences:

 - Channel count increases from 8 to 14.
 - Channels are assigned dedicated functions as follows:
   - ULP (ultra-low power): a single channel that continues to be sampled
     during the device's lowest-power sensing mode for wake-up signaling.
   - Trackpad: a group of 6 or 9 channels forming a capacitive trackpad with
     gesture support.
   - Generic: 3 independent channels capable of capacitive or inductive
     sensing, plus much more.
   - Hall: a single channel leveraging a pair of internal Hall-effect plates
     serving lid or dock detection.
 - Each channel (or group of channels) has a unique collection of configurable
   parameters rather than common parameters for every channel.

Channels and events reported by the channels are configured using the device
tree, similar to what was done for the IQS269A.

Also included are some preparatory patches that move the touchscreen helper
functions into the core input directory, allowing them to be leveraged by
multimodal devices like the IQS626A.

A demo is shown in the following video: https://youtu.be/n0Q5BXYFIgI

Jeff LaBundy (5):
  input: touchscreen: Move helper functions to core
  input: touchscreen: Broaden use-cases described in comments
  dt-bindings: input: touchscreen: Move helper bindings to core
  dt-bindings: input: Add bindings for Azoteq IQS626A
  input: Add support for Azoteq IQS626A

 .../devicetree/bindings/input/elan_i2c.txt         |    2 +-
 .../devicetree/bindings/input/iqs626a.yaml         |  843 +++++++++
 .../devicetree/bindings/input/touchscreen.txt      |    1 +
 .../devicetree/bindings/input/touchscreen.yaml     |   83 +
 .../bindings/input/touchscreen/ads7846.txt         |    2 +-
 .../bindings/input/touchscreen/bu21013.txt         |    2 +-
 .../input/touchscreen/cypress,cy8ctma140.yaml      |    2 +-
 .../bindings/input/touchscreen/edt-ft5x06.yaml     |    2 +-
 .../bindings/input/touchscreen/eeti,exc3000.yaml   |    2 +-
 .../input/touchscreen/elan,elants_i2c.yaml         |    2 +-
 .../bindings/input/touchscreen/goodix.yaml         |    2 +-
 .../bindings/input/touchscreen/iqs5xx.txt          |    2 +-
 .../bindings/input/touchscreen/mms114.txt          |    2 +-
 .../bindings/input/touchscreen/touchscreen.txt     |    1 -
 .../bindings/input/touchscreen/touchscreen.yaml    |   83 -
 drivers/input/Makefile                             |    1 +
 drivers/input/misc/Kconfig                         |   11 +
 drivers/input/misc/Makefile                        |    1 +
 drivers/input/misc/iqs626a.c                       | 1837 ++++++++++++++++++++
 drivers/input/touchscreen.c                        |  207 +++
 drivers/input/touchscreen/Kconfig                  |    4 -
 drivers/input/touchscreen/Makefile                 |    1 -
 drivers/input/touchscreen/of_touchscreen.c         |  206 ---
 23 files changed, 2994 insertions(+), 305 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/input/iqs626a.yaml
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen.txt
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen.yaml
 delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt
 delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/touchscreen.yaml
 create mode 100644 drivers/input/misc/iqs626a.c
 create mode 100644 drivers/input/touchscreen.c
 delete mode 100644 drivers/input/touchscreen/of_touchscreen.c

--
2.7.4