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 (4): Input: touchscreen - move helper functions to core Input: touchscreen - broaden use-cases described in comments dt-bindings: input: Add bindings for Azoteq IQS626A Input: Add support for Azoteq IQS626A .../devicetree/bindings/input/iqs626a.yaml | 843 ++++++++ drivers/input/Makefile | 1 + drivers/input/misc/Kconfig | 11 + drivers/input/misc/Makefile | 1 + drivers/input/misc/iqs626a.c | 1838 +++++++++++++++++ .../of_touchscreen.c => touchscreen.c} | 13 +- drivers/input/touchscreen/Kconfig | 4 - drivers/input/touchscreen/Makefile | 1 - 8 files changed, 2701 insertions(+), 11 deletions(-) create mode 100644 Documentation/devicetree/bindings/input/iqs626a.yaml create mode 100644 drivers/input/misc/iqs626a.c rename drivers/input/{touchscreen/of_touchscreen.c => touchscreen.c} (93%) -- 2.17.1