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-allow-set-load; 8332c23138SJohan Hovold regulator-boot-on; 8432c23138SJohan Hovold }; 8532c23138SJohan Hovold 8632c23138SJohan Hovold vreg_l4b: ldo4 { 8732c23138SJohan Hovold regulator-name = "vreg_l4b"; 8832c23138SJohan Hovold regulator-min-microvolt = <912000>; 8932c23138SJohan Hovold regulator-max-microvolt = <912000>; 9032c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 9132c23138SJohan Hovold regulator-allow-set-load; 9232c23138SJohan Hovold }; 9332c23138SJohan Hovold 9432c23138SJohan Hovold vreg_l6b: ldo6 { 9532c23138SJohan Hovold regulator-name = "vreg_l6b"; 9632c23138SJohan Hovold regulator-min-microvolt = <880000>; 9732c23138SJohan Hovold regulator-max-microvolt = <880000>; 9832c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 9932c23138SJohan Hovold regulator-allow-set-load; 10032c23138SJohan Hovold regulator-boot-on; 10132c23138SJohan Hovold regulator-always-on; // FIXME: VDD_A_EDP_0_0P9 10232c23138SJohan Hovold }; 10332c23138SJohan Hovold }; 10432c23138SJohan Hovold 10532c23138SJohan Hovold pmc8280c-rpmh-regulators { 10632c23138SJohan Hovold compatible = "qcom,pm8350c-rpmh-regulators"; 10732c23138SJohan Hovold qcom,pmic-id = "c"; 10832c23138SJohan Hovold 10932c23138SJohan Hovold vreg_l1c: ldo1 { 11032c23138SJohan Hovold regulator-name = "vreg_l1c"; 11132c23138SJohan Hovold regulator-min-microvolt = <1800000>; 11232c23138SJohan Hovold regulator-max-microvolt = <1800000>; 11332c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 11432c23138SJohan Hovold regulator-allow-set-load; 11532c23138SJohan Hovold }; 11632c23138SJohan Hovold 11732c23138SJohan Hovold vreg_l12c: ldo12 { 11832c23138SJohan Hovold regulator-name = "vreg_l12c"; 11932c23138SJohan Hovold regulator-min-microvolt = <1800000>; 12032c23138SJohan Hovold regulator-max-microvolt = <1800000>; 12132c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 12232c23138SJohan Hovold regulator-allow-set-load; 12332c23138SJohan Hovold }; 12432c23138SJohan Hovold 12532c23138SJohan Hovold vreg_l13c: ldo13 { 12632c23138SJohan Hovold regulator-name = "vreg_l13c"; 12732c23138SJohan Hovold regulator-min-microvolt = <3072000>; 12832c23138SJohan Hovold regulator-max-microvolt = <3072000>; 12932c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 13032c23138SJohan Hovold regulator-allow-set-load; 13132c23138SJohan Hovold }; 13232c23138SJohan Hovold }; 13332c23138SJohan Hovold 13432c23138SJohan Hovold pmc8280-2-rpmh-regulators { 13532c23138SJohan Hovold compatible = "qcom,pm8350-rpmh-regulators"; 13632c23138SJohan Hovold qcom,pmic-id = "d"; 13732c23138SJohan Hovold 13832c23138SJohan Hovold vdd-l1-l4-supply = <&vreg_s11b>; 13932c23138SJohan Hovold 14032c23138SJohan Hovold vreg_l3d: ldo3 { 14132c23138SJohan Hovold regulator-name = "vreg_l3d"; 14232c23138SJohan Hovold regulator-min-microvolt = <1200000>; 14332c23138SJohan Hovold regulator-max-microvolt = <1200000>; 14432c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 14532c23138SJohan Hovold regulator-allow-set-load; 14632c23138SJohan Hovold }; 14732c23138SJohan Hovold 14832c23138SJohan Hovold vreg_l4d: ldo4 { 14932c23138SJohan Hovold regulator-name = "vreg_l4d"; 15032c23138SJohan Hovold regulator-min-microvolt = <1200000>; 15132c23138SJohan Hovold regulator-max-microvolt = <1200000>; 15232c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 15332c23138SJohan Hovold regulator-allow-set-load; 15432c23138SJohan Hovold }; 15532c23138SJohan Hovold 15632c23138SJohan Hovold vreg_l7d: ldo7 { 15732c23138SJohan Hovold regulator-name = "vreg_l7d"; 15832c23138SJohan Hovold regulator-min-microvolt = <3072000>; 15932c23138SJohan Hovold regulator-max-microvolt = <3072000>; 16032c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 16132c23138SJohan Hovold regulator-allow-set-load; 16232c23138SJohan Hovold }; 16332c23138SJohan Hovold 16432c23138SJohan Hovold vreg_l9d: ldo9 { 16532c23138SJohan Hovold regulator-name = "vreg_l9d"; 16632c23138SJohan Hovold regulator-min-microvolt = <912000>; 16732c23138SJohan Hovold regulator-max-microvolt = <912000>; 16832c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 16932c23138SJohan Hovold regulator-allow-set-load; 17032c23138SJohan Hovold }; 17132c23138SJohan Hovold }; 17232c23138SJohan Hovold}; 17332c23138SJohan Hovold 17432c23138SJohan Hovold&pmc8280c_lpg { 17532c23138SJohan Hovold status = "okay"; 17632c23138SJohan Hovold}; 17732c23138SJohan Hovold 17832c23138SJohan Hovold&pmk8280_pon_pwrkey { 17932c23138SJohan Hovold status = "okay"; 18032c23138SJohan Hovold}; 18132c23138SJohan Hovold 18232c23138SJohan Hovold&qup0 { 18332c23138SJohan Hovold status = "okay"; 18432c23138SJohan Hovold}; 18532c23138SJohan Hovold 18632c23138SJohan Hovold&qup0_i2c4 { 18732c23138SJohan Hovold clock-frequency = <400000>; 18832c23138SJohan Hovold 18932c23138SJohan Hovold pinctrl-names = "default"; 19097cc7ab3SJohan Hovold pinctrl-0 = <&qup0_i2c4_default>; 19132c23138SJohan Hovold 19232c23138SJohan Hovold status = "okay"; 19332c23138SJohan Hovold 19432c23138SJohan Hovold /* FIXME: verify */ 19532c23138SJohan Hovold touchscreen@10 { 19632c23138SJohan Hovold compatible = "hid-over-i2c"; 19732c23138SJohan Hovold reg = <0x10>; 19897cc7ab3SJohan Hovold 19932c23138SJohan Hovold hid-descr-addr = <0x1>; 20032c23138SJohan Hovold interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>; 20132c23138SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 20297cc7ab3SJohan Hovold 20397cc7ab3SJohan Hovold pinctrl-names = "default"; 20497cc7ab3SJohan Hovold pinctrl-0 = <&ts0_default>; 20532c23138SJohan Hovold }; 20632c23138SJohan Hovold}; 20732c23138SJohan Hovold 20832c23138SJohan Hovold&qup1 { 20932c23138SJohan Hovold status = "okay"; 21032c23138SJohan Hovold}; 21132c23138SJohan Hovold 21232c23138SJohan Hovold&qup2 { 21332c23138SJohan Hovold status = "okay"; 21432c23138SJohan Hovold}; 21532c23138SJohan Hovold 21632c23138SJohan Hovold&qup2_i2c5 { 21732c23138SJohan Hovold clock-frequency = <400000>; 21832c23138SJohan Hovold 21932c23138SJohan Hovold pinctrl-names = "default"; 22097cc7ab3SJohan Hovold pinctrl-0 = <&qup2_i2c5_default>; 22132c23138SJohan Hovold 22232c23138SJohan Hovold status = "okay"; 22332c23138SJohan Hovold 224*ca1ce720SJohan Hovold touchpad@15 { 225*ca1ce720SJohan Hovold compatible = "hid-over-i2c"; 226*ca1ce720SJohan Hovold reg = <0x15>; 227*ca1ce720SJohan Hovold 228*ca1ce720SJohan Hovold hid-descr-addr = <0x1>; 229*ca1ce720SJohan Hovold interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>; 230*ca1ce720SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 231*ca1ce720SJohan Hovold 232*ca1ce720SJohan Hovold pinctrl-names = "default"; 233*ca1ce720SJohan Hovold pinctrl-0 = <&tpad_default>; 234*ca1ce720SJohan Hovold 235*ca1ce720SJohan Hovold wakeup-source; 236*ca1ce720SJohan Hovold 237*ca1ce720SJohan Hovold status = "disabled"; 238*ca1ce720SJohan Hovold }; 239*ca1ce720SJohan Hovold 24032c23138SJohan Hovold touchpad@2c { 24132c23138SJohan Hovold compatible = "hid-over-i2c"; 24232c23138SJohan Hovold reg = <0x2c>; 24397cc7ab3SJohan Hovold 24432c23138SJohan Hovold hid-descr-addr = <0x20>; 24532c23138SJohan Hovold interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>; 24632c23138SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 24797cc7ab3SJohan Hovold 24897cc7ab3SJohan Hovold pinctrl-names = "default"; 24997cc7ab3SJohan Hovold pinctrl-0 = <&tpad_default>; 25070934652SJohan Hovold 25170934652SJohan Hovold wakeup-source; 25232c23138SJohan Hovold }; 25332c23138SJohan Hovold 25432c23138SJohan Hovold keyboard@68 { 25532c23138SJohan Hovold compatible = "hid-over-i2c"; 25632c23138SJohan Hovold reg = <0x68>; 25797cc7ab3SJohan Hovold 25832c23138SJohan Hovold hid-descr-addr = <0x1>; 25932c23138SJohan Hovold interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>; 26032c23138SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 26197cc7ab3SJohan Hovold 26297cc7ab3SJohan Hovold pinctrl-names = "default"; 26397cc7ab3SJohan Hovold pinctrl-0 = <&kybd_default>; 26470934652SJohan Hovold 26570934652SJohan Hovold wakeup-source; 26632c23138SJohan Hovold }; 26732c23138SJohan Hovold}; 26832c23138SJohan Hovold 26932c23138SJohan Hovold&remoteproc_adsp { 27032c23138SJohan Hovold firmware-name = "qcom/sc8280xp/qcadsp8280.mbn"; 27132c23138SJohan Hovold 27232c23138SJohan Hovold status = "okay"; 27332c23138SJohan Hovold}; 27432c23138SJohan Hovold 27532c23138SJohan Hovold&remoteproc_nsp0 { 27632c23138SJohan Hovold firmware-name = "qcom/sc8280xp/qccdsp8280.mbn"; 27732c23138SJohan Hovold 27832c23138SJohan Hovold status = "okay"; 27932c23138SJohan Hovold}; 28032c23138SJohan Hovold 28132c23138SJohan Hovold&usb_0 { 28232c23138SJohan Hovold status = "okay"; 28332c23138SJohan Hovold}; 28432c23138SJohan Hovold 28532c23138SJohan Hovold&usb_0_dwc3 { 28632c23138SJohan Hovold /* TODO: Define USB-C connector properly */ 28732c23138SJohan Hovold dr_mode = "host"; 28832c23138SJohan Hovold}; 28932c23138SJohan Hovold 29032c23138SJohan Hovold&usb_0_hsphy { 29132c23138SJohan Hovold vdda-pll-supply = <&vreg_l9d>; 29232c23138SJohan Hovold vdda18-supply = <&vreg_l1c>; 29332c23138SJohan Hovold vdda33-supply = <&vreg_l7d>; 29432c23138SJohan Hovold 29532c23138SJohan Hovold status = "okay"; 29632c23138SJohan Hovold}; 29732c23138SJohan Hovold 29832c23138SJohan Hovold&usb_0_qmpphy { 29932c23138SJohan Hovold vdda-phy-supply = <&vreg_l9d>; 30032c23138SJohan Hovold vdda-pll-supply = <&vreg_l4d>; 30132c23138SJohan Hovold 30232c23138SJohan Hovold status = "okay"; 30332c23138SJohan Hovold}; 30432c23138SJohan Hovold 30532c23138SJohan Hovold&usb_1 { 30632c23138SJohan Hovold status = "okay"; 30732c23138SJohan Hovold}; 30832c23138SJohan Hovold 30932c23138SJohan Hovold&usb_1_dwc3 { 31032c23138SJohan Hovold /* TODO: Define USB-C connector properly */ 31132c23138SJohan Hovold dr_mode = "host"; 31232c23138SJohan Hovold}; 31332c23138SJohan Hovold 31432c23138SJohan Hovold&usb_1_hsphy { 31532c23138SJohan Hovold vdda-pll-supply = <&vreg_l4b>; 31632c23138SJohan Hovold vdda18-supply = <&vreg_l1c>; 31732c23138SJohan Hovold vdda33-supply = <&vreg_l13c>; 31832c23138SJohan Hovold 31932c23138SJohan Hovold status = "okay"; 32032c23138SJohan Hovold}; 32132c23138SJohan Hovold 32232c23138SJohan Hovold&usb_1_qmpphy { 32332c23138SJohan Hovold vdda-phy-supply = <&vreg_l4b>; 32432c23138SJohan Hovold vdda-pll-supply = <&vreg_l3b>; 32532c23138SJohan Hovold 32632c23138SJohan Hovold status = "okay"; 32732c23138SJohan Hovold}; 32832c23138SJohan Hovold 32932c23138SJohan Hovold&xo_board_clk { 33032c23138SJohan Hovold clock-frequency = <38400000>; 33132c23138SJohan Hovold}; 33232c23138SJohan Hovold 33332c23138SJohan Hovold/* PINCTRL */ 33432c23138SJohan Hovold 33532c23138SJohan Hovold&pmc8280_1_gpios { 33632c23138SJohan Hovold edp_bl_en: edp-bl-en-state { 33732c23138SJohan Hovold pins = "gpio8"; 33832c23138SJohan Hovold function = "normal"; 33932c23138SJohan Hovold }; 34032c23138SJohan Hovold 34132c23138SJohan Hovold edp_bl_reg_en: edp-bl-reg-en-state { 34232c23138SJohan Hovold pins = "gpio9"; 34332c23138SJohan Hovold function = "normal"; 34432c23138SJohan Hovold }; 34532c23138SJohan Hovold 34632c23138SJohan Hovold misc_3p3_reg_en: misc-3p3-reg-en-state { 34732c23138SJohan Hovold pins = "gpio1"; 34832c23138SJohan Hovold function = "normal"; 34932c23138SJohan Hovold }; 35032c23138SJohan Hovold}; 35132c23138SJohan Hovold 35232c23138SJohan Hovold&pmc8280c_gpios { 35332c23138SJohan Hovold edp_bl_pwm: edp-bl-pwm-state { 35432c23138SJohan Hovold pins = "gpio8"; 35532c23138SJohan Hovold function = "func1"; 35632c23138SJohan Hovold }; 35732c23138SJohan Hovold}; 35832c23138SJohan Hovold 35932c23138SJohan Hovold&tlmm { 36032c23138SJohan Hovold gpio-reserved-ranges = <70 2>, <74 6>, <83 4>, <125 2>, <128 2>, <154 7>; 36132c23138SJohan Hovold 36232c23138SJohan Hovold kybd_default: kybd-default-state { 36332c23138SJohan Hovold disable { 36432c23138SJohan Hovold pins = "gpio102"; 36532c23138SJohan Hovold function = "gpio"; 36632c23138SJohan Hovold output-low; 36732c23138SJohan Hovold }; 36832c23138SJohan Hovold 36932c23138SJohan Hovold int-n { 37032c23138SJohan Hovold pins = "gpio104"; 37132c23138SJohan Hovold function = "gpio"; 37232c23138SJohan Hovold bias-disable; 37332c23138SJohan Hovold }; 37432c23138SJohan Hovold 37532c23138SJohan Hovold reset { 37632c23138SJohan Hovold pins = "gpio105"; 37732c23138SJohan Hovold function = "gpio"; 37832c23138SJohan Hovold bias-disable; 37932c23138SJohan Hovold }; 38032c23138SJohan Hovold }; 38132c23138SJohan Hovold 38232c23138SJohan Hovold qup0_i2c4_default: qup0-i2c4-default-state { 38332c23138SJohan Hovold pins = "gpio171", "gpio172"; 38432c23138SJohan Hovold function = "qup4"; 38532c23138SJohan Hovold bias-disable; 38632c23138SJohan Hovold drive-strength = <16>; 38732c23138SJohan Hovold }; 38832c23138SJohan Hovold 38932c23138SJohan Hovold qup2_i2c5_default: qup2-i2c5-default-state { 39032c23138SJohan Hovold pins = "gpio81", "gpio82"; 39132c23138SJohan Hovold function = "qup21"; 39232c23138SJohan Hovold bias-disable; 39332c23138SJohan Hovold drive-strength = <16>; 39432c23138SJohan Hovold }; 39532c23138SJohan Hovold 39632c23138SJohan Hovold tpad_default: tpad-default-state { 39732c23138SJohan Hovold int-n { 39832c23138SJohan Hovold pins = "gpio182"; 39932c23138SJohan Hovold function = "gpio"; 40032c23138SJohan Hovold bias-disable; 40132c23138SJohan Hovold }; 40232c23138SJohan Hovold }; 40332c23138SJohan Hovold 40432c23138SJohan Hovold ts0_default: ts0-default-state { 40532c23138SJohan Hovold int-n { 40632c23138SJohan Hovold pins = "gpio175"; 40732c23138SJohan Hovold function = "gpio"; 408e11978deSJohan Hovold bias-disable; 40932c23138SJohan Hovold }; 41032c23138SJohan Hovold 41132c23138SJohan Hovold reset-n { 41232c23138SJohan Hovold pins = "gpio99"; 41332c23138SJohan Hovold function = "gpio"; 41432c23138SJohan Hovold output-high; 41532c23138SJohan Hovold drive-strength = <16>; 41632c23138SJohan Hovold }; 41732c23138SJohan Hovold }; 41832c23138SJohan Hovold}; 419