From nobody Sun Feb 8 23:25:39 2026 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 D61E3C6FD1C for ; Sat, 25 Mar 2023 12:26:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232224AbjCYM0I (ORCPT ); Sat, 25 Mar 2023 08:26:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232168AbjCYM0D (ORCPT ); Sat, 25 Mar 2023 08:26:03 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3ED651554F; Sat, 25 Mar 2023 05:25:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0549660C3C; Sat, 25 Mar 2023 12:25:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08860C433A0; Sat, 25 Mar 2023 12:25:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679747136; bh=jUO79vmSKkyNImkLFNq/84cqfuPfqaynq+2LUA6xJzg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jmv8sZrSKaX+MwbKHosz3aSSrxpEHLD8nJe6wNbUw982lItoLo6sZ/nZBMzhKan2W Zew7XtaKgByrdCRAPxF+TV9QH1pjTwW8pH9cE/NnIeg31C5jpEvjlq5tBcx1j6qy38 jBfEIOERGu1scRyEdXXy70HuAtdoxP7u77xzmReP4K8GFOmR+F/ZUaVM5aqmgwq9R1 nMBzR0Iu6spA38KXRNj2kaYfBvJrNt/efV5lUMIqVjrkZYvx/mBY4bAEvDROU2RFPp h3Seoz/yCXlghh+PSNMLbZfPlcP15FHVHgLF/DJWXzp+5DnhPLAr6p1Lm6sOw1Lzog A3O8m27J+rsjw== From: Vinod Koul To: Bjorn Andersson Cc: linux-arm-msm@vger.kernel.org, Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 11/12] arm64: dts: qcom: sc8180x: Introduce Primus Date: Sat, 25 Mar 2023 17:54:43 +0530 Message-Id: <20230325122444.249507-12-vkoul@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230325122444.249507-1-vkoul@kernel.org> References: <20230325122444.249507-1-vkoul@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Bjorn Andersson Introduce support for the SC8180X reference device, aka Primus, with debug UART, regulators, UFS and USB support. Signed-off-by: Bjorn Andersson --- arch/arm64/boot/dts/qcom/Makefile | 1 + arch/arm64/boot/dts/qcom/sc8180x-pmics.dtsi | 326 +++++++++ arch/arm64/boot/dts/qcom/sc8180x-primus.dts | 706 ++++++++++++++++++++ 3 files changed, 1033 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sc8180x-pmics.dtsi create mode 100644 arch/arm64/boot/dts/qcom/sc8180x-primus.dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/M= akefile index 31aa54f0428c..fdce44a7a902 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -141,6 +141,7 @@ dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-herobrine-zombie-nv= me-lte.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-idp.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-idp2.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-crd-r3.dtb +dtb-$(CONFIG_ARCH_QCOM) +=3D sc8180x-primus.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc8280xp-crd.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc8280xp-lenovo-thinkpad-x13s.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sda660-inforce-ifc6560.dtb diff --git a/arch/arm64/boot/dts/qcom/sc8180x-pmics.dtsi b/arch/arm64/boot/= dts/qcom/sc8180x-pmics.dtsi new file mode 100644 index 000000000000..49c146b6f37f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sc8180x-pmics.dtsi @@ -0,0 +1,326 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. + * Copyright (c) 2021-2022, Linaro Limited + */ + +#include +#include +#include +#include + +/ { + thermal-zones { + pmc8180-thermal { + polling-delay-passive =3D <100>; + polling-delay =3D <0>; + + thermal-sensors =3D <&pmc8180_temp>; + + trips { + trip0 { + temperature =3D <95000>; + hysteresis =3D <0>; + type =3D "passive"; + }; + + trip1 { + temperature =3D <115000>; + hysteresis =3D <0>; + type =3D "hot"; + }; + + trip2 { + temperature =3D <145000>; + hysteresis =3D <0>; + type =3D "critical"; + }; + }; + }; + + pmc8180c-thermal { + polling-delay-passive =3D <100>; + polling-delay =3D <0>; + + thermal-sensors =3D <&pmc8180c_temp>; + + trips { + trip0 { + temperature =3D <95000>; + hysteresis =3D <0>; + type =3D "passive"; + }; + + trip1 { + temperature =3D <115000>; + hysteresis =3D <0>; + type =3D "hot"; + }; + + trip2 { + temperature =3D <145000>; + hysteresis =3D <0>; + type =3D "critical"; + }; + }; + }; + }; +}; + +&spmi_bus { + pmc8180_0: pmic@0 { + compatible =3D "qcom,pm8150", "qcom,spmi-pmic"; + reg =3D <0x0 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + pon: power-on@800 { + compatible =3D "qcom,pm8916-pon"; + reg =3D <0x0800>; + pwrkey { + compatible =3D "qcom,pm8941-pwrkey"; + interrupts =3D <0x0 0x8 0x0 IRQ_TYPE_EDGE_BOTH>; + debounce =3D <15625>; + bias-pull-up; + linux,code =3D ; + + status =3D "disabled"; + }; + }; + + pmc8180_temp: temp-alarm@2400 { + compatible =3D "qcom,spmi-temp-alarm"; + reg =3D <0x2400>; + interrupts =3D <0x0 0x24 0x0 IRQ_TYPE_EDGE_BOTH>; + io-channels =3D <&pmc8180_adc ADC5_DIE_TEMP>; + io-channel-names =3D "thermal"; + #thermal-sensor-cells =3D <0>; + }; + + pmc8180_adc: adc@3100 { + compatible =3D "qcom,spmi-adc5"; + reg =3D <0x3100>; + #address-cells =3D <1>; + #size-cells =3D <0>; + #io-channel-cells =3D <1>; + interrupts =3D <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; + + ref-gnd@0 { + reg =3D ; + qcom,pre-scaling =3D <1 1>; + label =3D "ref_gnd"; + }; + + vref-1p25@1 { + reg =3D ; + qcom,pre-scaling =3D <1 1>; + label =3D "vref_1p25"; + }; + + die-temp@6 { + reg =3D ; + qcom,pre-scaling =3D <1 1>; + label =3D "die_temp"; + }; + }; + + pmc8180_adc_tm: adc-tm@3500 { + compatible =3D "qcom,spmi-adc-tm5"; + reg =3D <0x3500>; + interrupts =3D <0x0 0x35 0x0 IRQ_TYPE_EDGE_RISING>; + #thermal-sensor-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + status =3D "disabled"; + }; + + rtc@6000 { + compatible =3D "qcom,pm8941-rtc"; + reg =3D <0x6000>; + reg-names =3D "rtc", "alarm"; + interrupts =3D <0x0 0x61 0x1 IRQ_TYPE_NONE>; + }; + + pmc8180_gpios: gpio@c000 { + compatible =3D "qcom,pmc8180-gpio"; + reg =3D <0xc000>; + gpio-controller; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; + + pmic@1 { + compatible =3D "qcom,pmc8180", "qcom,spmi-pmic"; + reg =3D <0x1 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + }; + + pmic@2 { + compatible =3D "qcom,smb2351", "qcom,spmi-pmic"; + reg =3D <0x2 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + adc@3100 { + compatible =3D "qcom,spmi-adc-rev2"; + reg =3D <0x3100>; + #address-cells =3D <1>; + #size-cells =3D <0>; + #io-channel-cells =3D <1>; + interrupts =3D <0x2 0x31 0x0 IRQ_TYPE_EDGE_RISING>; + + ref-gnd@0 { + reg =3D ; + qcom,pre-scaling =3D <1 1>; + label =3D "ref_gnd"; + }; + + vref-1p25@1 { + reg =3D ; + qcom,pre-scaling =3D <1 1>; + label =3D "vref_1p25"; + }; + + vcoin@85 { + reg =3D <0x85>; + qcom,pre-scaling =3D <1 1>; + label =3D "vcoin2"; + }; + }; + }; + + pmic@6 { + compatible =3D "qcom,pm8150c", "qcom,spmi-pmic"; + reg =3D <0x6 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + }; + + pmic@8 { + compatible =3D "qcom,pm8150", "qcom,spmi-pmic"; + reg =3D <0x8 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + }; + + pmic@a { + compatible =3D "qcom,smb2351", "qcom,spmi-pmic"; + reg =3D <0xa SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + adc@3100 { + compatible =3D "qcom,spmi-adc-rev2"; + reg =3D <0x3100>; + #address-cells =3D <1>; + #size-cells =3D <0>; + #io-channel-cells =3D <1>; + interrupts =3D <0xa 0x31 0x0 IRQ_TYPE_EDGE_RISING>; + + ref-gnd@0 { + reg =3D ; + qcom,pre-scaling =3D <1 1>; + label =3D "ref_gnd"; + }; + + vref-1p25@1 { + reg =3D ; + qcom,pre-scaling =3D <1 1>; + label =3D "vref_1p25"; + }; + + vcoin@85 { + reg =3D <0x85>; + qcom,pre-scaling =3D <1 1>; + label =3D "vcoin"; + }; + }; + }; + + pmic@4 { + compatible =3D "qcom,pm8150c", "qcom,spmi-pmic"; + reg =3D <0x4 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + power-on@800 { + compatible =3D "qcom,pm8916-pon"; + reg =3D <0x0800>; + + status =3D "disabled"; + }; + + pmc8180c_temp: temp-alarm@2400 { + compatible =3D "qcom,spmi-temp-alarm"; + reg =3D <0x2400>; + interrupts =3D <0x4 0x24 0x0 IRQ_TYPE_EDGE_BOTH>; + io-channels =3D <&pmc8180c_adc ADC5_DIE_TEMP>; + io-channel-names =3D "thermal"; + #thermal-sensor-cells =3D <0>; + }; + + pmc8180c_adc: adc@3100 { + compatible =3D "qcom,spmi-adc5"; + reg =3D <0x3100>; + #address-cells =3D <1>; + #size-cells =3D <0>; + #io-channel-cells =3D <1>; + interrupts =3D <0x4 0x31 0x0 IRQ_TYPE_EDGE_RISING>; + + ref-gnd@0 { + reg =3D ; + qcom,pre-scaling =3D <1 1>; + label =3D "ref_gnd"; + }; + + vref-1p25@1 { + reg =3D ; + qcom,pre-scaling =3D <1 1>; + label =3D "vref_1p25"; + }; + + die-temp@6 { + reg =3D ; + qcom,pre-scaling =3D <1 1>; + label =3D "die_temp"; + }; + }; + + pmc8180c_adc_tm: adc-tm@3500 { + compatible =3D "qcom,spmi-adc-tm5"; + reg =3D <0x3500>; + interrupts =3D <0x4 0x35 0x0 IRQ_TYPE_EDGE_RISING>; + #thermal-sensor-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + status =3D "disabled"; + }; + + pmc8180c_gpios: gpio@c000 { + compatible =3D "qcom,pmc8180c-gpio"; + reg =3D <0xc000>; + gpio-controller; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; + + pmic@5 { + compatible =3D "qcom,pmc8180c", "qcom,spmi-pmic"; + reg =3D <0x5 SPMI_USID>; + + pmc8180c_lpg: lpg { + compatible =3D "qcom,pmc8180c-lpg"; + + #address-cells =3D <1>; + #size-cells =3D <0>; + #pwm-cells =3D <2>; + + status =3D "disabled"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/sc8180x-primus.dts b/arch/arm64/boot/= dts/qcom/sc8180x-primus.dts new file mode 100644 index 000000000000..9f365fccae78 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sc8180x-primus.dts @@ -0,0 +1,706 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. + * Copyright (c) 2020-2023, Linaro Limited + */ + +/dts-v1/; + +#include +#include +#include +#include +#include "sc8180x.dtsi" +#include "sc8180x-pmics.dtsi" + +/ { + model =3D "Qualcomm SC8180x Primus"; + compatible =3D "qcom,sc8180x-primus", "qcom,sc8180x"; + + aliases { + serial0 =3D &uart12; + serial1 =3D &uart13; + }; + + backlight: backlight { + compatible =3D "pwm-backlight"; + pwms =3D <&pmc8180c_lpg 4 1000000>; + enable-gpios =3D <&pmc8180c_gpios 8 GPIO_ACTIVE_HIGH>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&bl_pwm_default>; + }; + + chosen { + stdout-path =3D "serial0:115200n8"; + }; + + gpio-keys { + compatible =3D "gpio-keys"; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&hall_int_active_state>; + + lid-switch { + gpios =3D <&tlmm 121 GPIO_ACTIVE_HIGH>; + linux,input-type =3D ; + linux,code =3D ; + wakeup-source; + wakeup-event-action =3D ; + }; + }; + + reserved-memory { + rmtfs_mem: rmtfs-region@85500000 { + compatible =3D "qcom,rmtfs-mem"; + reg =3D <0x0 0x85500000 0x0 0x200000>; + no-map; + + qcom,client-id =3D <1>; + qcom,vmid =3D <15>; + }; + + wlan_mem: wlan-region@8bc00000 { + reg =3D <0x0 0x8bc00000 0x0 0x180000>; + no-map; + }; + + adsp_mem: adsp-region@96e00000 { + reg =3D <0x0 0x96e00000 0x0 0x1c00000>; + no-map; + }; + + mpss_mem: mpss-region@8d800000 { + reg =3D <0x0 0x8d800000 0x0 0x9600000>; + no-map; + }; + + gpu_mem: gpu-region@98a00000 { + reg =3D <0x0 0x98a00000 0x0 0x2000>; + no-map; + }; + + reserved-region@9a500000 { + reg =3D <0x0 0x9a500000 0x0 0x600000>; + no-map; + }; + }; + + vreg_nvme_0p9: nvme-0p9-regulator { + compatible =3D "regulator-fixed"; + regulator-name =3D "vreg_nvme_0p9"; + + regulator-min-microvolt =3D <900000>; + regulator-max-microvolt =3D <900000>; + + regulator-always-on; + }; + + vreg_nvme_3p3: nvme-3p3-regulator { + compatible =3D "regulator-fixed"; + regulator-name =3D "vreg_nvme_3p3"; + + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + gpio =3D <&pmc8180c_gpios 11 0>; + enable-active-high; + + regulator-always-on; + }; + + vdd_kb_tp_3v3: vdd-kb-tp-3v3-regulator { + compatible =3D "regulator-fixed"; + regulator-name =3D "vdd_kb_tp_3v3"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + gpio =3D <&tlmm 4 GPIO_ACTIVE_HIGH>; + enable-active-high; + + regulator-always-on; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&kb_tp_3v3_en_active_state>; + }; + + vph_pwr: vph-pwr-regulator { + compatible =3D "regulator-fixed"; + regulator-name =3D "vph_pwr"; + regulator-min-microvolt =3D <3700000>; + regulator-max-microvolt =3D <3700000>; + }; + + vreg_s4a_1p8: pm8150-s4 { + compatible =3D "regulator-fixed"; + regulator-name =3D "vreg_s4a_1p8"; + + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + regulator-always-on; + regulator-boot-on; + + vin-supply =3D <&vph_pwr>; + }; +}; + +&apps_rsc { + pmc8180-a-rpmh-regulators { + compatible =3D "qcom,pmc8180-rpmh-regulators"; + qcom,pmic-id =3D "a"; + + vdd-s5-supply =3D <&vph_pwr>; + vdd-l7-l12-l14-l15-supply =3D <&vreg_s5a_2p0>; + + vreg_s5a_2p0: smps5 { + regulator-min-microvolt =3D <2040000>; + regulator-max-microvolt =3D <2100000>; + }; + + vreg_l7a_1p8: ldo7 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + }; + + vreg_l9a_1p3: ldo9 { + regulator-min-microvolt =3D <1296000>; + regulator-max-microvolt =3D <1304000>; + regulator-initial-mode =3D ; + }; + + vreg_l12a_1p8: ldo12 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + }; + }; + + pmc8180c-rpmh-regulators { + compatible =3D "qcom,pmc8180c-rpmh-regulators"; + qcom,pmic-id =3D "c"; + + vdd-s6-supply =3D <&vph_pwr>; + vdd-s8-supply =3D <&vph_pwr>; + vdd-l2-l3-supply =3D <&vreg_s6c_1p35>; + vdd-bob-supply =3D <&vph_pwr>; + + vreg_s6c_1p35: smps6 { + regulator-min-microvolt =3D <1350000>; + regulator-max-microvolt =3D <1372000>; + regulator-initial-mode =3D ; + }; + + vreg_s8c_1p8: smps8 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + regulator-always-on; + }; + + vreg_l3c_1p2: ldo3 { + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + }; + + vreg_l4c_3p3: ldo4 { + regulator-min-microvolt =3D <3008000>; + regulator-max-microvolt =3D <3008000>; + regulator-initial-mode =3D ; + }; + + vreg_l10c_3p3: ldo10 { + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3312000>; + regulator-initial-mode =3D ; + }; + + vreg_l11c_3p3: ldo11 { + regulator-min-microvolt =3D <3296000>; + regulator-max-microvolt =3D <3304000>; + regulator-initial-mode =3D ; + }; + + vreg_bob: bob { + regulator-min-microvolt =3D <3296000>; + regulator-max-microvolt =3D <3350000>; + regulator-initial-mode =3D ; + }; + }; + + pmc8180-e-rpmh-regulators { + compatible =3D "qcom,pmc8180-rpmh-regulators"; + qcom,pmic-id =3D "e"; + + vdd-s4-supply =3D <&vph_pwr>; + vdd-s5-supply =3D <&vph_pwr>; + vdd-l2-l10-supply =3D <&vreg_bob>; + vdd-l3-l4-l5-l18-supply =3D <&vreg_s4e_0p98>; + vdd-l7-l12-l14-l15-supply =3D <&vreg_s5e_2p05>; + vdd-l13-l16-l17-supply =3D <&vreg_bob>; + + vreg_s4e_0p98: smps4 { + regulator-min-microvolt =3D <992000>; + regulator-max-microvolt =3D <992000>; + regulator-initial-mode =3D ; + }; + + vreg_s5e_2p05: smps5 { + regulator-min-microvolt =3D <2040000>; + regulator-max-microvolt =3D <2040000>; + regulator-initial-mode =3D ; + }; + + vreg_l1e_0p75: ldo1 { + regulator-min-microvolt =3D <752000>; + regulator-max-microvolt =3D <752000>; + regulator-initial-mode =3D ; + }; + + vreg_l5e_0p88: ldo5 { + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <880000>; + regulator-initial-mode =3D ; + }; + + vreg_l7e_1p8: ldo7 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + }; + + vreg_l10e_2p9: ldo10 { + regulator-min-microvolt =3D <2904000>; + regulator-max-microvolt =3D <2904000>; + regulator-initial-mode =3D ; + }; + + vreg_l12e: ldo12 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + }; + + vreg_l16e_3p0: ldo16 { + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3072000>; + regulator-initial-mode =3D ; + }; + }; +}; + +&dispcc { + status =3D "okay"; +}; + +&gpu { + status =3D "okay"; + + zap-shader { + memory-region =3D <&gpu_mem>; + firmware-name =3D "qcom/sc8180x/qcdxkmsuc8180.mbn"; + }; +}; + +&i2c1 { + clock-frequency =3D <100000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&ts_i2c_active_state>; + + status =3D "okay"; + + touchscreen@10 { + compatible =3D "hid-over-i2c"; + reg =3D <0x10>; + hid-descr-addr =3D <0x1>; + + vdd-supply =3D <&vreg_l4c_3p3>; + vddl-supply =3D <&vreg_l12e>; + + post-power-on-delay-ms =3D <20>; + + interrupts-extended =3D <&tlmm 122 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&ts_active_state>; + }; +}; + +&i2c7 { + clock-frequency =3D <100000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&aux_i2c_active_state>; + + status =3D "okay"; + + touchpad@15 { + compatible =3D "hid-over-i2c"; + reg =3D <0x15>; + hid-descr-addr =3D <0x1>; + + interrupts-extended =3D <&tlmm 24 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&tp_int_active_state>; + + vdd-supply =3D <&vdd_kb_tp_3v3>; + }; + + keyboard@3a { + compatible =3D "hid-over-i2c"; + reg =3D <0x3a>; + hid-descr-addr =3D <0x1>; + interrupts-extended =3D <&tlmm 37 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&kb_int_active_state>; + + vdd-supply =3D <&vdd_kb_tp_3v3>; + }; +}; + +&mdss { + status =3D "okay"; +}; + +&mdss_edp { + data-lanes =3D <0 1 2 3>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&edp_hpd_active>; + + status =3D "okay"; + + aux-bus { + panel { + compatible =3D "edp-panel"; + + backlight =3D <&backlight>; + + ports { + port { + auo_b133han05_in: endpoint { + remote-endpoint =3D <&mdss_edp_out>; + }; + }; + }; + }; + }; + + ports { + port@1 { + reg =3D <1>; + mdss_edp_out: endpoint { + remote-endpoint =3D <&auo_b133han05_in>; + }; + }; + }; +}; + +&pcie1 { + perst-gpio =3D <&tlmm 175 GPIO_ACTIVE_LOW>; + wake-gpio =3D <&tlmm 177 GPIO_ACTIVE_HIGH>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pcie2_default_state>; + + status =3D "okay"; +}; + +&pcie1_phy { + vdda-phy-supply =3D <&vreg_l5e_0p88>; + vdda-pll-supply =3D <&vreg_l3c_1p2>; + + status =3D "okay"; +}; + +&pmc8180c_lpg { + status =3D "okay"; +}; + +&qupv3_id_0 { + status =3D "okay"; +}; + +&qupv3_id_1 { + status =3D "okay"; +}; + +&qupv3_id_2 { + status =3D "okay"; +}; + +&remoteproc_adsp { + memory-region =3D <&adsp_mem>; + firmware-name =3D "qcom/sc8180x/qcadsp8180.mbn"; + + status =3D "okay"; +}; + +&remoteproc_mpss { + memory-region =3D <&mpss_mem>; + firmware-name =3D "qcom/sc8180x/qcmpss8180.mbn"; + + status =3D "okay"; +}; + +&uart12 { + compatible =3D "qcom,geni-debug-uart"; + status =3D "okay"; +}; + +&uart13 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&uart13_state>; + + status =3D "okay"; + + bluetooth { + compatible =3D "qcom,wcn3998-bt"; + + vddio-supply =3D <&vreg_s4a_1p8>; + vddxo-supply =3D <&vreg_l7a_1p8>; + vddrf-supply =3D <&vreg_l9a_1p3>; + vddch0-supply =3D <&vreg_l11c_3p3>; + max-speed =3D <3200000>; + }; +}; + +&ufs_mem_hc { + reset-gpios =3D <&tlmm 190 GPIO_ACTIVE_LOW>; + + vcc-supply =3D <&vreg_l10e_2p9>; + vcc-max-microamp =3D <155000>; + + vccq2-supply =3D <&vreg_l7e_1p8>; + vccq2-max-microamp =3D <425000>; + + status =3D "okay"; +}; + +&ufs_mem_phy { + vdda-phy-supply =3D <&vreg_l5e_0p88>; + vdda-pll-supply =3D <&vreg_l3c_1p2>; + + status =3D "okay"; +}; + +&usb_prim_hsphy { + vdda-pll-supply =3D <&vreg_l5e_0p88>; + vdda18-supply =3D <&vreg_l12a_1p8>; + vdda33-supply =3D <&vreg_l16e_3p0>; + + status =3D "okay"; +}; + +&usb_prim_qmpphy { + vdda-phy-supply =3D <&vreg_l3c_1p2>; + vdda-pll-supply =3D <&vreg_l5e_0p88>; + + status =3D "okay"; +}; + +&usb_prim { + status =3D "okay"; +}; + +&usb_prim_dwc3 { + dr_mode =3D "host"; +}; + +&usb_sec_hsphy { + vdda-pll-supply =3D <&vreg_l5e_0p88>; + vdda18-supply =3D <&vreg_l12a_1p8>; + vdda33-supply =3D <&vreg_l16e_3p0>; + + status =3D "okay"; +}; + +&usb_sec_qmpphy { + vdda-phy-supply =3D <&vreg_l3c_1p2>; + vdda-pll-supply =3D <&vreg_l5e_0p88>; + + status =3D "okay"; +}; + +&usb_sec { + status =3D "okay"; +}; + +&usb_sec_dwc3 { + dr_mode =3D "host"; +}; + +&wifi { + memory-region =3D <&wlan_mem>; + + vdd-0.8-cx-mx-supply =3D <&vreg_l1e_0p75>; + vdd-1.8-xo-supply =3D <&vreg_l7a_1p8>; + vdd-1.3-rfa-supply =3D <&vreg_l9a_1p3>; + vdd-3.3-ch0-supply =3D <&vreg_l11c_3p3>; + vdd-3.3-ch1-supply =3D <&vreg_l10c_3p3>; + + status =3D "okay"; +}; + +&xo_board_clk { + clock-frequency =3D <38400000>; +}; + +/* PINCTRL */ + +&pmc8180c_gpios { + bl_pwm_default: bl-pwm-default-state { + en-pins { + pins =3D "gpio8"; + function =3D "normal"; + }; + + pwm-pins { + pins =3D "gpio10"; + function =3D "func1"; + }; + }; +}; + +&tlmm { + gpio-reserved-ranges =3D <0 4>, <47 4>, <126 4>; + + aux_i2c_active_state: aux-i2c-active-state { + pins =3D "gpio98", "gpio99"; + function =3D "qup7"; + + bias-disable; + drive-strength =3D <16>; + }; + + edp_hpd_active: epd-hpd-active-state { + pins =3D "gpio10"; + function =3D "edp_hot"; + }; + + hall_int_active_state: hall-int-active-state { + pins =3D "gpio121"; + function =3D "gpio"; + + input-enable; + bias-disable; + }; + + kb_int_active_state: kb-int-active-state { + int-n-pins { + pins =3D "gpio37"; + function =3D "gpio"; + + bias-pull-up; + intput-enable; + }; + + kp-disable-pins { + pins =3D "gpio135"; + function =3D "gpio"; + + output-high; + }; + }; + + kb_tp_3v3_en_active_state: kb-tp-3v3-en-active-state { + pins =3D "gpio4"; + functino =3D "gpio"; + + bias-disable; + }; + + pcie2_default_state: pcie2-default-state { + clkreq-pins { + pins =3D "gpio176"; + function =3D "pci_e2"; + bias-pull-up; + }; + + reset-n-pins { + pins =3D "gpio175"; + function =3D "gpio"; + + drive-strength =3D <2>; + output-low; + bias-pull-down; + }; + + wake-n-pins { + pins =3D "gpio177"; + function =3D "gpio"; + + drive-strength =3D <2>; + bias-pull-up; + }; + }; + + tp_int_active_state: tp-int-active-state { + tp-int-pins { + pins =3D "gpio24"; + function =3D "gpio"; + + bias-disable; + input-enable; + }; + + tp-close-n-pins { + pins =3D "gpio116"; + function =3D "gpio"; + + bias-disable; + input-enable; + }; + }; + + ts_active_state: ts-active-state { + int-n-pins { + pins =3D "gpio122"; + function =3D "gpio"; + + input-enable; + bias-disable; + }; + + reset-n-pins { + pins =3D "gpio54"; + function =3D "gpio"; + + output-high; + }; + }; + + ts_i2c_active_state: ts-i2c-active-state { + pins =3D "gpio114", "gpio115"; + function =3D "qup1"; + + /* External pull up */ + bias-disable; + drive-strength =3D <2>; + }; + + uart13_state: uart13-state { + cts-pins { + pins =3D "gpio43"; + function =3D "qup13"; + bias-pull-down; + }; + + rts-tx-pins { + pins =3D "gpio44", "gpio45"; + function =3D "qup13"; + drive-strength =3D <2>; + bias-disable; + }; + + rx-pins { + pins =3D "gpio46"; + function =3D "qup13"; + bias-pull-up; + }; + }; +}; --=20 2.39.2