Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp4061718rwb; Fri, 30 Sep 2022 12:13:22 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4/tCm/Rqkj4Yq1WPRIzisNyKs+QuCBXeb+zRPaaWc7z96DHT5++QwGmK4bSfGKOO/ojLGW X-Received: by 2002:a05:6402:34d5:b0:451:335c:2f1e with SMTP id w21-20020a05640234d500b00451335c2f1emr8899089edc.160.1664565202434; Fri, 30 Sep 2022 12:13:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664565202; cv=none; d=google.com; s=arc-20160816; b=ea4YWyIV4zUhfyVlxX2uw+qy0f+QHLbZCm9R97nCu8c9lgsSLeCahUp+23ve7rWHOJ ZB2DeAusvZ5u7FtmCscCKI9La1TR+LdV5aSKC7kIOjswwTZ/tslKmNr3Q9j4dLbPW27q 6VK6qwHVYC4QEiQgWuKnzFIospy6nkKvJUT2L6wb18GTHnjDOvKh4qBJTEVs/CgdUdlK +zowcvD3fGtdis72qdQZ00yNifOGPZTDkoW8A9vHiQoQut/nv6CAtZ26NUewV6hI2DZw eOmn0yn1zTP60KaO3Qwx6s73WuVA6UYOj0HBK6LA3NVvPWYCaxplPfwVwUyi/I/nMpNd VAhQ== 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; bh=b9DIfl3my3G1a7xfy1Xijl/stUDsOsL4xgkmYdQIRhQ=; b=qxtO+MFwJQZ34QJsNHLOd+qD4nSi+5XWQMrQ8xX1VTMDsbzL8wdHFbnG6JAxWWl9c+ AoT7QQXhqprOXmQu6NFuys20fCRr8+iSBaGHpTx9NdkPwYBcytxEbYx2i7bpMCIe6BGZ iK2doXc3ETFVcylToDnFTuhc2c4rUOaQyhg98rNPoGi0KC0GIK4a8PqhVWUGwbKXaeZz pM7sm5TToWfZ3OuDJxT4qD66ZkGfdmc7dyV8ErBu5OiAY5BTu3YWF+ZPe5yDvBzYBS7x v6uK35yINAivWDHqQK/Dq5jsPx1w5rR3wcpyTqiNe7HznssZvBiEnEj/ai+4MWyo8GLT kPEw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g8-20020a056402320800b004589c999927si808401eda.494.2022.09.30.12.12.57; Fri, 30 Sep 2022 12:13:22 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231157AbiI3TLI (ORCPT + 99 others); Fri, 30 Sep 2022 15:11:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51650 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230110AbiI3TLC (ORCPT ); Fri, 30 Sep 2022 15:11:02 -0400 Received: from relay04.th.seeweb.it (relay04.th.seeweb.it [5.144.164.165]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE15C11ADEE for ; Fri, 30 Sep 2022 12:10:59 -0700 (PDT) Received: from localhost.localdomain (95.49.31.201.neoplus.adsl.tpnet.pl [95.49.31.201]) by m-r1.th.seeweb.it (Postfix) with ESMTPA id 2E6B8200FF; Fri, 30 Sep 2022 21:10:57 +0200 (CEST) From: Konrad Dybcio To: ~postmarketos/upstreaming@lists.sr.ht Cc: martin.botka@somainline.org, angelogioacchino.delregno@somainline.org, marijn.suijten@somainline.org, jamipkettunen@somainline.org, Konrad Dybcio , Andy Gross , Bjorn Andersson , Rob Herring , Krzysztof Kozlowski , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/8] arm64: dts: qcom: sdm845-tama: Add Synaptics Touchscreen Date: Fri, 30 Sep 2022 21:10:43 +0200 Message-Id: <20220930191049.123256-3-konrad.dybcio@somainline.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220930191049.123256-1-konrad.dybcio@somainline.org> References: <20220930191049.123256-1-konrad.dybcio@somainline.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE, 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 Add required pins and RMI4 node to the common DT and remove it from Akatsuki, as it uses a different touch. Since the panels are super high tech proprietary incell, they need to be handled with very precise timings. As such the panel driver sets up the power rails and GPIOs and the touchscreen driver *has to* probe afterwards. Signed-off-by: Konrad Dybcio --- .../qcom/sdm845-sony-xperia-tama-akatsuki.dts | 3 + .../dts/qcom/sdm845-sony-xperia-tama.dtsi | 69 ++++++++++++++++++- 2 files changed, 70 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts b/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts index 2a16305ac5da..5c5949a51184 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts +++ b/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts @@ -7,6 +7,9 @@ #include "sdm845-sony-xperia-tama.dtsi" +/* XZ3 uses an Atmel touchscreen instead. */ +/delete-node/ &touchscreen; + / { model = "Sony Xperia XZ3"; compatible = "sony,akatsuki-row", "qcom,sdm845"; diff --git a/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi b/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi index ac8eb59ed010..809a6d7e739b 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi @@ -375,10 +375,43 @@ &gcc { }; &i2c5 { - status = "okay"; clock-frequency = <400000>; + status = "okay"; + + touchscreen: touchscreen@2c { + compatible = "syna,rmi4-i2c"; + reg = <0x2c>; + + interrupt-parent = <&tlmm>; + interrupts = <125 IRQ_TYPE_EDGE_FALLING>; + vdd-supply = <&vreg_l14a_1p8>; + /* + * This is a blatant abuse of OF, but the panel driver *needs* + * to probe first, as the power/gpio switching needs to be precisely + * timed in order for both the display and touch panel to function properly. + */ + incell-supply = <&panel>; + + syna,reset-delay-ms = <220>; + syna,startup-delay-ms = <1000>; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&ts_default>; + pinctrl-1 = <&ts_sleep>; - /* Synaptics touchscreen @ 2c, 3c */ + #address-cells = <1>; + #size-cells = <0>; + + rmi4-f01@1 { + reg = <0x01>; + syna,nosleep-mode = <1>; + }; + + rmi4-f12@12 { + reg = <0x12>; + syna,sensor-type = <1>; + }; + }; }; &i2c10 { @@ -497,6 +530,38 @@ sde_te_active_sleep: sde-te-active-sleep-state { drive-strength = <2>; bias-pull-down; }; + + ts_default: ts-default-state { + reset-pin { + pins = "gpio99"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + + int-pin { + pins = "gpio125"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + ts_sleep: ts-sleep-state { + reset-pin { + pins = "gpio99"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + int-pin { + pins = "gpio125"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + }; }; &uart6 { -- 2.37.3