From nobody Tue Oct 7 05:24:03 2025 Received: from cello.ilitek.com (mail.ilitek.com.tw [60.248.80.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BE3A286A1; Mon, 14 Jul 2025 09:56:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=60.248.80.92 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752487022; cv=none; b=iukbiYJ5YHaRyiXgAQ0Ylre0l2sQTgJzQ6gPUTXtbcxpmN9+P8MKMYpHxIOv96+Hxn4NV1d0C+Hmif3Rmpuo88mAtFJCfemqFJEGd5WsQklT/u2iYLnFgAK2kTbFaLt35IKNqlv3Kdr+cJ6pnG+L7b1VrkFSTqnJXwvVNbjc8V8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752487022; c=relaxed/simple; bh=ckWgDw3R9hXObxueDQVD0IGRb72umRdboYbqn2wrTJY=; h=From:To:CC:Subject:Date:Message-ID:Content-Type:MIME-Version; b=C3N2Q9DzX9XJQ4cf4MFCXqDn7m0knHVid3Jsaih8DgT2WBEQeOpxTU6iHMIS/ZFyVRWUXymHJcM0nFHThrflT/FMjZUGlTMIiN3LOyhmFfnhCTdLvR7PqogMdyBaY96Gvc6ZNTxeHsmr8bedPYVYkXsV5SJ75ppaSZxA942i9Q0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ilitek.com; spf=pass smtp.mailfrom=ilitek.com; arc=none smtp.client-ip=60.248.80.92 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ilitek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ilitek.com X-UUID: 25fa050e609811f0a8cc29d1b46cc427-20250714 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.2,REQID:b5ea3243-9c4a-4ee0-b04f-974a43b69fce,IP:0,UR L:0,TC:0,Content:0,EDM:25,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:25 X-CID-META: VersionHash:9eb4ff7,CLOUDID:fc2423df-2070-40bb-9c24-dfabef7c07f4,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102|110|111,TC:nil,Content:0|50,EDM: 5,IP:nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,A V:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 25fa050e609811f0a8cc29d1b46cc427-20250714 Received: from ex2.ili.com.tw [(192.168.1.132)] by cello.ilitek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1273878594; Mon, 14 Jul 2025 17:51:43 +0800 Received: from EX2.ili.com.tw (192.168.1.132) by EX2.ili.com.tw (192.168.1.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Mon, 14 Jul 2025 17:51:42 +0800 Received: from EX2.ili.com.tw ([fe80::c4c3:818f:1934:2a10]) by EX2.ili.com.tw ([fe80::c4c3:818f:1934:2a10%7]) with mapi id 15.01.2507.044; Mon, 14 Jul 2025 17:51:42 +0800 From: =?big5?B?Sm9lIEh1bmcgKKx4u8q2pyk=?= To: "dmitry.torokhov@gmail.com" , "francesco.dolcini@toradex.com" , "emanuele.ghidoli@toradex.com" CC: linux-input , "linux-kernel@vger.kernel.org" , =?big5?B?THVjYSBIc3UgKK59ucXB5Sk=?= , =?big5?B?Sm9lIEh1bmcgKKx4u8q2pyk=?= Subject: [PATCH] input: ilitek_ts_i2c: report key event for palm Thread-Topic: [PATCH] input: ilitek_ts_i2c: report key event for palm Thread-Index: Adv0pKcAGdMD8eJ9SN+aguAgERcaJQ== Date: Mon, 14 Jul 2025 09:51:42 +0000 Message-ID: Accept-Language: zh-TW, en-US Content-Language: zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Transfer-Encoding: quoted-printable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From ec0d80214fee6acc0b38f33ad0b6b487098963bc Mon Sep 17 00:00:00 2001 From: Joe Hong Date: Mon, 14 Jul 2025 17:20:11 +0800 Subject: [PATCH] input: ilitek_ts_i2c: report key event for palm Add support for reporting user-defined key event while getting palm event. Signed-off-by: Joe Hong --- drivers/input/touchscreen/ilitek_ts_i2c.c | 42 +++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/drivers/input/touchscreen/ilitek_ts_i2c.c b/drivers/input/touc= hscreen/ilitek_ts_i2c.c index 0dd632724a00..fdcb4ab66fbb 100644 --- a/drivers/input/touchscreen/ilitek_ts_i2c.c +++ b/drivers/input/touchscreen/ilitek_ts_i2c.c @@ -39,8 +39,13 @@ #define ILITEK_TP_I2C_REPORT_ID 0x48 =20 #define REPORT_COUNT_ADDRESS 61 +#define ALGO_MODE_ADDRESS 62 #define ILITEK_SUPPORT_MAX_POINT 40 =20 +static uint palm_key; +module_param(palm_key, uint, 0664); +MODULE_PARM_DESC(palm_key, "Set palm key code when palm is detected"); + struct ilitek_protocol_info { u16 ver; u8 ver_major; @@ -176,6 +181,11 @@ static int ilitek_process_and_report_v6(struct ilitek_= ts_data *ts) return -EINVAL; } =20 + if (palm_key) { + input_report_key(ts->input_dev, palm_key, + (buf[ALGO_MODE_ADDRESS] & 0x80) ? 1 : 0); + } + count =3D DIV_ROUND_UP(report_max_point, packet_max_point); for (i =3D 1; i < count; i++) { error =3D ilitek_i2c_write_and_read(ts, NULL, 0, 0, @@ -472,6 +482,9 @@ static int ilitek_input_dev_init(struct device *dev, st= ruct ilitek_ts_data *ts) input->name =3D ILITEK_TS_NAME; input->id.bustype =3D BUS_I2C; =20 + if (palm_key) + __set_bit(palm_key, input->keybit); + __set_bit(INPUT_PROP_DIRECT, input->propbit); =20 input_set_abs_params(input, ABS_MT_POSITION_X, @@ -537,9 +550,38 @@ static ssize_t product_id_show(struct device *dev, } static DEVICE_ATTR_RO(product_id); =20 +static ssize_t palm_key_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "palm key: [%u]\n", palm_key); +} + +static ssize_t palm_key_store(struct device *dev, struct device_attribute = *attr, + const char *buf, size_t count) +{ + struct i2c_client *client =3D to_i2c_client(dev); + struct ilitek_ts_data *ts =3D i2c_get_clientdata(client); + + unsigned long tmp; + + if (kstrtoul(buf, 10, &tmp) || tmp > KEY_MAX) + return -EINVAL; + + if (palm_key) + __clear_bit(palm_key, ts->input_dev->keybit); + + __set_bit(tmp, ts->input_dev->keybit); + palm_key =3D tmp; + + return count; +} + +static DEVICE_ATTR_RW(palm_key); + static struct attribute *ilitek_sysfs_attrs[] =3D { &dev_attr_firmware_version.attr, &dev_attr_product_id.attr, + &dev_attr_palm_key.attr, NULL }; ATTRIBUTE_GROUPS(ilitek_sysfs); --=20 2.34.1