Add support for Imagis touchscreens, used on various mobile devices such as Samsung Galaxy J5 (2015), J3 (2015), J5 (2016). v2: rebase on top of the correct tree v3: - prefix all defines as IST3038C - use two tabs for all defines - add missing <linux/regulator/consumer.h> header - drop ADDR_LEN and DATA_LEN defines; use sizeof(reg_be) instead - use __be32 type for reg_be - add a comment about i2c read not being successful on first try - use "ret" instead of "res" in read_reg function - don't use the internal __cpu_to_be32 function, use cpu_to_be32 instead - use "error" instead of "ret" in interrupt handler - pass the slot state directly, without ternary operator - drop the dev_err in init_input_dev function - reorder the functions in _probe so that the chipid command is read as fast as possible - don't use imagis_start in probe - initialize the irq after the chip is powered - save the return value in imagis_resume - drop WIDTH_MAJOR since only TOUCH_MAJOR is reported - the "chip detected" message is now dev_dbg - reorder headers so they are in alphabetic order - use GENMASK to generate masks for getting the X and Y coordinates and touch area - drop *_pressure from device tree bindings since the driver doesn't support reporting pressure - fix the typo with i2c address in device treee bindings (48 instead of 50) - add IRQF_NO_AUTOEN flag to avoid unbalanced irq enable Markuss Broks (2): dt-bindings: input/touchscreen: bindings for Imagis Input: add Imagis touchscreen driver .../input/touchscreen/imagis,ist3038c.yaml | 78 +++++ .../devicetree/bindings/vendor-prefixes.yaml | 2 + MAINTAINERS | 6 + drivers/input/touchscreen/Kconfig | 10 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/imagis.c | 329 ++++++++++++++++++ 6 files changed, 426 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/touchscreen/imagis,ist3038c.yaml create mode 100644 drivers/input/touchscreen/imagis.c -- 2.35.0