From patchwork Sat Apr 15 02:02:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Selvaraj X-Patchwork-Id: 673713 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 570A1C77B79 for ; Sat, 15 Apr 2023 02:02:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229920AbjDOCCg (ORCPT ); Fri, 14 Apr 2023 22:02:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229543AbjDOCCf (ORCPT ); Fri, 14 Apr 2023 22:02:35 -0400 Received: from mail-yw1-x112e.google.com (mail-yw1-x112e.google.com [IPv6:2607:f8b0:4864:20::112e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7AB94C39; Fri, 14 Apr 2023 19:02:33 -0700 (PDT) Received: by mail-yw1-x112e.google.com with SMTP id 00721157ae682-54f80e173ecso1839337b3.0; Fri, 14 Apr 2023 19:02:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681524153; x=1684116153; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TSpKeQKbhPIuHkn19PAjkNbzGcgOHPtdtSZPV+11/j8=; b=l3tVvOds1VFbZlhPgwxCmPWtQ3Lx3VH7I5ydqaRjSlnbqL8ZG4+YOr1uqVHwAsYANn rMdEC3NZQGw2gpMqb28PP/vYxtcrKLzqOh+eUX7FDPPDUhKE7KMBpVVORh4JQqAHBOI/ 6vRJ/j25xqO7ydDmiv8O5JgC4xCXHkH/B1oui7dA/sfTQb5SibNfMZRz832ExUzqT4mk 02wcVKQvrLYn1rvt/CnE32Q4XBnC0kOIdD3/7bkf/A50+enLGkAZr6A2Q1Zsfqbvuq2W Zs3VFq0I/9ctT96N6zX84kKk4QkNDpWiIQxbW+1UutM7JbvtbSr0ie6ZuzPTMGCatdVO 0i0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681524153; x=1684116153; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TSpKeQKbhPIuHkn19PAjkNbzGcgOHPtdtSZPV+11/j8=; b=BcTZovTztujEWCD1Tn80WpghKPSXNsxrUM4+byGYHZ+Ou0S38JH1Vt+zwHEnpNRh/+ e94/eILeIjjGMLFFVQWT/RzY+4Cc7WYy1cblw82W4YrvLCbXfwKWlDDvYYpmhm/IdMMJ CPXcgeELwKTXiX4BqfHUOF7OjCuptCq9b/rlIz+A7mGzfQNjbzoHS6pbwbo9dQ14J8p1 AVmUSwew6kO9UPejd/M0wtcG0zqrR3YINtBKR1a7WaGKLEENhtfX3GCkZIOv+ZZY5hZy sKZGB43ZTARiWv+3jDhs9AfcP3j1YelBqgaiLxvnWsg113Gx0lI8FO2OAPDvPwUQ1PxJ /JJQ== X-Gm-Message-State: AAQBX9cbQUy3RbunXo2N41ewfIZBSFw9wWwllqYcIyqJPdQtOBPTxUcx t6NUdUJMWtYD6VzCJM4Ivqc= X-Google-Smtp-Source: AKy350aldaow3E3o/EVe7ZE++/ivGz2yDQ+bEqtAE7dnwTbSQErzo4UM2iGL4hacXHriZw9NPc4ZhA== X-Received: by 2002:a81:1752:0:b0:54f:8af0:7328 with SMTP id 79-20020a811752000000b0054f8af07328mr3808101ywx.3.1681524153473; Fri, 14 Apr 2023 19:02:33 -0700 (PDT) Received: from JOEL-DESKTOP.. ([2604:2d80:4d87:cd00:9f51:32d7:1177:67d]) by smtp.gmail.com with ESMTPSA id 68-20020a810a47000000b00545a081847fsm1593607ywk.15.2023.04.14.19.02.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Apr 2023 19:02:33 -0700 (PDT) From: Joel Selvaraj To: Caleb Connolly , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Andy Gross , Bjorn Andersson , Konrad Dybcio , Henrik Rydberg , Arnd Bergmann , Robert Jarzmik , Jeff LaBundy , Markuss Broks , Jean Delvare , Max Krummenacher , Chris Morgan , Job Noorman , Alistair Francis , Hans de Goede , Maxime Ripard Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, Joel Selvaraj Subject: [PATCH v3 1/5] dt-bindings: input: touchscreen: add focaltech, fts5452 touchscreen Date: Fri, 14 Apr 2023 21:02:18 -0500 Message-Id: <20230415020222.216232-2-joelselvaraj.oss@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230415020222.216232-1-joelselvaraj.oss@gmail.com> References: <20230415020222.216232-1-joelselvaraj.oss@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Document the Focaltech FTS touchscreen driver. Signed-off-by: Joel Selvaraj Signed-off-by: Caleb Connolly Reviewed-by: Krzysztof Kozlowski --- .../input/touchscreen/focaltech,fts5452.yaml | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/touchscreen/focaltech,fts5452.yaml diff --git a/Documentation/devicetree/bindings/input/touchscreen/focaltech,fts5452.yaml b/Documentation/devicetree/bindings/input/touchscreen/focaltech,fts5452.yaml new file mode 100644 index 000000000000..28270dc5ed67 --- /dev/null +++ b/Documentation/devicetree/bindings/input/touchscreen/focaltech,fts5452.yaml @@ -0,0 +1,71 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/input/touchscreen/focaltech,fts5452.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Focaltech FTS I2C Touchscreen Controller + +maintainers: + - Joel Selvaraj + - Caleb Connolly + +allOf: + - $ref: touchscreen.yaml# + +properties: + compatible: + enum: + - focaltech,fts5452 + - focaltech,fts8719 + + reg: + const: 0x38 + + interrupts: + maxItems: 1 + + reset-gpios: + maxItems: 1 + + avdd-supply: + description: regulator supplying analog power (2.6V to 3.3V). + + vddio-supply: + description: regulator supplying IO power (1.8V). + +required: + - compatible + - reg + - interrupts + - touchscreen-size-x + - touchscreen-size-y + +unevaluatedProperties: false + +examples: + - | + #include + #include + i2c { + #address-cells = <1>; + #size-cells = <0>; + + touchscreen@38 { + compatible = "focaltech,fts5452"; + reg = <0x38>; + + interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>; + reset-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>; + + avdd-supply = <&vreg_l28a_3p0>; + vddio-supply = <&vreg_l14a_1p88>; + + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-names = "default", "suspend"; + + touchscreen-size-x = <1080>; + touchscreen-size-y = <2160>; + }; + }; From patchwork Sat Apr 15 02:02:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Selvaraj X-Patchwork-Id: 673516 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 7CFD3C77B72 for ; Sat, 15 Apr 2023 02:02:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229989AbjDOCCj (ORCPT ); Fri, 14 Apr 2023 22:02:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229948AbjDOCCi (ORCPT ); Fri, 14 Apr 2023 22:02:38 -0400 Received: from mail-yw1-x112e.google.com (mail-yw1-x112e.google.com [IPv6:2607:f8b0:4864:20::112e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05CEE4C22; Fri, 14 Apr 2023 19:02:36 -0700 (PDT) Received: by mail-yw1-x112e.google.com with SMTP id 00721157ae682-54f80e173ecso1839407b3.0; Fri, 14 Apr 2023 19:02:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681524155; x=1684116155; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=O2uBMdFyxdhtrqhapu2ahRDY229JhTGTzNiLljociWc=; b=aJNwoASB5bWAsVbxFKyU5Z7xWt7+8gnjHA6RzsQsn3iYQGFs3qa0zsWpGTGvgz6xtF SQRe1oTCIsbIA1FmkQ7mKm39akFzx1ci0l/CPh8VTOGAB/MPRUmn1EOTqKvOsOyLA0Gd b6hNkcz7aXHLH0mUiQvnnABYlGFUdunxmuJng0ws+HY6Kz9vBNex42OQ1jth3MH6RnQk XxXWVvrFa5JVIQIOoriPL5tq8MTaxrMkehRiW9Ogg19Jbcib1bcRouRywEdWMY+aHot+ W3MVXWc5FUgER7u7IPcoVCvYDI5uRE8+G3ctfhPLg0FwcYSKjF1xl0e1/hnyRIWi9+QJ PaDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681524155; x=1684116155; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O2uBMdFyxdhtrqhapu2ahRDY229JhTGTzNiLljociWc=; b=UHQQ5qqX966Fqso4/aK65JtMJDo76QkGoK1qcFe/CBpy4BCE53wFT93J8+1kc5b2C6 mB71vOOps3YMMKICBBreaK9FvJ4boBSQ49e5eSFHMD4MRKJPAvxxWJcVxV8xyNE9YvbP dFe4MPayl8SrDo1Fa2QyewsKiOMZ0DGx/KSReOT4v+T3ZIAIQEfxSS/ESX6WX+uSFYtD Qf45AJc16K3y5tKz9/ttVvudzIpvP7PXSPjQRyu65L6rf+ATDfDufof2GccWpCZgMYxj kAsoNgqDgxWVoqRFnryrff4Wk+pY3sgROLcvTYZQXeURQQRdSjEPmEun1lcuRlngryC1 uJaQ== X-Gm-Message-State: AAQBX9cGVp634a3iLPtfLDYNJk6u+e4tgykEj4ehv3Q7edH6hTwn6wnm 23niS6ZXtpfzcT9JPE8CJXU= X-Google-Smtp-Source: AKy350arxCF/jjwyFRLPpO093Ounwgfa0rWQZyPpoYuUEXWFwSxdXhvRTlxIkcZz5adcebIYBQMl8A== X-Received: by 2002:a81:5d7:0:b0:54f:44c9:95d1 with SMTP id 206-20020a8105d7000000b0054f44c995d1mr4024852ywf.0.1681524155530; Fri, 14 Apr 2023 19:02:35 -0700 (PDT) Received: from JOEL-DESKTOP.. ([2604:2d80:4d87:cd00:9f51:32d7:1177:67d]) by smtp.gmail.com with ESMTPSA id 68-20020a810a47000000b00545a081847fsm1593607ywk.15.2023.04.14.19.02.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Apr 2023 19:02:35 -0700 (PDT) From: Joel Selvaraj To: Caleb Connolly , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Andy Gross , Bjorn Andersson , Konrad Dybcio , Henrik Rydberg , Arnd Bergmann , Robert Jarzmik , Jeff LaBundy , Markuss Broks , Jean Delvare , Max Krummenacher , Chris Morgan , Job Noorman , Alistair Francis , Hans de Goede , Maxime Ripard Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, Joel Selvaraj Subject: [PATCH v3 2/5] Input: add driver for Focaltech FTS touchscreen Date: Fri, 14 Apr 2023 21:02:19 -0500 Message-Id: <20230415020222.216232-3-joelselvaraj.oss@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230415020222.216232-1-joelselvaraj.oss@gmail.com> References: <20230415020222.216232-1-joelselvaraj.oss@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org The Focaltech FTS driver supports several variants of focaltech touchscreens found in ~2018 era smartphones including variants found on the PocoPhone F1 and the SHIFT6mq which are already present in mainline. This driver is loosely based on the original driver from Focaltech but has been simplified and largely reworked. Co-developed-by: Caleb Connolly Signed-off-by: Caleb Connolly Signed-off-by: Joel Selvaraj --- MAINTAINERS | 8 + drivers/input/touchscreen/Kconfig | 12 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/focaltech_fts5452.c | 432 ++++++++++++++++++ 4 files changed, 453 insertions(+) create mode 100644 drivers/input/touchscreen/focaltech_fts5452.c diff --git a/MAINTAINERS b/MAINTAINERS index 7ec4ce64f66d..1a3ea61e1f52 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8028,6 +8028,14 @@ L: linux-input@vger.kernel.org S: Maintained F: drivers/input/joystick/fsia6b.c +FOCALTECH FTS5452 TOUCHSCREEN DRIVER +M: Joel Selvaraj +M: Caleb Connolly +L: linux-input@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/input/touchscreen/focaltech,fts5452.yaml +F: drivers/input/touchscreen/focaltech_fts5452.c + FOCUSRITE SCARLETT GEN 2/3 MIXER DRIVER M: Geoffrey D. Bennett L: alsa-devel@alsa-project.org (moderated for non-subscribers) diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig index 1feecd7ed3cb..11af91504969 100644 --- a/drivers/input/touchscreen/Kconfig +++ b/drivers/input/touchscreen/Kconfig @@ -388,6 +388,18 @@ config TOUCHSCREEN_EXC3000 To compile this driver as a module, choose M here: the module will be called exc3000. +config TOUCHSCREEN_FOCALTECH_FTS5452 + tristate "Focaltech FTS Touchscreen" + depends on I2C + help + Say Y here to enable support for I2C connected Focaltech FTS + based touch panels, including the 5452 and 8917 panels. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called focaltech_fts. + config TOUCHSCREEN_FUJITSU tristate "Fujitsu serial touchscreen" select SERIO diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile index 159cd5136fdb..47d78c9cff21 100644 --- a/drivers/input/touchscreen/Makefile +++ b/drivers/input/touchscreen/Makefile @@ -45,6 +45,7 @@ obj-$(CONFIG_TOUCHSCREEN_ELO) += elo.o obj-$(CONFIG_TOUCHSCREEN_EGALAX) += egalax_ts.o obj-$(CONFIG_TOUCHSCREEN_EGALAX_SERIAL) += egalax_ts_serial.o obj-$(CONFIG_TOUCHSCREEN_EXC3000) += exc3000.o +obj-$(CONFIG_TOUCHSCREEN_FOCALTECH_FTS5452) += focaltech_fts5452.o obj-$(CONFIG_TOUCHSCREEN_FUJITSU) += fujitsu_ts.o obj-$(CONFIG_TOUCHSCREEN_GOODIX) += goodix_ts.o obj-$(CONFIG_TOUCHSCREEN_HIDEEP) += hideep.o diff --git a/drivers/input/touchscreen/focaltech_fts5452.c b/drivers/input/touchscreen/focaltech_fts5452.c new file mode 100644 index 000000000000..abf8a2f271ca --- /dev/null +++ b/drivers/input/touchscreen/focaltech_fts5452.c @@ -0,0 +1,432 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * FocalTech touchscreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * Copyright (c) 2021 Caleb Connolly + * Copyright (c) 2023 Joel Selvaraj + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define FTS_REG_CHIP_ID_H 0xA3 +#define FTS_REG_CHIP_ID_L 0x9F + +#define FTS_MAX_POINTS_SUPPORT 10 +#define FTS_ONE_TOUCH_LEN 6 + +#define FTS_TOUCH_X_H_OFFSET 3 +#define FTS_TOUCH_X_L_OFFSET 4 +#define FTS_TOUCH_Y_H_OFFSET 5 +#define FTS_TOUCH_Y_L_OFFSET 6 +#define FTS_TOUCH_PRESSURE_OFFSET 7 +#define FTS_TOUCH_AREA_OFFSET 8 +#define FTS_TOUCH_TYPE_OFFSET 3 +#define FTS_TOUCH_ID_OFFSET 5 + +#define FTS_TOUCH_DOWN 0 +#define FTS_TOUCH_UP 1 +#define FTS_TOUCH_CONTACT 2 + +#define FTS_INTERVAL_READ_REG_MS 100 +#define FTS_TIMEOUT_READ_REG_MS 2000 + +#define FTS_DRIVER_NAME "fts-i2c" + +static const u16 fts_chip_types[] = { + 0x5452, + 0x8719, +}; + +struct fts_ts_data { + struct i2c_client *client; + struct input_dev *input_dev; + struct regmap *regmap; + int irq; + struct regulator_bulk_data regulators[2]; + u8 max_touch_points; + u8 *point_buf; + int point_buf_size; + struct gpio_desc *reset_gpio; + struct touchscreen_properties prop; +}; + +struct fts_i2c_chip_data { + int max_touch_points; +}; + +int fts_check_status(struct fts_ts_data *data) +{ + int error, i = 0, count = 0; + unsigned int val, id; + + do { + error = regmap_read(data->regmap, FTS_REG_CHIP_ID_L, &id); + if (error) + dev_err(&data->client->dev, "I2C read failed: %d\n", error); + + error = regmap_read(data->regmap, FTS_REG_CHIP_ID_H, &val); + if (error) + dev_err(&data->client->dev, "I2C read failed: %d\n", error); + + id |= val << 8; + + for (i = 0; i < ARRAY_SIZE(fts_chip_types); i++) + if (id == fts_chip_types[i]) + return 0; + + count++; + msleep(FTS_INTERVAL_READ_REG_MS); + } while ((count * FTS_INTERVAL_READ_REG_MS) < FTS_TIMEOUT_READ_REG_MS); + + return -EIO; +} + +static int fts_report_touch(struct fts_ts_data *data) +{ + struct input_dev *input_dev = data->input_dev; + int base; + unsigned int x, y, z, maj; + u8 slot, type; + int error, i = 0; + + u8 *buf = data->point_buf; + + memset(buf, 0, data->point_buf_size); + + error = regmap_bulk_read(data->regmap, 0, buf, data->point_buf_size); + if (error) { + dev_err(&data->client->dev, "I2C read failed: %d\n", error); + return error; + } + + for (i = 0; i < data->max_touch_points; i++) { + base = FTS_ONE_TOUCH_LEN * i; + + slot = buf[base + FTS_TOUCH_ID_OFFSET] >> 4; + if (slot >= data->max_touch_points) + break; + + x = ((buf[base + FTS_TOUCH_X_H_OFFSET] & 0x0F) << 8) + + (buf[base + FTS_TOUCH_X_L_OFFSET] & 0xFF); + y = ((buf[base + FTS_TOUCH_Y_H_OFFSET] & 0x0F) << 8) + + (buf[base + FTS_TOUCH_Y_L_OFFSET] & 0xFF); + + z = buf[base + FTS_TOUCH_PRESSURE_OFFSET]; + if (z == 0) + z = 0x3f; + + maj = buf[base + FTS_TOUCH_AREA_OFFSET] >> 4; + if (maj == 0) + maj = 0x09; + + type = buf[base + FTS_TOUCH_TYPE_OFFSET] >> 6; + + input_mt_slot(input_dev, slot); + if (type == FTS_TOUCH_DOWN || type == FTS_TOUCH_CONTACT) { + input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, true); + touchscreen_report_pos(data->input_dev, &data->prop, x, y, true); + input_report_abs(input_dev, ABS_MT_PRESSURE, z); + input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, maj); + input_report_key(data->input_dev, BTN_TOUCH, 1); + } else { + input_report_key(data->input_dev, BTN_TOUCH, 0); + input_mt_report_slot_inactive(input_dev); + } + } + input_mt_sync_frame(input_dev); + input_sync(input_dev); + + return 0; +} + +static irqreturn_t fts_ts_interrupt(int irq, void *dev_id) +{ + struct fts_ts_data *data = dev_id; + + return fts_report_touch(data) ? IRQ_NONE : IRQ_HANDLED; +} + +static void fts_power_off(void *d) +{ + struct fts_ts_data *data = d; + + regulator_bulk_disable(ARRAY_SIZE(data->regulators), data->regulators); +} + +static int fts_start(struct fts_ts_data *data) +{ + int error; + + error = regulator_bulk_enable(ARRAY_SIZE(data->regulators), + data->regulators); + if (error) { + dev_err(&data->client->dev, "failed to enable regulators\n"); + return error; + } + + gpiod_set_value_cansleep(data->reset_gpio, 0); + msleep(200); + + enable_irq(data->irq); + + return 0; +} + +static int fts_stop(struct fts_ts_data *data) +{ + disable_irq(data->irq); + gpiod_set_value_cansleep(data->reset_gpio, 1); + fts_power_off(data); + + return 0; +} + +static int fts_input_open(struct input_dev *dev) +{ + struct fts_ts_data *data = input_get_drvdata(dev); + int error; + + error = fts_start(data); + if (error) + return error; + + error = fts_check_status(data); + if (error) { + dev_err(&data->client->dev, "Failed to start or unsupported chip"); + return error; + } + + return 0; +} + +static void fts_input_close(struct input_dev *dev) +{ + struct fts_ts_data *data = input_get_drvdata(dev); + + fts_stop(data); +} + +static int fts_input_init(struct fts_ts_data *data) +{ + struct device *dev = &data->client->dev; + struct input_dev *input_dev; + int error = 0; + + input_dev = devm_input_allocate_device(dev); + if (!input_dev) + return -ENOMEM; + + data->input_dev = input_dev; + + input_dev->name = FTS_DRIVER_NAME; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = dev; + input_dev->open = fts_input_open; + input_dev->close = fts_input_close; + input_set_drvdata(input_dev, data); + + input_set_capability(input_dev, EV_ABS, ABS_MT_POSITION_X); + input_set_capability(input_dev, EV_ABS, ABS_MT_POSITION_Y); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(input_dev, ABS_MT_PRESSURE, 0, 255, 0, 0); + + touchscreen_parse_properties(input_dev, true, &data->prop); + if (!data->prop.max_x || !data->prop.max_y) { + dev_err(dev, + "touchscreen-size-x and/or touchscreen-size-y not set in device properties\n"); + return -EINVAL; + } + + error = input_mt_init_slots(input_dev, data->max_touch_points, + INPUT_MT_DIRECT); + if (error) + return error; + + data->point_buf_size = (data->max_touch_points * FTS_ONE_TOUCH_LEN) + 3; + data->point_buf = devm_kzalloc(dev, data->point_buf_size, GFP_KERNEL); + if (!data->point_buf) + return -ENOMEM; + + error = input_register_device(input_dev); + if (error) { + dev_err(dev, "Failed to register input device\n"); + return error; + } + + return 0; +} + +static const struct regmap_config fts_ts_i2c_regmap_config = { + .reg_bits = 8, + .val_bits = 8, +}; + +static int fts_ts_probe(struct i2c_client *client) +{ + const struct i2c_device_id *id = i2c_client_get_device_id(client); + const struct fts_i2c_chip_data *chip_data; + struct fts_ts_data *data; + int error = 0; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "I2C not supported"); + return -ENODEV; + } + + if (!client->irq) { + dev_err(&client->dev, "No irq specified\n"); + return -EINVAL; + } + + data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + chip_data = device_get_match_data(&client->dev); + if (!chip_data) + chip_data = (const struct fts_i2c_chip_data *)id->driver_data; + if (!chip_data || !chip_data->max_touch_points) { + dev_err(&client->dev, "invalid or missing chip data\n"); + return -EINVAL; + } + if (chip_data->max_touch_points > FTS_MAX_POINTS_SUPPORT) { + dev_err(&client->dev, + "invalid chip data, max_touch_points should be less than or equal to %d\n", + FTS_MAX_POINTS_SUPPORT); + return -EINVAL; + } + data->max_touch_points = chip_data->max_touch_points; + + data->client = client; + i2c_set_clientdata(client, data); + + data->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", GPIOD_OUT_HIGH); + if (IS_ERR(data->reset_gpio)) { + error = PTR_ERR(data->reset_gpio); + dev_err(&client->dev, "Failed to request reset gpio, error %d\n", error); + return error; + } + + data->regmap = devm_regmap_init_i2c(client, &fts_ts_i2c_regmap_config); + if (IS_ERR(data->regmap)) { + error = PTR_ERR(data->regmap); + dev_err(&client->dev, "regmap allocation failed, error %d\n", error); + return error; + } + + /* + * AVDD is the analog voltage supply (2.6V to 3.3V) + * VDDIO is the digital voltage supply (1.8V) + */ + data->regulators[0].supply = "avdd"; + data->regulators[1].supply = "vddio"; + error = devm_regulator_bulk_get(&client->dev, ARRAY_SIZE(data->regulators), + data->regulators); + if (error) { + dev_err(&client->dev, "Failed to get regulators %d\n", error); + return error; + } + + error = devm_add_action_or_reset(&client->dev, fts_power_off, data); + if (error) { + dev_err(&client->dev, "failed to install power off handler\n"); + return error; + } + + error = devm_request_threaded_irq(&client->dev, client->irq, NULL, + fts_ts_interrupt, IRQF_ONESHOT, + client->name, data); + if (error) { + dev_err(&client->dev, "Failed to request IRQ: %d\n", error); + return error; + } + + error = fts_input_init(data); + if (error) + return error; + + return 0; +} + +static int fts_pm_suspend(struct device *dev) +{ + struct fts_ts_data *data = dev_get_drvdata(dev); + + mutex_lock(&data->input_dev->mutex); + + if (input_device_enabled(data->input_dev)) + fts_stop(data); + + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +static int fts_pm_resume(struct device *dev) +{ + struct fts_ts_data *data = dev_get_drvdata(dev); + int error = 0; + + mutex_lock(&data->input_dev->mutex); + + if (input_device_enabled(data->input_dev)) + error = fts_start(data); + + mutex_unlock(&data->input_dev->mutex); + + return error; +} + +static DEFINE_SIMPLE_DEV_PM_OPS(fts_dev_pm_ops, fts_pm_suspend, fts_pm_resume); + +static const struct fts_i2c_chip_data fts5452_chip_data = { + .max_touch_points = 5, +}; + +static const struct fts_i2c_chip_data fts8719_chip_data = { + .max_touch_points = 10, +}; + +static const struct i2c_device_id fts_i2c_id[] = { + { .name = "fts5452", .driver_data = (long)&fts5452_chip_data }, + { .name = "fts8719", .driver_data = (long)&fts8719_chip_data }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(i2c, fts_i2c_id); + +static const struct of_device_id fts_of_match[] = { + { .compatible = "focaltech,fts5452", .data = &fts5452_chip_data }, + { .compatible = "focaltech,fts8719", .data = &fts8719_chip_data }, + { /* sentinel */ } +}; + +MODULE_DEVICE_TABLE(of, fts_of_match); + +static struct i2c_driver fts_ts_driver = { + .probe_new = fts_ts_probe, + .id_table = fts_i2c_id, + .driver = { + .name = FTS_DRIVER_NAME, + .pm = pm_sleep_ptr(&fts_dev_pm_ops), + .of_match_table = fts_of_match, + }, +}; +module_i2c_driver(fts_ts_driver); + +MODULE_AUTHOR("Joel Selvaraj "); +MODULE_AUTHOR("Caleb Connolly "); +MODULE_DESCRIPTION("Focaltech Touchscreen Driver"); +MODULE_LICENSE("GPL"); From patchwork Sat Apr 15 02:02:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Selvaraj X-Patchwork-Id: 673712 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 B9080C77B7D for ; Sat, 15 Apr 2023 02:02:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230061AbjDOCCm (ORCPT ); Fri, 14 Apr 2023 22:02:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229954AbjDOCCj (ORCPT ); Fri, 14 Apr 2023 22:02:39 -0400 Received: from mail-yw1-x112d.google.com (mail-yw1-x112d.google.com [IPv6:2607:f8b0:4864:20::112d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4BC3D59EE; Fri, 14 Apr 2023 19:02:38 -0700 (PDT) Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-54f0bb9cb5aso2042597b3.0; Fri, 14 Apr 2023 19:02:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681524157; x=1684116157; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+k6/HWFvrBSAMHaAZKtCLz3aH8Bzj4+yG94o53ig8Ws=; b=lbMIvQminlUtIFTdUVAQlZ+p3hgaCZqHMeTT3nySBbURV+jlxZox448ZrTcBGYwCs2 XNC+f6s6Zm1jOUDvcipdl6Os9BBV2KXTAk7ZpWw8/EkkT13WYxT2EqOfyZMgIzaj7Wlu Z+HNL15CUfWWGIfaBxN1XDs9TYFQI18wJ8i4MFvvjza17FvXZPBiXMWqCKfMKySDGTVE h7Q34gCNx/hPl7vsvjXTeCEGpIlWbXewJxchmtO6ui/1qnUWBFG4Cwr35FSmGSHoKsV+ u0dSJG3Gr88vvhdLRGFNTDWgjTBTyht0ewZT+2kxVE5Cg/xbuCpR1mv/XefbsCDnA7ol umnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681524157; x=1684116157; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+k6/HWFvrBSAMHaAZKtCLz3aH8Bzj4+yG94o53ig8Ws=; b=koq0MZXQvGX843EmN2bkGOTYIaDPA1giDVIIHcX0VNCveH2VnOTaA23hrY/gnKr9yp eVFtuPZlQxWQvHR3Rk//ood+Pb7xACZ3ZUXiN/mDd4hvJvKkLMmTPfIh4OzJdNSp1aPk BtCfca2mq9D/59KPmPnTyndK1Vu5XVSOk6my/SusFuMAQIEcYa7+HvTle58FlMTvA39u g2xjgR5QNfu6jj/2sQPZmUVXq4CKALSInuWqzxda61dzndagNKSAtfD5YDyQfBTIYvKi oSjjKaahzGLPFmgy0QgnWuVXBw57jaOh6D3Gz60DRl/jm3vCMOf5p0bYQITYYG51rMO4 OJDQ== X-Gm-Message-State: AAQBX9cUix2/RVPrshEbmLwOW/p35Nk6BOK3t+JigKyIQ8MOTolIFBRD zHIe69iikmTCPY238n9ufFE= X-Google-Smtp-Source: AKy350Y/S5kSuo1z5WOZNbHW1iWIU/U90BLjVvXRsptE5L9df0RJ1udCUF281F2gswQLMNPF51dZ6Q== X-Received: by 2002:a81:7853:0:b0:54f:8a61:d859 with SMTP id t80-20020a817853000000b0054f8a61d859mr4482158ywc.5.1681524157446; Fri, 14 Apr 2023 19:02:37 -0700 (PDT) Received: from JOEL-DESKTOP.. ([2604:2d80:4d87:cd00:9f51:32d7:1177:67d]) by smtp.gmail.com with ESMTPSA id 68-20020a810a47000000b00545a081847fsm1593607ywk.15.2023.04.14.19.02.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Apr 2023 19:02:37 -0700 (PDT) From: Joel Selvaraj To: Caleb Connolly , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Andy Gross , Bjorn Andersson , Konrad Dybcio , Henrik Rydberg , Arnd Bergmann , Robert Jarzmik , Jeff LaBundy , Markuss Broks , Jean Delvare , Max Krummenacher , Chris Morgan , Job Noorman , Alistair Francis , Hans de Goede , Maxime Ripard Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, Joel Selvaraj Subject: [PATCH v3 3/5] arm64: dts: qcom: sdm845-xiaomi-beryllium-common: add touchscreen related nodes Date: Fri, 14 Apr 2023 21:02:20 -0500 Message-Id: <20230415020222.216232-4-joelselvaraj.oss@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230415020222.216232-1-joelselvaraj.oss@gmail.com> References: <20230415020222.216232-1-joelselvaraj.oss@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Enable qupv3_id_1 and gpi_dma1 as they are required for configuring touchscreen. Also add pinctrl configurations needed for touchscreen. These are common for both the tianma and ebbg touchscreen variant. In the subsequent patch, we will initially enable support for the focaltech touchscreen used in the EBBG variant. This is done in preparation for that. Signed-off-by: Joel Selvaraj --- .../qcom/sdm845-xiaomi-beryllium-common.dtsi | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi index 5ed975cc6ecb..b34ba46080ce 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi @@ -268,6 +268,10 @@ &gmu { status = "okay"; }; +&gpi_dma1 { + status = "okay"; +}; + &gpu { status = "okay"; @@ -376,6 +380,10 @@ &qupv3_id_0 { status = "okay"; }; +&qupv3_id_1 { + status = "okay"; +}; + &sdhc_2 { status = "okay"; @@ -481,6 +489,35 @@ sdc2_card_det_n: sd-card-det-n-state { function = "gpio"; bias-pull-up; }; + + ts_int_default: ts-int-default-state { + pins = "gpio31"; + function = "gpio"; + drive-strength = <16>; + bias-pull-down; + }; + + ts_reset_default: ts-reset-default-state { + pins = "gpio32"; + function = "gpio"; + drive-strength = <16>; + output-high; + }; + + ts_int_sleep: ts-int-sleep-state { + pins = "gpio31"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + ts_reset_sleep: ts-reset-sleep-state { + pins = "gpio32"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + output-low; + }; }; &uart6 { From patchwork Sat Apr 15 02:02:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Selvaraj X-Patchwork-Id: 673515 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 BFF0BC77B77 for ; Sat, 15 Apr 2023 02:02:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230032AbjDOCCo (ORCPT ); Fri, 14 Apr 2023 22:02:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43734 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230063AbjDOCCm (ORCPT ); Fri, 14 Apr 2023 22:02:42 -0400 Received: from mail-yw1-x1132.google.com (mail-yw1-x1132.google.com [IPv6:2607:f8b0:4864:20::1132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5719F6EBB; Fri, 14 Apr 2023 19:02:40 -0700 (PDT) Received: by mail-yw1-x1132.google.com with SMTP id 00721157ae682-54fdf7cd390so861467b3.1; Fri, 14 Apr 2023 19:02:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681524159; x=1684116159; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XRYjuOFtFMXh2I5E0ogIAK80X8pJ9UuA0I2DICP2Jj0=; b=q01K+eavqhDqxmY6O3BnpLDHn84NHxAp+tp0X8w9NK7oh+Lj2KjIt73m0fPerVAENl /Uztms3HzIthZVeDhJRMKKXsspVsuOMtsP8T3s3VDx8/elFoL+vag34muSYMdC/6EcQ9 1OCNMROTMc6xjBYNsPCauStERIwOslyNStFOsd2vnnU6wQoHw/60+a7+/5c3GPHsjGur vX2MENVj4M0xOixn59z3bAbm+0NGCuXLqHmUV17uZ4tV9fup0eSN70xXWl7XQ/nNMarQ TKZMOm8Da/lvKz1p13+py1FzBnrZUu64086DtWrvAYfw9B/ysCstwpVjDw0TaAvGgw6x nm2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681524159; x=1684116159; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XRYjuOFtFMXh2I5E0ogIAK80X8pJ9UuA0I2DICP2Jj0=; b=PZLn4XqXSBs1gLKwy8c44eevi5lu750WjzDvGpq/eB8f5R0Q0nseSu3a6/vg0Lacfd jMpXpR3/Rum6JZd5YhQ1xAAp1sek35+s/Pb45pGLVOnI0//w9NwTfrO8LiWkZZQM/Pfj 7ym/qp6opHJu0Zk4hEioWNtMcZ3BlOcXkPy5dipzgGZLETSfM++EbUvDNgN0L9tEJWQQ IGjYQhwX66idyFPLZD2q5V47DO1MmsVyE65ZgUSekQQ1HOnJTzjBh+XU3lc+teoOzfgz iCUGxa+QraA/Pg+/PsCiHoQaOZB9WR/k88GDNm18StR909KH1RsjughEuGQqoTLAo8y3 nXBg== X-Gm-Message-State: AAQBX9fIvXsL1bp6G3jeEoNEj2mwQ2HU9KMD1D+vPPsmpruSb9L7KKdV ZL7sLEL9W7ZsDnreIA45Hr4= X-Google-Smtp-Source: AKy350awlC76WlaWGXoFsIWVKz+9gED652/3+5wnud2dqYq54YV7SBAVZb8Nes9TMvuZTsIIJQkmdg== X-Received: by 2002:a81:130e:0:b0:54c:c7a:5c8a with SMTP id 14-20020a81130e000000b0054c0c7a5c8amr3738074ywt.1.1681524159319; Fri, 14 Apr 2023 19:02:39 -0700 (PDT) Received: from JOEL-DESKTOP.. ([2604:2d80:4d87:cd00:9f51:32d7:1177:67d]) by smtp.gmail.com with ESMTPSA id 68-20020a810a47000000b00545a081847fsm1593607ywk.15.2023.04.14.19.02.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Apr 2023 19:02:39 -0700 (PDT) From: Joel Selvaraj To: Caleb Connolly , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Andy Gross , Bjorn Andersson , Konrad Dybcio , Henrik Rydberg , Arnd Bergmann , Robert Jarzmik , Jeff LaBundy , Markuss Broks , Jean Delvare , Max Krummenacher , Chris Morgan , Job Noorman , Alistair Francis , Hans de Goede , Maxime Ripard Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, Joel Selvaraj Subject: [PATCH v3 4/5] arm64: dts: qcom: sdm845-xiaomi-beryllium-ebbg: introduce support for fts touchscreen Date: Fri, 14 Apr 2023 21:02:21 -0500 Message-Id: <20230415020222.216232-5-joelselvaraj.oss@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230415020222.216232-1-joelselvaraj.oss@gmail.com> References: <20230415020222.216232-1-joelselvaraj.oss@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org The Poco F1 EBBG variant uses Focaltech FTS touchscreen. Introduce support for it. Signed-off-by: Joel Selvaraj Reviewed-by: Konrad Dybcio --- .../dts/qcom/sdm845-xiaomi-beryllium-ebbg.dts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-ebbg.dts b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-ebbg.dts index 76931ebad065..26e77979cdab 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-ebbg.dts +++ b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-ebbg.dts @@ -13,3 +13,24 @@ &display_panel { compatible = "ebbg,ft8719"; status = "okay"; }; + +&i2c14 { + status = "okay"; + + touchscreen@38 { + compatible = "focaltech,fts8719"; + reg = <0x38>; + + interrupts-extended = <&tlmm 31 IRQ_TYPE_EDGE_FALLING>; + reset-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; + + vddio-supply = <&vreg_l14a_1p8>; + + pinctrl-0 = <&ts_int_default &ts_reset_default>; + pinctrl-1 = <&ts_int_sleep &ts_reset_sleep>; + pinctrl-names = "default", "sleep"; + + touchscreen-size-x = <1080>; + touchscreen-size-y = <2246>; + }; +}; From patchwork Sat Apr 15 02:02:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Selvaraj X-Patchwork-Id: 673711 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 244D5C77B72 for ; Sat, 15 Apr 2023 02:03:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230183AbjDOCDB (ORCPT ); Fri, 14 Apr 2023 22:03:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43754 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230107AbjDOCCn (ORCPT ); Fri, 14 Apr 2023 22:02:43 -0400 Received: from mail-yw1-x1132.google.com (mail-yw1-x1132.google.com [IPv6:2607:f8b0:4864:20::1132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 210DC83D3; Fri, 14 Apr 2023 19:02:42 -0700 (PDT) Received: by mail-yw1-x1132.google.com with SMTP id 00721157ae682-54f8b687a06so1581127b3.0; Fri, 14 Apr 2023 19:02:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681524161; x=1684116161; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QfFLYwoRbIcS+5n1zFSGq1E+iP2KHQOy5/Vbet45Gu4=; b=g/VYV2yqnH2eA0lEeYtVv85WVktmO9HxBMfNW7J4AQ16iR7EJE4Hi3vJTo7C/x7zMo usfA55rBiBVMwtJcRm8avc1L+Q6WT9Nc8Oe8AJN9zOmfH0hiIA8U+cCdS3ku4gHvVTTo WfpXhMQxgWrUwWEFVGhpEcirALG7LCfwniOKRzVc1TYlQOBPsoWaZnb66b1ZwvHSM5c6 MtvkqICCDlYW4EXUSPZ58vwbUHP0O5kKYIX7GzAVdNG4hHxZRxss/9c3csUFgc/EshwH D5BljrSYJBTCk7SqDUyV1rzZ8THD+PVsn6SIDciGuKHwcYmQgnXjJuToVof8PUaEwD+z 0kIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681524161; x=1684116161; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QfFLYwoRbIcS+5n1zFSGq1E+iP2KHQOy5/Vbet45Gu4=; b=beuyYd9Jifd8LXgEAUqMTJDChNHnVBXcr820W3SvstwgtjU0jTDdPfOqYQwHlTct1M kurnswYEvE/9HORrsVNxIhV8zAZhGSVttutsjdd6Rm/VfNnhwWm/UwV3gySGf19mlAQt fTldk853qSEvO0ltK6WuHKzkdNT8D71QU3JxgZTt9gc2TmQ+tLWvcO2dL63Pcd5us9DK z55lgvGBluoM25VmaYmmgO4oE81FNTHcm/1J1n0/8EZhg17lN8IDUlgak/DpcmAFaXK+ 8LqCQHSJE+Nl+pmOCZAgRym5JaDOhvMNmD4i+L7EAOhhzD8EpGZjAV0LW7b2MbrLFjjX 6KmQ== X-Gm-Message-State: AAQBX9e8CjOubDBj6bR/4hP02sMqBT3i3qEXdIGE4KchNdr+u/nsCTwf IHQ0F1xSePRK67yTxoDio/A= X-Google-Smtp-Source: AKy350Z34NCtOeyDltAA+YqPY7xdtbn3jTq23ob5FORw1LL+hPAy4r721FNIfl2gkhYLEAIW28ad6Q== X-Received: by 2002:a81:1252:0:b0:54f:dc9b:c994 with SMTP id 79-20020a811252000000b0054fdc9bc994mr3789942yws.1.1681524161272; Fri, 14 Apr 2023 19:02:41 -0700 (PDT) Received: from JOEL-DESKTOP.. ([2604:2d80:4d87:cd00:9f51:32d7:1177:67d]) by smtp.gmail.com with ESMTPSA id 68-20020a810a47000000b00545a081847fsm1593607ywk.15.2023.04.14.19.02.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Apr 2023 19:02:41 -0700 (PDT) From: Joel Selvaraj To: Caleb Connolly , Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Andy Gross , Bjorn Andersson , Konrad Dybcio , Henrik Rydberg , Arnd Bergmann , Robert Jarzmik , Jeff LaBundy , Markuss Broks , Jean Delvare , Max Krummenacher , Chris Morgan , Job Noorman , Alistair Francis , Hans de Goede , Maxime Ripard Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, Joel Selvaraj Subject: [PATCH v3 5/5] arm64: dts: qcom: sdm845-shift-axolotl: update focaltech touchscreen properties Date: Fri, 14 Apr 2023 21:02:22 -0500 Message-Id: <20230415020222.216232-6-joelselvaraj.oss@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230415020222.216232-1-joelselvaraj.oss@gmail.com> References: <20230415020222.216232-1-joelselvaraj.oss@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org The touchscreen nodes were added before the driver patches were merged. Update the focaltech touchscreen properties to match with the upstreamed focaltech driver. Also, the touchscreen used is in axolotl is fts5452 and not fts8719. Signed-off-by: Joel Selvaraj Reviewed-by: Caleb Connolly --- .../boot/dts/qcom/sdm845-shift-axolotl.dts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts index b54e304abf71..70286e53e000 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts +++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts @@ -474,23 +474,21 @@ &i2c5 { status = "okay"; touchscreen@38 { - compatible = "focaltech,fts8719"; + compatible = "focaltech,fts5452"; reg = <0x38>; - wakeup-source; - interrupt-parent = <&tlmm>; - interrupts = <125 0x2>; - vdd-supply = <&vreg_l28a_3p0>; - vcc-i2c-supply = <&vreg_l14a_1p88>; - pinctrl-names = "default", "suspend"; + interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>; + reset-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>; + + avdd-supply = <&vreg_l28a_3p0>; + vddio-supply = <&vreg_l14a_1p88>; + pinctrl-0 = <&ts_int_active &ts_reset_active>; pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-names = "default", "suspend"; - reset-gpio = <&tlmm 99 GPIO_ACTIVE_HIGH>; - irq-gpio = <&tlmm 125 GPIO_TRANSITORY>; touchscreen-size-x = <1080>; touchscreen-size-y = <2160>; - focaltech,max-touch-number = <5>; }; };