From patchwork Mon Nov 7 10:56:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Job Noorman X-Patchwork-Id: 1265 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp1979634wru; Mon, 7 Nov 2022 03:05:54 -0800 (PST) X-Google-Smtp-Source: AA0mqf6GYtkDvF4zziem81QK2RdhEcUBZ7JLGyQ+5vVQoXoVDb33k2ZWJJ42drPqLvIPL4qV9IdU X-Received: by 2002:a05:6402:380a:b0:451:ae08:7a6c with SMTP id es10-20020a056402380a00b00451ae087a6cmr5531262edb.161.1667819154588; Mon, 07 Nov 2022 03:05:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1667819154; cv=none; d=google.com; s=arc-20160816; b=Q+LuqoTajPZI++CItZMeS6iyfIgI0KET+yKJZXs0wJfW4CLthxiVxKSOLewLMafpxJ oHY+46oWn0+WfniyxQWTxBzEO3KjvBVLlQXQFvmt1jJ4Gaublv5qz9eAqmN8swIvMBw7 dhowCzuBdK5HKqYhPFLc19vQtlOoXz9D/yG1F08nl4pXgOXtvaojg9FgZt8Gt1WEfUfg aueP4gGfgQNRmOMEQqYjvrbuWb7T0+2/BrqMRfc9BOB7eLfnoISy2ZmsPO2BLBB6P1Rd QFhocECJ1dfzOF257g9aTGoSM0jqzxaNVjVw3e5XnTgroMPUMAPMMsJKiY98TL+J2zuS U4xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=zR6Mhv/vRVdGbEmRy19xWFBS8xMO4Kg6VmBSaKKrkYA=; b=mFH/rGtDxLGBmRvM0WhzQm3lPM78GN8/LGBKj/X0T2eesX0l3fv+4S315ukmb4g3gz aNmVkUXwqoiBfg2om6vunAh7GTxTdpmtynfeblf/XdET4h5n0MTX2MUXqCufZJRMaYg0 wHzwTOLCWKS5PCZ4p8vNmdzThAxyUq+kDZEhVfM+L3nzQ6/wiIjILV3XDVDrvdeGGIJu 4BFZibUwcu7qA8h+jLrYpURvaEP0M6dn1XNR7LhZsTkZSySHTTBLPOd1vi2SLpYCQEKd O7cssqDBN8VUm7UasUsYCHE1f1Fd1SxaVWFsc4csbDa4SOr/OIhOYRjBIqOhpjFUdCRE Tt0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@noorman.info header.s=MBO0001 header.b="D4i5c2f/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=noorman.info Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nc14-20020a1709071c0e00b0078d473448afsi10085567ejc.233.2022.11.07.03.05.29; Mon, 07 Nov 2022 03:05:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@noorman.info header.s=MBO0001 header.b="D4i5c2f/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=noorman.info Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231773AbiKGK4V (ORCPT + 99 others); Mon, 7 Nov 2022 05:56:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231237AbiKGK4T (ORCPT ); Mon, 7 Nov 2022 05:56:19 -0500 Received: from mout-y-111.mailbox.org (mout-y-111.mailbox.org [91.198.250.236]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E62C0F9; Mon, 7 Nov 2022 02:56:17 -0800 (PST) Received: from smtp202.mailbox.org (smtp202.mailbox.org [IPv6:2001:67c:2050:b231:465::202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-y-111.mailbox.org (Postfix) with ESMTPS id 4N5Sp60VxGz9spb; Mon, 7 Nov 2022 11:56:14 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=noorman.info; s=MBO0001; t=1667818574; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=zR6Mhv/vRVdGbEmRy19xWFBS8xMO4Kg6VmBSaKKrkYA=; b=D4i5c2f/FPiucTd8gLwUgzy7BdbilM406LibcE3v+l0kIaPoYMCxkwh+c0izQ0w9Mve3Kd dB2PZN3DTdaRbhGva09h9nAelS95ode61ws4EzenCodoVD+Mk069cGqTFSISyrcL35xUq3 1dkXq+d0C3R5ZPQmXW6NQ+UtEXydx2ujVM5AEHcET59ZJG/RRvgNyyKQZpIpdX5Lqr2Fm6 skyDUfWLRcfK0rttIJTRbegZ454O9xTXyd2VLvnFSfSf4dK4o/cA5MOWV8PWxBkrdEZ3ZJ 2XV7KYSGdHZ/7dnkPPK5j8sWaX1jtgigCioAxLjTFYOxdREj1OhzPzaZYM8dFw== From: Job Noorman To: Job Noorman , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Andy Gross , Bjorn Andersson , Henrik Rydberg Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Konrad Dybcio , Luca Weiss Subject: [PATCH RESEND v6 0/3] Add Himax hx83112b touchscreen driver Date: Mon, 7 Nov 2022 11:56:01 +0100 Message-Id: <20221107105604.26541-1-job@noorman.info> MIME-Version: 1.0 X-Rspamd-Queue-Id: 4N5Sp60VxGz9spb X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748835137873223237?= X-GMAIL-MSGID: =?utf-8?q?1748835137873223237?= Hi all, This series adds support for the Himax hx83112b. The hx83112b supports 10 point multitouch with hardware tracking of touch points. It is the touchschreen used by the Fairphone 3. Note that a datasheet was unavailable for this device, so it was built based on the Android driver that was tagged as GPLv2. This series is a complete rewrite, though, and the code bears no resemblence to the original implementation. It is expected that this driver can be made to work on other hx83xxx devices, especially the hx83112a used in the Fairphone 4. However, since we have been unable to verify this, this driver only declares compatibility with the hx83112b and uses very specific file names. Changes since v5 (based on Jeff LaBundy's 3rd round of comments): - Consistently reuse local variable dev in himax_probe() Changes since v4 (based on Jeff LaBundy's 2nd round of comments): - Kconfig: depend on I2C and select REGMAP_I2C - Don't suppress dev_err() on EPROBE_DEFER - Some minor coding style updates Changes since v3 (based on Dmitry Torokhov's comments): - Use gpiod_set_value_cansleep (instead of gpiod_set_value) during probe - Inline some small helper functions - Use DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() - Use PTR_ERR_OR_ZERO instead of IS_ERR+PTR_ERR - Some minor coding style updates (e.g., use C-style comments) Changes since v2 (based on Jeff LaBundy's comments): - Kconfig: depend on REGMAP_I2C instead of I2C - Don't use dev_err_probe() - Return IRQ_NONE on failed register reads to prevent possible interrupt storm - Add small delay after de-asserting reset pin - Some minor coding style updates - dt-bindings: make touchscreen-size-{x,y} required Changes since v1: - Fix sparse warnings. Reported-by: kernel test robot . - Fix dt_binding_check. Best regards, Job Previous versions: - v5: https://lore.kernel.org/lkml/20221023163032.144150-1-job@noorman.info/ - v4: https://lore.kernel.org/lkml/20221017100409.189293-1-job@noorman.info/ - v3: https://lore.kernel.org/lkml/20221016102756.40345-1-job@noorman.info/ - v2: https://lore.kernel.org/lkml/20221012202341.295351-1-job@noorman.info/ - v1: https://lore.kernel.org/lkml/20221011190729.14747-1-job@noorman.info/ Job Noorman (3): dt-bindings: touchscreen: add Himax hx83112b bindings Input: add driver for Himax hx83112b touchscreen devices arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen .../input/touchscreen/himax,hx83112b.yaml | 63 +++ MAINTAINERS | 7 + .../boot/dts/qcom/sdm632-fairphone-fp3.dts | 14 + drivers/input/touchscreen/Kconfig | 12 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/himax_hx83112b.c | 361 ++++++++++++++++++ 6 files changed, 458 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml create mode 100644 drivers/input/touchscreen/himax_hx83112b.c base-commit: 153a197077d33861744be5a2d4bd17cec2c2dca3