From patchwork Mon May 15 15:00:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Carrasco X-Patchwork-Id: 682198 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4B202C7EE2D for ; Mon, 15 May 2023 15:01:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240538AbjEOPBP (ORCPT ); Mon, 15 May 2023 11:01:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46038 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240266AbjEOPBM (ORCPT ); Mon, 15 May 2023 11:01:12 -0400 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2079.outbound.protection.outlook.com [40.107.7.79]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8B359E76; Mon, 15 May 2023 08:01:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CSCjf+zsD30erHC9ZRS+Ze7B36dc8K3lISyojWeiVyhJRPiENdjuSZqeIyqGj3e+7hukTM61RQgDMMrxPBue92+xkakYES2N6yNzSe3nr+WNaYeBIZzQ18tzZCiq1nK1ZRXkhvH01liHDtLPOB+uTN1jfQOvZ/swu/8cY+ToIhn1MLA153QNw4/lgtLVt63ZBzj1ws+IXkoiGDHyjVnw1w9rJ+OAE5dr6xNeMc0oMDnIpLKXHyoNDKXWp6FMlX/nF4WJWr9Px/IpqTBHYEXtFEzi3h3YwoCrGfyBMmRHjQxStD9kUPUkg2YCB2iL9AsaiAQeHOtGMfyKFVJop4h0JQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7uXd1f6WLsr4xPGXy95i4lRpgF7jWEYyV9TrkD3/xxE=; b=BT+B769dYCdwLiaJcRyZ3sz2tqT2BUYDv9mIqexHetBQ7ovpmsaOutTaUCzH88oTBOsdvedxpVoyj0MQAqBcDF1lMhqgBJpRgOV0Cou71ibhgT9wbySpzMOktS4cxV1f3XpXJO4LzVftgSKTfg6l7d8jpGxAVge2K+8QxL9gScI81ue/ode42KYZFdmqlGESJV3/D3TObbZVyJu8PBrVzJmbZGptT4+6xMIoXh66sHiNKfaxIwKir2uAO2t/f36DVMXMRxNi2MVu0W4P61TLh1ltD7AbYsjplgTdUBDOVfPZuI2OeYKAg/YBqksm3Jhd7TpInOwFS41z8qcNnyvSpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wolfvision.net; dmarc=pass action=none header.from=wolfvision.net; dkim=pass header.d=wolfvision.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wolfvision.net; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7uXd1f6WLsr4xPGXy95i4lRpgF7jWEYyV9TrkD3/xxE=; b=GMjx/uBT7W9wepjOIvmfUB0o57TnmNM0tuVI8G/WGbkpi0OmzbcL6uyGTbZt5o6if1nqHdm6sJz53NHnBBcqGIpx9saVOpuuvq6V2GfHbjIqcVkGI1ZTZHSUwbiMmW3RudJsQQSCHY0poA+O/w00ANVvt1ZKiBswzg2ip5fWiMU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=wolfvision.net; Received: from VE1PR08MB4974.eurprd08.prod.outlook.com (2603:10a6:803:111::15) by VI1PR08MB9982.eurprd08.prod.outlook.com (2603:10a6:800:1c4::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.29; Mon, 15 May 2023 15:01:05 +0000 Received: from VE1PR08MB4974.eurprd08.prod.outlook.com ([fe80::bd0e:a139:9e67:b86d]) by VE1PR08MB4974.eurprd08.prod.outlook.com ([fe80::bd0e:a139:9e67:b86d%4]) with mapi id 15.20.6387.030; Mon, 15 May 2023 15:01:05 +0000 From: Javier Carrasco Subject: [PATCH v2 0/4] Input: support virtual objects on touchscreens Date: Mon, 15 May 2023 17:00:57 +0200 Message-Id: <20230510-feature-ts_virtobj_patch-v2-0-f68a6bfe7a0f@wolfvision.net> X-B4-Tracking: v=1; b=H4sIAClJYmQC/42PQQ7CIBBFr2JYSwMIrXHlPUzTAE4FY6AZEDVN7 y6tF3D5ZvL/m5lJAvSQyGk3E4Tik4+hgtjviHU63ID6a2UimDgwxRkdQecnAs1pKB5zNPdh0tk 6CqLtlGRaQydJjRudgBrUwbq1oLSNpGj5upoQRv/erJe+svMpR/xsRxS+Tv/wFU4ZVRoUHLmxo pXnV3yMvw+aAJn0y7J8AeIRKI/gAAAA To: Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Henrik Rydberg , Bastian Hecht , Michael Riesch Cc: linux-kernel@vger.kernel.org, linux-input@vger.kernel.org, devicetree@vger.kernel.org, Javier Carrasco X-Mailer: b4 0.12.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1684162864; l=2419; i=javier.carrasco@wolfvision.net; s=20230509; h=from:subject:message-id; bh=kDLvW4MNdchFQrzoH6ZWFFnmP+Odi+a9gcFMheCzoMo=; b=Ad5Mnvl83skIQmz0scJ2VyMIB2JRJrqtAY0o5qosDG5Jm5wAZbXQDre8/bVIoK1wZReHHUrl3 ZLWcRsvDUwJB2w1ntZTH9IQp2NAeecx0t5h5Y0Ykq/yYMBpuRkcRYqz X-Developer-Key: i=javier.carrasco@wolfvision.net; a=ed25519; pk=tIGJV7M+tCizagNijF0eGMBGcOsPD+0cWGfKjl4h6K8= X-ClientProxiedBy: VI1P195CA0039.EURP195.PROD.OUTLOOK.COM (2603:10a6:802:5a::28) To VE1PR08MB4974.eurprd08.prod.outlook.com (2603:10a6:803:111::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR08MB4974:EE_|VI1PR08MB9982:EE_ X-MS-Office365-Filtering-Correlation-Id: 0cf8a861-faeb-42b4-4c6c-08db555534c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9NL5vBIuE2cdBBX+55gG5zScQ9G1PK6PsJ4LIR4qL1ONz+vGcKhdGFzG7tw5G3lg+whla27JutrgMWXIZTOSLdhu8QE3Xu32xm9kCq6CX5hp2Hz6YYBDtS8taPcY6zY4MQ9gAI84X1C9NiMHC9CmkLlvVaK0Bjkpv0cM1iZALDv0DwUWvYYoge2e242p11Kz/y6jH+hgTxD//skQjnRxrCO65tOvmV4Cl0KmcKfmlqH2CFvczWzUpufsZwdvmi59DXBBMOSti+OFbc2qMeUiqbfDj2ifUQ4Iy9MEkLY3d+xvI4wMt7KyUBLJXe4/+EvgFyKqxomCUbb8ra7ScTPam8P80MFaA+W3sYHethpx62+QM0GqMtS7EekdGfbNfTRDPDa68cw/4bc/xeNqjfvg7mAkGfPJ2UnripRshs7Rs8w0lpoluREpZ4JI0Tss2ZPq8T7ew6/wO+chy29FC/TgAamjBCHuT4Mmj6InNgV5pP6Ow06Up25IDwpNO9nDIJYy0yZevBfv6MKwJtpw68Isme8q/wc8AfpUwmF+UkOOeNPPNbgUCS25idUFIDvkOhTkqGyYYcQ15HEXJGFgT7gtb/A6TqWI19398bl8aEcNUYs= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR08MB4974.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(136003)(376002)(396003)(346002)(366004)(39840400004)(451199021)(478600001)(2616005)(86362001)(6486002)(83380400001)(6512007)(6506007)(26005)(186003)(38100700002)(38350700002)(107886003)(36756003)(52116002)(966005)(6666004)(110136005)(2906002)(66946007)(66476007)(66556008)(5660300002)(316002)(6636002)(4326008)(44832011)(8676002)(8936002)(41300700001)(66899021); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?AMZmitRdG3/IvH4dKAXik3mlcKoQ?= =?utf-8?q?2aj1uDrdRpyGPOKBK2lChO7jmbYhyzZSDADwRa/DoEJQ0b4q12hPTYP3iO28YOv3b?= =?utf-8?q?l+wv4U6ntxwfGNDVHdI7Tf0sjnygDKPYgpekQcvnHzpD7TSkj/JNa5WkeLCz3avUz?= =?utf-8?q?aHutrK3n9V11v67hbAjtDe3egrqSlhv+bOGUkdKuKlaLDmjICQedbEEFdGQYj5m8s?= =?utf-8?q?Z5QUVyF72lDWG1hkPNOLLDz9hK4k0lLAwE7vyaPXtbIZd4tOc7p02gmH5MX48q/Zb?= =?utf-8?q?DrrpY3uqVDAOpuzJqVExKoONDIfMIlP0ctK3qhYhP9TVujjq6zI1rTDoCgu+aTiNs?= =?utf-8?q?bToaGA1meEzWDIqPkh/C5gwIT4E1d+hIfeYvTMvG7RmRLBOE1LqzEGGYO9nO8HMlo?= =?utf-8?q?n62loxTTTbLSVseMOY6ZDHvUFHfhcWpBv0Cu8hPpKYtpgU+uxEfiAE7wNU9+/uXhk?= =?utf-8?q?QuQdBz2ZFeqCZvngFzKq7tksKgnhOIaDTyHX45PLEC7dcJ8mM14fkJo4NxlKa3Xtw?= =?utf-8?q?R/P//9DNFsZeKTWvEegC21ffeqr7QxJ8L2hTy+8yKF+BZyp01MyYcJBIHRiI7lgLN?= =?utf-8?q?WExZoD+S2AJBe2Ucbi7SylBMaVCDmk7JwQO1KIAW30uAY4AZCa3OBluiOE6WcG7bb?= =?utf-8?q?XPk4acqU9Kfy0K8iBaFcD6p/b6SiIhU1vr6zbgHFsU45T1blHG6WgRGDPF3PIPod8?= =?utf-8?q?tfAqkXeP1KdORLLACmSmOtyF8qVtMn/P4pzI+UE215foDEVFutZUuBVgevyXRXSwv?= =?utf-8?q?UOQ4eVZIiuVPkyQQQ8IjQqjDTgQQYUm6KQz+tCQfqFWpCw+KojDosrBsR1Rgabg/G?= =?utf-8?q?3PDKlhWX0GZzhMSXBAC+JrP6k2fg4JJ84x5TWnO/5x1UGCnoQovxHWl4Jjh3w24X1?= =?utf-8?q?pj06VkBPwn/LBqs1LawQGJRILGSt6ft7Qox2FRqHXgfgWkP5oqH/L6OU/T8PM4OFx?= =?utf-8?q?+C3WDoASvUn9/onT48kzsiuhNTh5oAUbirQ90M9C8EhqhAv9J37ONHXmw497C8Gzb?= =?utf-8?q?Gbdd6Ap8qXW3ALHG/IccMPawzx2Va4WXlvG+m8QgHbWVXov9V6WM2z1bO6YcrBlJF?= =?utf-8?q?0W9X6BoT+8+5/Uar7SNe9YyhDFIYUrnIUDysaZsqXf/r5gjDLJxYwYarJErBnuXya?= =?utf-8?q?OgZ7HIAj9+/5AoJyP+6SDWP1Yi3wnBMZ3v3X2nCS88m5wKHWf17vs6T6JSGAwWUnM?= =?utf-8?q?+O+4p59GCrOn09z8qaPjTxy2ONMaaS7cCZYux/lf1csXYKIgSErAetL8Fro+V+qdw?= =?utf-8?q?7SBIMBI3ZQj0lxz7ISnqIP+CcLfaSS6zLxzTsxLbTN4Lo4nQJc7LD24FK2FLIi7B7?= =?utf-8?q?Lr9Fpu9PduStxrx1g4rwxZ+fNKYWhVdvhlOud3Ks9y4CaZ0ZYeHCtj+8SLYaqFJhR?= =?utf-8?q?AcgIPxQdL8MeHGxp4scgJDD6BoWEly2fqRCVWtzVgjdUNfksb8zgf8jTRQrdlAkA1?= =?utf-8?q?Ikt+gzZ5eIz+m6qJCQ8v5F9l0se2KwVhmlUeuwLMghyWqSoO0CY+FJYFEu40XTwVM?= =?utf-8?q?3Mce4Ir2pByh+gajppOqABAQGDQt9i2SaNMRqgZ3CcF6AEQlCSUS4ZY=3D?= X-OriginatorOrg: wolfvision.net X-MS-Exchange-CrossTenant-Network-Message-Id: 0cf8a861-faeb-42b4-4c6c-08db555534c3 X-MS-Exchange-CrossTenant-AuthSource: VE1PR08MB4974.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2023 15:01:05.0394 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e94ec9da-9183-471e-83b3-51baa8eb804f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: I/+09m+lUo0WfEowSWipv0KEFmnDfBt5TDkov8YFi8aZSBRavzyj0vdwp7lpzm7if4plk26NcHJ6zzub4vBVBew+KPNISWZaAEByp0WujYg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB9982 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Some touchscreens are shipped with a physical layer on top of them where a number of buttons and a resized touchscreen surface might be available. In order to generate proper key events by overlay buttons and adjust the touch events to a clipped surface, these patches offer a documented, device-tree-based solution by means of helper functions. An implementation for a specific touchscreen driver is also included. The functions in ts-virtobj provide a simple workflow to acquire physical objects from the device tree, map them into the device driver structures as virtual objects and generate events according to the object descriptions. This feature has been tested with a JT240MHQS-E3 display, which consists of an st1624 as the base touchscreen and an overlay with two buttons and a frame that clips its effective surface mounted on it. Signed-off-by: Javier Carrasco --- Changes in v2: - PATCH 1/4: remove preprocessor directives (the module is selected by the drivers that support the feature). Typo in the commit message. - PATCH 2/4: more detailed documentation. Images and examples were added. - PATCH 3/4: select ts-virtobj automatically. - Link to v1: https://lore.kernel.org/r/20230510-feature-ts_virtobj_patch-v1-0-5ae5e81bc264@wolfvision.net --- Javier Carrasco (4): Input: ts-virtobj - Add touchscreen virtual object handling dt-bindings: touchscreen: add virtual-touchscreen and virtual-buttons properties Input: st1232 - add virtual touchscreen and buttons handling dt-bindings: input: touchscreen: st1232: add example with ts-virtobj .../input/touchscreen/sitronix,st1232.yaml | 40 +++ .../bindings/input/touchscreen/touchscreen.yaml | 139 ++++++++ MAINTAINERS | 7 + drivers/input/touchscreen/Kconfig | 10 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/st1232.c | 87 +++-- drivers/input/touchscreen/ts-virtobj.c | 356 +++++++++++++++++++++ include/linux/input/ts-virtobj.h | 43 +++ 8 files changed, 665 insertions(+), 18 deletions(-) --- base-commit: ac9a78681b921877518763ba0e89202254349d1b change-id: 20230510-feature-ts_virtobj_patch-e267540aae74 Best regards,