From patchwork Wed Apr 26 09:32:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fei Shao X-Patchwork-Id: 87774 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp116822vqo; Wed, 26 Apr 2023 02:41:38 -0700 (PDT) X-Google-Smtp-Source: AKy350b4FAaGs0ovps3gLbNAC3J1HGVrp7KIPPEULQ0p9w54T7NsnSNogq7mWGPSY1m8V44C/5NY X-Received: by 2002:a05:6a21:3396:b0:f0:6aaf:1abf with SMTP id yy22-20020a056a21339600b000f06aaf1abfmr27914042pzb.4.1682502098545; Wed, 26 Apr 2023 02:41:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682502098; cv=none; d=google.com; s=arc-20160816; b=x4wmxmgQf0suynzhKXVWQGIBHbowdx2296ycqQcybepAtOgY2d189rJ1HiEOFOER74 eMi5hXnHDnGyd/i6mstATd2mt2x9fgISlodvzQqKNGR+8bOsIFgeauoTUaaOlo3Du7eN 6Iz7w1pWCKamaPEdymAIzeUZDq2OBw4Wl3Ju/KWShg8xoaRiD147rHxj7qPdyf01kGBF S6UF9G5JXPHflisGT5x5S64tVNzcwXtkoee3YOyHPwatRUfrQWmPlp20gytqfBHJtEPO lbz4M0Hffmm+PP4d7+rGxbdTiee/2uv70+VfO0w5GeGbZeavrQMfPwQdMCdRNUgbcG4A f8EQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=uvPQ+p6p7LPXccnkrXRgDzY3F78Ex853x9Swf3yMEqY=; b=yi8cqh3ceIxnFLim5jI4zVqNXlAhhMUw96WfhsrVv5c+9BUwJY1AOaXBxyMgAdvSTP kwILMn/krhkiVbZTbVqclqo8TxEMo+1uLWal/3YysVCtJGVL+S6wBH0a5yISc8z2t3uu kjHdI543nrfRY3p8vmK9vxTPMnENH1f3bpoODwFw55eoCSn/hlunJbuyn3ljIyINUQ3B FEiaCaMFT6VfbmKgvB0uPVde9YRZBC+9zBbubmPdgLbRYZ2q6lOBrAH9CxO83wrViIbN LtREycT7VhfG5yhbZUUHDFEOSRdGtzQJrI1DKUIJtt2l37KxYLu+EOrKdW2I2HYxZ0sr TlEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=UN9smnlg; 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=chromium.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z31-20020a63191f000000b00514442657adsi15926715pgl.547.2023.04.26.02.41.22; Wed, 26 Apr 2023 02:41:38 -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=@chromium.org header.s=google header.b=UN9smnlg; 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=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240348AbjDZJdo (ORCPT + 99 others); Wed, 26 Apr 2023 05:33:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57110 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240299AbjDZJdj (ORCPT ); Wed, 26 Apr 2023 05:33:39 -0400 Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com [IPv6:2607:f8b0:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7997D1702 for ; Wed, 26 Apr 2023 02:33:38 -0700 (PDT) Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-517bb01bac9so4929183a12.0 for ; Wed, 26 Apr 2023 02:33:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1682501618; x=1685093618; 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=uvPQ+p6p7LPXccnkrXRgDzY3F78Ex853x9Swf3yMEqY=; b=UN9smnlgDaW5ESWDJZoeDD7OlyBxrsIf28fmOhRxgm4lMwF6p8cR8ZIYRXZbuDIspr YybIhG7VpOorRriLB+GvVyUHM/p1Hb6FjJ+OLjzchNz19jZmWkbZgywjgs17uqCMeIlf fA4mCMYzACCi0X1GaK4qaVvMvfnlCYLoP87mI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682501618; x=1685093618; 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=uvPQ+p6p7LPXccnkrXRgDzY3F78Ex853x9Swf3yMEqY=; b=W2533xQljCVv5gB390zGF2Riw2/9JsKUD5CWemfD5RogpMpbLE7VvbRNr4dLapCdJU BOI+LZRLWytsjicLKL3Avb+q4FKBneiJKQwlFm1RFTy5NuF9vR1QmmZGQB9btndnR3+N fkHe2i7RA7PFwxcHoXl7vwowAeuzNimTMSjsZlJjrfC1L6NzyBz7/zYNFD3G6wMJcenM VU8H+ahdNfkj7WVFwS8BrbYKSNrIMAlG3tu6mXHb2JJVVxo9jEDgXOlep8eyRjn8abuV YP7Crtq4uH/ZkexXMSLXxtOOjISw+1PbYjareEElNfvFn+T/FbQnehfg3ae7ybm17yQG BhUw== X-Gm-Message-State: AAQBX9eqQUx9cgiVb4uTwLg0NyqJHR7NuQMvtymshZtXUfB9w1YjbSHP qEDuFUXPU/8qV7QCc7szNyRuOA== X-Received: by 2002:a05:6a20:7350:b0:f2:745a:b87e with SMTP id v16-20020a056a20735000b000f2745ab87emr22849547pzc.12.1682501617975; Wed, 26 Apr 2023 02:33:37 -0700 (PDT) Received: from fshao-glinux.tpe.corp.google.com ([2401:fa00:1:10:dcf6:797f:140d:6d]) by smtp.gmail.com with ESMTPSA id g1-20020a056a00078100b005810c4286d6sm10730075pfu.0.2023.04.26.02.33.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Apr 2023 02:33:37 -0700 (PDT) From: Fei Shao To: Jeff LaBundy , Douglas Anderson , Benjamin Tissoires , Rob Herring Cc: linux-mediatek , Fei Shao , Matthias Brugger , Dmitry Torokhov , Krzysztof Kozlowski , devicetree@vger.kernel.org, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] dt-bindings: input: goodix: Add "goodix,no-reset-during-suspend" property Date: Wed, 26 Apr 2023 17:32:29 +0800 Message-ID: <20230426093231.1466984-2-fshao@chromium.org> X-Mailer: git-send-email 2.40.1.495.gc816e09b53d-goog In-Reply-To: <20230426093231.1466984-1-fshao@chromium.org> References: <20230426093231.1466984-1-fshao@chromium.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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?1764231320898177061?= X-GMAIL-MSGID: =?utf-8?q?1764231320898177061?= We observed that on Chromebook device Steelix, if Goodix GT7375P touchscreen is powered in suspend (because, for example, it connects to an always-on regulator) and with the reset GPIO asserted, it will introduce about 14mW power leakage. To address that, we add this property to skip reset during suspend. If it's set, the driver will stop asserting the reset GPIO during power-down. Refer to the comments in the driver for details. Signed-off-by: Fei Shao Reviewed-by: Douglas Anderson Reviewed-by: Matthias Brugger --- Changes in v2: - Use a more accurate property name and with "goodix," prefix. .../devicetree/bindings/input/goodix,gt7375p.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml b/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml index ce18d7dadae2..1edad1da1196 100644 --- a/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml +++ b/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml @@ -43,6 +43,15 @@ properties: itself as long as it allows the main board to make signals compatible with what the touchscreen is expecting for its IO rails. + goodix,no-reset-during-suspend: + description: + Set this to true to enforce the driver to not assert the reset GPIO + during suspend. + Due to potential touchscreen hardware flaw, back-powering could happen in + suspend if the power supply is on and with active-low reset GPIO asserted. + This property is used to avoid the back-powering issue. + type: boolean + required: - compatible - reg From patchwork Wed Apr 26 09:32:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fei Shao X-Patchwork-Id: 87775 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp116863vqo; Wed, 26 Apr 2023 02:41:45 -0700 (PDT) X-Google-Smtp-Source: AKy350ZVtUFkRgVzXmg124w6VbrXaatdaUz8Bb6jnAcbJbHRop5ftTeK6b+LBxtK5bjBEIn289XW X-Received: by 2002:a05:6a20:9194:b0:f5:35f2:3fec with SMTP id v20-20020a056a20919400b000f535f23fecmr11827109pzd.50.1682502105046; Wed, 26 Apr 2023 02:41:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682502105; cv=none; d=google.com; s=arc-20160816; b=nUwTMJnoWWXJjpiUP5X2qHGc1quW2UhbXZ4wk5NEGvjP8/cVzzwulBX2JBDjoQ/aMc NJSmGY/ibxhMgc1NnX/3GrW3Ixv9yFY7TIjeczEqV+rYOy+5gwi8SZ4KY8+mNkFLkhEf VysQ907wGCqOmBhGAfuzJ0U6BH1tXvZJsdOWwkJDcI/Jpp0tI+ySSrLjVDVL8IgPCIxh LufdpvGuAo2TDqoebnjURtJnjZU+OGQpWIQ+ezlvXCPmTXXqyITmjvCNDA/foqVVqQwP 9BTjOjH15RtVn5wOTdeIueV9Q9PmajWMZby7U+iRA8O98XTLatlnQgAN7GWYYs9NS6QT CZCg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=GbkTP3zHcJFJuVybS9KupjRL2tPIXD5dw4xi+AbtQaw=; b=jrDbhRrgVQXlV5ag+I7SojMpKZXEl95YDNqiTnJauw84alUiyRjEyLaexVPxhPILjj 2VHEPY223XxDqHkoT63b1bnm1aWv1TEC4R5kB29XhZvjhkqmblqB+VW9Bkdh2hd3KVSG XeSM278Yn4BD1W4JxEVW1Ac3KsxAUuFwqN9K92dc7ybexqvVFQteTNbhzisPXD3bdY1J Qp16sn6CdQ6qrvMxvQPo+0udXpK6G7e6n+hojoQE+j+3D5kpEov7Xoa1kGjIQDNpLtXM Dl8JRVXNnWiMebKdE+XJDBM0dw4d8uXcHwDnunjJBIQ0e8aHRJ3ghCN8QtY1CrXg902H 9Vig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=C8LAqlu6; 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=chromium.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 204-20020a6300d5000000b00520ad015da5si16101852pga.462.2023.04.26.02.41.32; Wed, 26 Apr 2023 02:41:45 -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=@chromium.org header.s=google header.b=C8LAqlu6; 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=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240353AbjDZJdq (ORCPT + 99 others); Wed, 26 Apr 2023 05:33:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240330AbjDZJdm (ORCPT ); Wed, 26 Apr 2023 05:33:42 -0400 Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 218E210E6 for ; Wed, 26 Apr 2023 02:33:41 -0700 (PDT) Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-63b7096e2e4so5714934b3a.2 for ; Wed, 26 Apr 2023 02:33:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1682501620; x=1685093620; 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=GbkTP3zHcJFJuVybS9KupjRL2tPIXD5dw4xi+AbtQaw=; b=C8LAqlu6DToCZB9Khh7AJe4KKQMWtFvMtBzAAACPvEmA1+DBreI552kDfQTb3Q2Ut2 9m+esTfiRzAeUqVB12gteiAuVqPePd+h2FTlmetMy85ujIIAEcG/uplvGHmGt/4Ql1oO IVX72xlund0sCV7s9Co3GT2hmPe6NI97Y1VZE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682501620; x=1685093620; 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=GbkTP3zHcJFJuVybS9KupjRL2tPIXD5dw4xi+AbtQaw=; b=AxXBA2NUvWJ6VGFOsPWyJmTEZDIZo8RRZ9vm9VpRPj6w+v6kZhzqKDm61u7TdQ55ke +YR/ONOfdbPm0rFnSpFNCVZaJ1Yp1by6C67I4TTs+8yzBHnWIaDRghGFoJrClXSXxDTs 14nXCU6JwrWRbCyLDq9/4EcmNnSqKPgLn7L3L/9zQImDU9zNUY+sh1ALhvdHzOIBOzuC yLtUMMDY6YMUeDYUjby69LGANIvvfYNgq3IEwtqa9Z4PbE0Vbae3mSt6eCPSpfl/F7lC dotboDFT7mn2f38oBRsx9aRRDEp8I1QHmddeM02qs+dG0AMHVpf2i2nWsHeT3oh+XN7E NQUw== X-Gm-Message-State: AAQBX9eDTk6PwQXd3uIdhZWwr1hEw0MH3zQkt3PraWK6TDeudvhOwddx 4U9wgWkOhYxo9KMCdjmobosaKw== X-Received: by 2002:a05:6a00:2da7:b0:625:ea57:389b with SMTP id fb39-20020a056a002da700b00625ea57389bmr27528444pfb.5.1682501620593; Wed, 26 Apr 2023 02:33:40 -0700 (PDT) Received: from fshao-glinux.tpe.corp.google.com ([2401:fa00:1:10:dcf6:797f:140d:6d]) by smtp.gmail.com with ESMTPSA id g1-20020a056a00078100b005810c4286d6sm10730075pfu.0.2023.04.26.02.33.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Apr 2023 02:33:40 -0700 (PDT) From: Fei Shao To: Jeff LaBundy , Douglas Anderson , Benjamin Tissoires , Rob Herring Cc: linux-mediatek , Fei Shao , Dmitry Torokhov , Jiri Kosina , Matthias Kaehlcke , Stephen Kitt , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/2] HID: i2c-hid: goodix: Add support for "goodix,no-reset-during-suspend" property Date: Wed, 26 Apr 2023 17:32:30 +0800 Message-ID: <20230426093231.1466984-3-fshao@chromium.org> X-Mailer: git-send-email 2.40.1.495.gc816e09b53d-goog In-Reply-To: <20230426093231.1466984-1-fshao@chromium.org> References: <20230426093231.1466984-1-fshao@chromium.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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?1764231327040721706?= X-GMAIL-MSGID: =?utf-8?q?1764231327040721706?= In the beginning, commit 18eeef46d359 ("HID: i2c-hid: goodix: Tie the reset line to true state of the regulator") introduced a change to tie the reset line of the Goodix touchscreen to the state of the regulator to fix a power leakage issue in suspend. After some time, the change was deemed unnecessary and was reverted in commit 557e05fa9fdd ("HID: i2c-hid: goodix: Stop tying the reset line to the regulator") due to difficulties in managing regulator notifiers for designs like Evoker, which provides a second power rail to touchscreen. However, the revert caused a power regression on another Chromebook device Steelix in the field, which has a dedicated always-on regulator for touchscreen and was covered by the workaround in the first commit. To address both cases, this patch adds the support for the new "goodix,no-reset-during-suspend" property in the driver: - When set to true, the driver does not assert the reset GPIO during power-down. Instead, the GPIO will be asserted during power-up to ensure the touchscreen always has a clean start and consistent behavior after resuming. This is for designs with a dedicated always-on regulator. - When set to false or unset, the driver uses the original control flow and asserts GPIO and disable regulators normally. This is for the two-regulator and shared-regulator designs. Signed-off-by: Fei Shao Reviewed-by: Douglas Anderson --- Changes in v2: - Do not change the regulator_enable logic during power-up. drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/hid/i2c-hid/i2c-hid-of-goodix.c b/drivers/hid/i2c-hid/i2c-hid-of-goodix.c index 0060e3dcd775..fc4532fcadcc 100644 --- a/drivers/hid/i2c-hid/i2c-hid-of-goodix.c +++ b/drivers/hid/i2c-hid/i2c-hid-of-goodix.c @@ -28,6 +28,7 @@ struct i2c_hid_of_goodix { struct regulator *vdd; struct regulator *vddio; struct gpio_desc *reset_gpio; + bool no_reset_during_suspend; const struct goodix_i2c_hid_timing_data *timings; }; @@ -37,6 +38,20 @@ static int goodix_i2c_hid_power_up(struct i2chid_ops *ops) container_of(ops, struct i2c_hid_of_goodix, ops); int ret; + if (ihid_goodix->no_reset_during_suspend) { + /* + * This is not mandatory, but we assert reset here (instead of + * during power-down) to ensure the device will have a clean + * state after powering up, just like the normal scenarios will + * have. + * + * Note that in this case we assume the regulators should be + * (marked as) always-on, so the regulator core knows what to + * do with them in the following regulator_enable() calls + * despite regulator_disable() was not called previously. + */ + gpiod_set_value_cansleep(ihid_goodix->reset_gpio, 1); + } ret = regulator_enable(ihid_goodix->vdd); if (ret) return ret; @@ -60,6 +75,14 @@ static void goodix_i2c_hid_power_down(struct i2chid_ops *ops) struct i2c_hid_of_goodix *ihid_goodix = container_of(ops, struct i2c_hid_of_goodix, ops); + /* + * Don't assert reset GPIO if it's set. + * Also, it's okay to skip the following regulator_disable() calls + * because the regulators should be always-on in this case. + */ + if (ihid_goodix->no_reset_during_suspend) + return; + gpiod_set_value_cansleep(ihid_goodix->reset_gpio, 1); regulator_disable(ihid_goodix->vddio); regulator_disable(ihid_goodix->vdd); @@ -91,6 +114,9 @@ static int i2c_hid_of_goodix_probe(struct i2c_client *client) if (IS_ERR(ihid_goodix->vddio)) return PTR_ERR(ihid_goodix->vddio); + ihid_goodix->no_reset_during_suspend = + of_property_read_bool(client->dev.of_node, "goodix,no-reset-during-suspend"); + ihid_goodix->timings = device_get_match_data(&client->dev); return i2c_hid_core_probe(client, &ihid_goodix->ops, 0x0001, 0);