Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: imagis - add support for imagis IST3038H

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>

authored by

Andras Sebok and committed by
Dmitry Torokhov
83a4a5a8 f5be37ca

+9
+9
drivers/input/touchscreen/imagis.c
··· 22 22 23 23 #define IST3032C_WHOAMI 0x32c 24 24 #define IST3038C_WHOAMI 0x38c 25 + #define IST3038H_WHOAMI 0x38d 25 26 26 27 #define IST3038B_REG_CHIPID 0x30 27 28 #define IST3038B_WHOAMI 0x30380b ··· 429 428 .protocol_b = true, 430 429 }; 431 430 431 + static const struct imagis_properties imagis_3038h_data = { 432 + .interrupt_msg_cmd = IST3038C_REG_INTR_MESSAGE, 433 + .touch_coord_cmd = IST3038C_REG_TOUCH_COORD, 434 + .whoami_cmd = IST3038C_REG_CHIPID, 435 + .whoami_val = IST3038H_WHOAMI, 436 + }; 437 + 432 438 static const struct of_device_id imagis_of_match[] = { 433 439 { .compatible = "imagis,ist3032c", .data = &imagis_3032c_data }, 434 440 { .compatible = "imagis,ist3038", .data = &imagis_3038_data }, 435 441 { .compatible = "imagis,ist3038b", .data = &imagis_3038b_data }, 436 442 { .compatible = "imagis,ist3038c", .data = &imagis_3038c_data }, 443 + { .compatible = "imagis,ist3038h", .data = &imagis_3038h_data }, 437 444 { }, 438 445 }; 439 446 MODULE_DEVICE_TABLE(of, imagis_of_match);