From patchwork Mon Oct 17 10:04:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Job Noorman X-Patchwork-Id: 204 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp1363547wrs; Mon, 17 Oct 2022 03:09:32 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6nADxKHxewpIHlzZSbViTeJtXhEEu1QAejpRPqVM7lsb9nLZi1VtDMgosSG7epYh+uhJye X-Received: by 2002:a17:907:161f:b0:78e:11b3:8962 with SMTP id hb31-20020a170907161f00b0078e11b38962mr8236511ejc.0.1666001372110; Mon, 17 Oct 2022 03:09:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666001372; cv=none; d=google.com; s=arc-20160816; b=uaZWXkQrmOrxKUaU2/fBRSQ1rpnvc8pPYEEJfK/U0U6JsG/S/pVhPRJfQtyxidSLPE wypaJM12I8QgEGxoy85RpGXACfevl3xk6X3m+eaAoULQjwcy43XcT3/Gab3r1lI8KTc2 k2mXgtwFiTgJqdNxnDJOrm6w3cx9/aMr/Eo6SHVu+EJtWVfjyxFKiwsw/x9hNC8ZBE8c OeiWVX8k2cafUmUlOTQCVrfoXkKysXfhqcj9Rutia2972NRgA322brmxVfv54QU1Sur1 xdYU31gl9OpckNLOrlNtW+xokFB1fpoD+McyUdtXvkzfiDUDoxrt/zfci9ylzfvHH/rc Qz7Q== 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=yD1PXqIGNkSTqSi7oBhvoiT99KJVHANh6ErPt8Janf0=; b=P9jRk7PES+a95wXld3VJNzBEQH3J3CN57Q8yXKjBLHj/PvQZyhANh9E51cTkI13pBG zXN1d0XLrpFzwMVIgWN/lhgwtY5uROQb9sii22WVmvIDp9ij1ifGi/BCbfcfxT8FRd4u Prj1GttqmwAJSp7TYx5OMC2N/ro8vTQp0WNXWA1N0RQNb3vFUsjoT439WplbZfdbpSjk Gfsmbr2ra67ZaJbvS76miCD+XpEIlSO4le6GaNpbj566cgach9+KPNc5vqL2WTfDxJ7c Tl/mHu6ysemXGhOAmpqnNrS9xraTOXyZQzJD2fmfv2t5p5E0pvuF1wsc6z+cgykEqXGY azCw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@noorman.info header.s=MBO0001 header.b=XJwM3sKi; 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 qa43-20020a17090786ab00b00782ece08669si8703707ejc.13.2022.10.17.03.09.03; Mon, 17 Oct 2022 03:09:32 -0700 (PDT) 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=XJwM3sKi; 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 S231560AbiJQKFU (ORCPT + 99 others); Mon, 17 Oct 2022 06:05:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55112 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231166AbiJQKE6 (ORCPT ); Mon, 17 Oct 2022 06:04:58 -0400 Received: from mout-y-111.mailbox.org (mout-y-111.mailbox.org [IPv6:2001:67c:2050:103:465::111]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2E6A717E02; Mon, 17 Oct 2022 03:04:43 -0700 (PDT) Received: from smtp202.mailbox.org (unknown [91.198.250.118]) (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 4MrXfH1wd4z9sw2; Mon, 17 Oct 2022 12:04:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=noorman.info; s=MBO0001; t=1666001079; 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=yD1PXqIGNkSTqSi7oBhvoiT99KJVHANh6ErPt8Janf0=; b=XJwM3sKil5yfymDmcUrnIH71HuaT9otsUs64e9Cpap3FoeonhZSOU9Dri8EmXuOFIsBfci myyF2WE9qjtFkeb2eOG+iUMNG0VkjYi+/gOKZia9VcxRcqhX+3mjgjA3E1x7qbRWir45eg ZSF2Dn4DSZk4cuywC9OXzc+no9ZKD/SSL7cPzFirnl2zplckmZ2Exj0kahrJfU7kR/2gCW 1c1K0oKJram4e8tYkA+xEopQNdBzTC15+OGXa0QwcyraqfyXHkyRvFWjeqY8Gx7+Sk3udb f35cG2g+z0tWioMq4p4MyZ001lOPAoez9wCpgKE1M99SV8uBvuKRIAlTRGei2w== From: Job Noorman To: Job Noorman , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Andy Gross , Bjorn Andersson , Konrad Dybcio , Henrik Rydberg Cc: Luca Weiss , linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: [PATCH v4 0/3] Add Himax hx83112b touchscreen driver Date: Mon, 17 Oct 2022 12:04:05 +0200 Message-Id: <20221017100409.189293-1-job@noorman.info> MIME-Version: 1.0 X-Rspamd-Queue-Id: 4MrXfH1wd4z9sw2 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?1746929054781593448?= X-GMAIL-MSGID: =?utf-8?q?1746929054781593448?= 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 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: - 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 | 11 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/himax_hx83112b.c | 367 ++++++++++++++++++ 6 files changed, 463 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml create mode 100644 drivers/input/touchscreen/himax_hx83112b.c base-commit: d4a596eddb90114f5f5f32a440057a175517b090