Input: imagis - add support for imagis IST3038H
authorAndras Sebok <sebokandris2009@gmail.com>
Mon, 24 Feb 2025 09:03:54 +0000 (10:03 +0100)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 25 Feb 2025 02:11:06 +0000 (18:11 -0800)
Add support for imagis IST3038H, which seems mostly compatible with
IST3038C except that it reports a different chip ID value.

Tested on samsung,j5y17lte.

Signed-off-by: Andras Sebok <sebokandris2009@gmail.com>
Link: https://lore.kernel.org/r/20250224090354.102903-2-sebokandris2009@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/imagis.c

index abeae9102323c04f98bd8afda5e4487d3f46a860..3c8bbe284b73188971b2b03ad068fec0e0c23dc6 100644 (file)
@@ -22,6 +22,7 @@
 
 #define IST3032C_WHOAMI                        0x32c
 #define IST3038C_WHOAMI                        0x38c
+#define IST3038H_WHOAMI                        0x38d
 
 #define IST3038B_REG_CHIPID            0x30
 #define IST3038B_WHOAMI                        0x30380b
@@ -428,11 +429,19 @@ static const struct imagis_properties imagis_3038c_data = {
        .protocol_b = true,
 };
 
+static const struct imagis_properties imagis_3038h_data = {
+       .interrupt_msg_cmd = IST3038C_REG_INTR_MESSAGE,
+       .touch_coord_cmd = IST3038C_REG_TOUCH_COORD,
+       .whoami_cmd = IST3038C_REG_CHIPID,
+       .whoami_val = IST3038H_WHOAMI,
+};
+
 static const struct of_device_id imagis_of_match[] = {
        { .compatible = "imagis,ist3032c", .data = &imagis_3032c_data },
        { .compatible = "imagis,ist3038", .data = &imagis_3038_data },
        { .compatible = "imagis,ist3038b", .data = &imagis_3038b_data },
        { .compatible = "imagis,ist3038c", .data = &imagis_3038c_data },
+       { .compatible = "imagis,ist3038h", .data = &imagis_3038h_data },
        { },
 };
 MODULE_DEVICE_TABLE(of, imagis_of_match);