132c23138SJohan Hovold// SPDX-License-Identifier: BSD-3-Clause 232c23138SJohan Hovold/* 332c23138SJohan Hovold * Copyright (c) 2021, The Linux Foundation. All rights reserved. 432c23138SJohan Hovold * Copyright (c) 2022, Linaro Limited 532c23138SJohan Hovold */ 632c23138SJohan Hovold 732c23138SJohan Hovold/dts-v1/; 832c23138SJohan Hovold 932c23138SJohan Hovold#include <dt-bindings/gpio/gpio.h> 1032c23138SJohan Hovold#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 1132c23138SJohan Hovold 1232c23138SJohan Hovold#include "sc8280xp.dtsi" 1332c23138SJohan Hovold#include "sc8280xp-pmics.dtsi" 1432c23138SJohan Hovold 1532c23138SJohan Hovold/ { 1632c23138SJohan Hovold model = "Lenovo ThinkPad X13s"; 1732c23138SJohan Hovold compatible = "lenovo,thinkpad-x13s", "qcom,sc8280xp"; 1832c23138SJohan Hovold 1932c23138SJohan Hovold backlight { 2032c23138SJohan Hovold compatible = "pwm-backlight"; 2132c23138SJohan Hovold pwms = <&pmc8280c_lpg 3 1000000>; 2232c23138SJohan Hovold enable-gpios = <&pmc8280_1_gpios 8 GPIO_ACTIVE_HIGH>; 2332c23138SJohan Hovold power-supply = <&vreg_edp_bl>; 2432c23138SJohan Hovold 2532c23138SJohan Hovold pinctrl-names = "default"; 2632c23138SJohan Hovold pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>; 2732c23138SJohan Hovold }; 2832c23138SJohan Hovold 2932c23138SJohan Hovold vreg_edp_bl: regulator-edp-bl { 3032c23138SJohan Hovold compatible = "regulator-fixed"; 3132c23138SJohan Hovold 3232c23138SJohan Hovold regulator-name = "VBL9"; 3332c23138SJohan Hovold regulator-min-microvolt = <3600000>; 3432c23138SJohan Hovold regulator-max-microvolt = <3600000>; 3532c23138SJohan Hovold 3632c23138SJohan Hovold gpio = <&pmc8280_1_gpios 9 GPIO_ACTIVE_HIGH>; 3732c23138SJohan Hovold enable-active-high; 3832c23138SJohan Hovold 3932c23138SJohan Hovold pinctrl-names = "default"; 4032c23138SJohan Hovold pinctrl-0 = <&edp_bl_reg_en>; 4132c23138SJohan Hovold 4232c23138SJohan Hovold regulator-boot-on; 4332c23138SJohan Hovold }; 4432c23138SJohan Hovold 4532c23138SJohan Hovold vreg_misc_3p3: regulator-misc-3p3 { 4632c23138SJohan Hovold compatible = "regulator-fixed"; 4732c23138SJohan Hovold 4832c23138SJohan Hovold regulator-name = "VCC3B"; 4932c23138SJohan Hovold regulator-min-microvolt = <3300000>; 5032c23138SJohan Hovold regulator-max-microvolt = <3300000>; 5132c23138SJohan Hovold 5232c23138SJohan Hovold gpio = <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>; 5332c23138SJohan Hovold enable-active-high; 5432c23138SJohan Hovold 5532c23138SJohan Hovold pinctrl-names = "default"; 5632c23138SJohan Hovold pinctrl-0 = <&misc_3p3_reg_en>; 5732c23138SJohan Hovold 5832c23138SJohan Hovold regulator-boot-on; 5932c23138SJohan Hovold regulator-always-on; 6032c23138SJohan Hovold }; 6132c23138SJohan Hovold}; 6232c23138SJohan Hovold 6332c23138SJohan Hovold&apps_rsc { 6432c23138SJohan Hovold pmc8280-1-rpmh-regulators { 6532c23138SJohan Hovold compatible = "qcom,pm8350-rpmh-regulators"; 6632c23138SJohan Hovold qcom,pmic-id = "b"; 6732c23138SJohan Hovold 6832c23138SJohan Hovold vdd-l3-l5-supply = <&vreg_s11b>; 6932c23138SJohan Hovold 7032c23138SJohan Hovold vreg_s11b: smps11 { 7132c23138SJohan Hovold regulator-name = "vreg_s11b"; 7232c23138SJohan Hovold regulator-min-microvolt = <1272000>; 7332c23138SJohan Hovold regulator-max-microvolt = <1272000>; 7432c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 7532c23138SJohan Hovold }; 7632c23138SJohan Hovold 7732c23138SJohan Hovold vreg_l3b: ldo3 { 7832c23138SJohan Hovold regulator-name = "vreg_l3b"; 7932c23138SJohan Hovold regulator-min-microvolt = <1200000>; 8032c23138SJohan Hovold regulator-max-microvolt = <1200000>; 8132c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 8232c23138SJohan Hovold regulator-boot-on; 8332c23138SJohan Hovold }; 8432c23138SJohan Hovold 8532c23138SJohan Hovold vreg_l4b: ldo4 { 8632c23138SJohan Hovold regulator-name = "vreg_l4b"; 8732c23138SJohan Hovold regulator-min-microvolt = <912000>; 8832c23138SJohan Hovold regulator-max-microvolt = <912000>; 8932c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 9032c23138SJohan Hovold }; 9132c23138SJohan Hovold 9232c23138SJohan Hovold vreg_l6b: ldo6 { 9332c23138SJohan Hovold regulator-name = "vreg_l6b"; 9432c23138SJohan Hovold regulator-min-microvolt = <880000>; 9532c23138SJohan Hovold regulator-max-microvolt = <880000>; 9632c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 9732c23138SJohan Hovold regulator-boot-on; 9832c23138SJohan Hovold regulator-always-on; // FIXME: VDD_A_EDP_0_0P9 9932c23138SJohan Hovold }; 10032c23138SJohan Hovold }; 10132c23138SJohan Hovold 10232c23138SJohan Hovold pmc8280c-rpmh-regulators { 10332c23138SJohan Hovold compatible = "qcom,pm8350c-rpmh-regulators"; 10432c23138SJohan Hovold qcom,pmic-id = "c"; 10532c23138SJohan Hovold 10632c23138SJohan Hovold vreg_l1c: ldo1 { 10732c23138SJohan Hovold regulator-name = "vreg_l1c"; 10832c23138SJohan Hovold regulator-min-microvolt = <1800000>; 10932c23138SJohan Hovold regulator-max-microvolt = <1800000>; 11032c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 11132c23138SJohan Hovold }; 11232c23138SJohan Hovold 11332c23138SJohan Hovold vreg_l12c: ldo12 { 11432c23138SJohan Hovold regulator-name = "vreg_l12c"; 11532c23138SJohan Hovold regulator-min-microvolt = <1800000>; 11632c23138SJohan Hovold regulator-max-microvolt = <1800000>; 11732c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 11832c23138SJohan Hovold }; 11932c23138SJohan Hovold 12032c23138SJohan Hovold vreg_l13c: ldo13 { 12132c23138SJohan Hovold regulator-name = "vreg_l13c"; 12232c23138SJohan Hovold regulator-min-microvolt = <3072000>; 12332c23138SJohan Hovold regulator-max-microvolt = <3072000>; 12432c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 12532c23138SJohan Hovold }; 12632c23138SJohan Hovold }; 12732c23138SJohan Hovold 12832c23138SJohan Hovold pmc8280-2-rpmh-regulators { 12932c23138SJohan Hovold compatible = "qcom,pm8350-rpmh-regulators"; 13032c23138SJohan Hovold qcom,pmic-id = "d"; 13132c23138SJohan Hovold 13232c23138SJohan Hovold vdd-l1-l4-supply = <&vreg_s11b>; 13332c23138SJohan Hovold 13432c23138SJohan Hovold vreg_l3d: ldo3 { 13532c23138SJohan Hovold regulator-name = "vreg_l3d"; 13632c23138SJohan Hovold regulator-min-microvolt = <1200000>; 13732c23138SJohan Hovold regulator-max-microvolt = <1200000>; 13832c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 13932c23138SJohan Hovold }; 14032c23138SJohan Hovold 14132c23138SJohan Hovold vreg_l4d: ldo4 { 14232c23138SJohan Hovold regulator-name = "vreg_l4d"; 14332c23138SJohan Hovold regulator-min-microvolt = <1200000>; 14432c23138SJohan Hovold regulator-max-microvolt = <1200000>; 14532c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 14632c23138SJohan Hovold }; 14732c23138SJohan Hovold 14832c23138SJohan Hovold vreg_l7d: ldo7 { 14932c23138SJohan Hovold regulator-name = "vreg_l7d"; 15032c23138SJohan Hovold regulator-min-microvolt = <3072000>; 15132c23138SJohan Hovold regulator-max-microvolt = <3072000>; 15232c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 15332c23138SJohan Hovold }; 15432c23138SJohan Hovold 15532c23138SJohan Hovold vreg_l9d: ldo9 { 15632c23138SJohan Hovold regulator-name = "vreg_l9d"; 15732c23138SJohan Hovold regulator-min-microvolt = <912000>; 15832c23138SJohan Hovold regulator-max-microvolt = <912000>; 15932c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 16032c23138SJohan Hovold }; 16132c23138SJohan Hovold }; 16232c23138SJohan Hovold}; 16332c23138SJohan Hovold 16432c23138SJohan Hovold&pmc8280c_lpg { 16532c23138SJohan Hovold status = "okay"; 16632c23138SJohan Hovold}; 16732c23138SJohan Hovold 16832c23138SJohan Hovold&pmk8280_pon_pwrkey { 16932c23138SJohan Hovold status = "okay"; 17032c23138SJohan Hovold}; 17132c23138SJohan Hovold 17232c23138SJohan Hovold&qup0 { 17332c23138SJohan Hovold status = "okay"; 17432c23138SJohan Hovold}; 17532c23138SJohan Hovold 17632c23138SJohan Hovold&qup0_i2c4 { 17732c23138SJohan Hovold clock-frequency = <400000>; 17832c23138SJohan Hovold 17932c23138SJohan Hovold pinctrl-names = "default"; 18097cc7ab3SJohan Hovold pinctrl-0 = <&qup0_i2c4_default>; 18132c23138SJohan Hovold 18232c23138SJohan Hovold status = "okay"; 18332c23138SJohan Hovold 18432c23138SJohan Hovold /* FIXME: verify */ 18532c23138SJohan Hovold touchscreen@10 { 18632c23138SJohan Hovold compatible = "hid-over-i2c"; 18732c23138SJohan Hovold reg = <0x10>; 18897cc7ab3SJohan Hovold 18932c23138SJohan Hovold hid-descr-addr = <0x1>; 19032c23138SJohan Hovold interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>; 19132c23138SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 19297cc7ab3SJohan Hovold 19397cc7ab3SJohan Hovold pinctrl-names = "default"; 19497cc7ab3SJohan Hovold pinctrl-0 = <&ts0_default>; 19532c23138SJohan Hovold }; 19632c23138SJohan Hovold}; 19732c23138SJohan Hovold 19832c23138SJohan Hovold&qup1 { 19932c23138SJohan Hovold status = "okay"; 20032c23138SJohan Hovold}; 20132c23138SJohan Hovold 20232c23138SJohan Hovold&qup2 { 20332c23138SJohan Hovold status = "okay"; 20432c23138SJohan Hovold}; 20532c23138SJohan Hovold 20632c23138SJohan Hovold&qup2_i2c5 { 20732c23138SJohan Hovold clock-frequency = <400000>; 20832c23138SJohan Hovold 20932c23138SJohan Hovold pinctrl-names = "default"; 21097cc7ab3SJohan Hovold pinctrl-0 = <&qup2_i2c5_default>; 21132c23138SJohan Hovold 21232c23138SJohan Hovold status = "okay"; 21332c23138SJohan Hovold 214ca1ce720SJohan Hovold touchpad@15 { 215ca1ce720SJohan Hovold compatible = "hid-over-i2c"; 216ca1ce720SJohan Hovold reg = <0x15>; 217ca1ce720SJohan Hovold 218ca1ce720SJohan Hovold hid-descr-addr = <0x1>; 219ca1ce720SJohan Hovold interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>; 220ca1ce720SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 221ca1ce720SJohan Hovold 222ca1ce720SJohan Hovold pinctrl-names = "default"; 223ca1ce720SJohan Hovold pinctrl-0 = <&tpad_default>; 224ca1ce720SJohan Hovold 225ca1ce720SJohan Hovold wakeup-source; 226ca1ce720SJohan Hovold 227ca1ce720SJohan Hovold status = "disabled"; 228ca1ce720SJohan Hovold }; 229ca1ce720SJohan Hovold 23032c23138SJohan Hovold touchpad@2c { 23132c23138SJohan Hovold compatible = "hid-over-i2c"; 23232c23138SJohan Hovold reg = <0x2c>; 23397cc7ab3SJohan Hovold 23432c23138SJohan Hovold hid-descr-addr = <0x20>; 23532c23138SJohan Hovold interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>; 23632c23138SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 23797cc7ab3SJohan Hovold 23897cc7ab3SJohan Hovold pinctrl-names = "default"; 23997cc7ab3SJohan Hovold pinctrl-0 = <&tpad_default>; 24070934652SJohan Hovold 24170934652SJohan Hovold wakeup-source; 24232c23138SJohan Hovold }; 24332c23138SJohan Hovold 24432c23138SJohan Hovold keyboard@68 { 24532c23138SJohan Hovold compatible = "hid-over-i2c"; 24632c23138SJohan Hovold reg = <0x68>; 24797cc7ab3SJohan Hovold 24832c23138SJohan Hovold hid-descr-addr = <0x1>; 24932c23138SJohan Hovold interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>; 25032c23138SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 25197cc7ab3SJohan Hovold 25297cc7ab3SJohan Hovold pinctrl-names = "default"; 25397cc7ab3SJohan Hovold pinctrl-0 = <&kybd_default>; 25470934652SJohan Hovold 25570934652SJohan Hovold wakeup-source; 25632c23138SJohan Hovold }; 25732c23138SJohan Hovold}; 25832c23138SJohan Hovold 25932c23138SJohan Hovold&remoteproc_adsp { 26029f894ecSManivannan Sadhasivam firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcadsp8280.mbn"; 26132c23138SJohan Hovold 26232c23138SJohan Hovold status = "okay"; 26332c23138SJohan Hovold}; 26432c23138SJohan Hovold 26532c23138SJohan Hovold&remoteproc_nsp0 { 26629f894ecSManivannan Sadhasivam firmware-name = "qcom/sc8280xp/LENOVO/21BX/qccdsp8280.mbn"; 26732c23138SJohan Hovold 26832c23138SJohan Hovold status = "okay"; 26932c23138SJohan Hovold}; 27032c23138SJohan Hovold 27132c23138SJohan Hovold&usb_0 { 27232c23138SJohan Hovold status = "okay"; 27332c23138SJohan Hovold}; 27432c23138SJohan Hovold 27532c23138SJohan Hovold&usb_0_dwc3 { 27632c23138SJohan Hovold /* TODO: Define USB-C connector properly */ 27732c23138SJohan Hovold dr_mode = "host"; 27832c23138SJohan Hovold}; 27932c23138SJohan Hovold 28032c23138SJohan Hovold&usb_0_hsphy { 28132c23138SJohan Hovold vdda-pll-supply = <&vreg_l9d>; 28232c23138SJohan Hovold vdda18-supply = <&vreg_l1c>; 28332c23138SJohan Hovold vdda33-supply = <&vreg_l7d>; 28432c23138SJohan Hovold 28532c23138SJohan Hovold status = "okay"; 28632c23138SJohan Hovold}; 28732c23138SJohan Hovold 28832c23138SJohan Hovold&usb_0_qmpphy { 28932c23138SJohan Hovold vdda-phy-supply = <&vreg_l9d>; 29032c23138SJohan Hovold vdda-pll-supply = <&vreg_l4d>; 29132c23138SJohan Hovold 29232c23138SJohan Hovold status = "okay"; 29332c23138SJohan Hovold}; 29432c23138SJohan Hovold 29532c23138SJohan Hovold&usb_1 { 29632c23138SJohan Hovold status = "okay"; 29732c23138SJohan Hovold}; 29832c23138SJohan Hovold 29932c23138SJohan Hovold&usb_1_dwc3 { 30032c23138SJohan Hovold /* TODO: Define USB-C connector properly */ 30132c23138SJohan Hovold dr_mode = "host"; 30232c23138SJohan Hovold}; 30332c23138SJohan Hovold 30432c23138SJohan Hovold&usb_1_hsphy { 30532c23138SJohan Hovold vdda-pll-supply = <&vreg_l4b>; 30632c23138SJohan Hovold vdda18-supply = <&vreg_l1c>; 30732c23138SJohan Hovold vdda33-supply = <&vreg_l13c>; 30832c23138SJohan Hovold 30932c23138SJohan Hovold status = "okay"; 31032c23138SJohan Hovold}; 31132c23138SJohan Hovold 31232c23138SJohan Hovold&usb_1_qmpphy { 31332c23138SJohan Hovold vdda-phy-supply = <&vreg_l4b>; 31432c23138SJohan Hovold vdda-pll-supply = <&vreg_l3b>; 31532c23138SJohan Hovold 31632c23138SJohan Hovold status = "okay"; 31732c23138SJohan Hovold}; 31832c23138SJohan Hovold 31932c23138SJohan Hovold&xo_board_clk { 32032c23138SJohan Hovold clock-frequency = <38400000>; 32132c23138SJohan Hovold}; 32232c23138SJohan Hovold 32332c23138SJohan Hovold/* PINCTRL */ 32432c23138SJohan Hovold 32532c23138SJohan Hovold&pmc8280_1_gpios { 32632c23138SJohan Hovold edp_bl_en: edp-bl-en-state { 32732c23138SJohan Hovold pins = "gpio8"; 32832c23138SJohan Hovold function = "normal"; 32932c23138SJohan Hovold }; 33032c23138SJohan Hovold 33132c23138SJohan Hovold edp_bl_reg_en: edp-bl-reg-en-state { 33232c23138SJohan Hovold pins = "gpio9"; 33332c23138SJohan Hovold function = "normal"; 33432c23138SJohan Hovold }; 33532c23138SJohan Hovold 33632c23138SJohan Hovold misc_3p3_reg_en: misc-3p3-reg-en-state { 33732c23138SJohan Hovold pins = "gpio1"; 33832c23138SJohan Hovold function = "normal"; 33932c23138SJohan Hovold }; 34032c23138SJohan Hovold}; 34132c23138SJohan Hovold 34232c23138SJohan Hovold&pmc8280c_gpios { 34332c23138SJohan Hovold edp_bl_pwm: edp-bl-pwm-state { 34432c23138SJohan Hovold pins = "gpio8"; 34532c23138SJohan Hovold function = "func1"; 34632c23138SJohan Hovold }; 34732c23138SJohan Hovold}; 34832c23138SJohan Hovold 34932c23138SJohan Hovold&tlmm { 35032c23138SJohan Hovold gpio-reserved-ranges = <70 2>, <74 6>, <83 4>, <125 2>, <128 2>, <154 7>; 35132c23138SJohan Hovold 35232c23138SJohan Hovold kybd_default: kybd-default-state { 353*91c4431bSKrzysztof Kozlowski disable-pins { 35432c23138SJohan Hovold pins = "gpio102"; 35532c23138SJohan Hovold function = "gpio"; 35632c23138SJohan Hovold output-low; 35732c23138SJohan Hovold }; 35832c23138SJohan Hovold 359*91c4431bSKrzysztof Kozlowski int-n-pins { 36032c23138SJohan Hovold pins = "gpio104"; 36132c23138SJohan Hovold function = "gpio"; 36232c23138SJohan Hovold bias-disable; 36332c23138SJohan Hovold }; 36432c23138SJohan Hovold 365*91c4431bSKrzysztof Kozlowski reset-pins { 36632c23138SJohan Hovold pins = "gpio105"; 36732c23138SJohan Hovold function = "gpio"; 36832c23138SJohan Hovold bias-disable; 36932c23138SJohan Hovold }; 37032c23138SJohan Hovold }; 37132c23138SJohan Hovold 37232c23138SJohan Hovold qup0_i2c4_default: qup0-i2c4-default-state { 37332c23138SJohan Hovold pins = "gpio171", "gpio172"; 37432c23138SJohan Hovold function = "qup4"; 37532c23138SJohan Hovold bias-disable; 37632c23138SJohan Hovold drive-strength = <16>; 37732c23138SJohan Hovold }; 37832c23138SJohan Hovold 37932c23138SJohan Hovold qup2_i2c5_default: qup2-i2c5-default-state { 38032c23138SJohan Hovold pins = "gpio81", "gpio82"; 38132c23138SJohan Hovold function = "qup21"; 38232c23138SJohan Hovold bias-disable; 38332c23138SJohan Hovold drive-strength = <16>; 38432c23138SJohan Hovold }; 38532c23138SJohan Hovold 38632c23138SJohan Hovold tpad_default: tpad-default-state { 387*91c4431bSKrzysztof Kozlowski int-n-pins { 38832c23138SJohan Hovold pins = "gpio182"; 38932c23138SJohan Hovold function = "gpio"; 39032c23138SJohan Hovold bias-disable; 39132c23138SJohan Hovold }; 39232c23138SJohan Hovold }; 39332c23138SJohan Hovold 39432c23138SJohan Hovold ts0_default: ts0-default-state { 395*91c4431bSKrzysztof Kozlowski int-n-pins { 39632c23138SJohan Hovold pins = "gpio175"; 39732c23138SJohan Hovold function = "gpio"; 398e11978deSJohan Hovold bias-disable; 39932c23138SJohan Hovold }; 40032c23138SJohan Hovold 401*91c4431bSKrzysztof Kozlowski reset-n-pins { 40232c23138SJohan Hovold pins = "gpio99"; 40332c23138SJohan Hovold function = "gpio"; 40432c23138SJohan Hovold output-high; 40532c23138SJohan Hovold drive-strength = <16>; 40632c23138SJohan Hovold }; 40732c23138SJohan Hovold }; 40832c23138SJohan Hovold}; 409