1*32c23138SJohan Hovold// SPDX-License-Identifier: BSD-3-Clause 2*32c23138SJohan Hovold/* 3*32c23138SJohan Hovold * Copyright (c) 2021, The Linux Foundation. All rights reserved. 4*32c23138SJohan Hovold * Copyright (c) 2022, Linaro Limited 5*32c23138SJohan Hovold */ 6*32c23138SJohan Hovold 7*32c23138SJohan Hovold/dts-v1/; 8*32c23138SJohan Hovold 9*32c23138SJohan Hovold#include <dt-bindings/gpio/gpio.h> 10*32c23138SJohan Hovold#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 11*32c23138SJohan Hovold 12*32c23138SJohan Hovold#include "sc8280xp.dtsi" 13*32c23138SJohan Hovold#include "sc8280xp-pmics.dtsi" 14*32c23138SJohan Hovold 15*32c23138SJohan Hovold/ { 16*32c23138SJohan Hovold model = "Lenovo ThinkPad X13s"; 17*32c23138SJohan Hovold compatible = "lenovo,thinkpad-x13s", "qcom,sc8280xp"; 18*32c23138SJohan Hovold 19*32c23138SJohan Hovold backlight { 20*32c23138SJohan Hovold compatible = "pwm-backlight"; 21*32c23138SJohan Hovold pwms = <&pmc8280c_lpg 3 1000000>; 22*32c23138SJohan Hovold enable-gpios = <&pmc8280_1_gpios 8 GPIO_ACTIVE_HIGH>; 23*32c23138SJohan Hovold power-supply = <&vreg_edp_bl>; 24*32c23138SJohan Hovold 25*32c23138SJohan Hovold pinctrl-names = "default"; 26*32c23138SJohan Hovold pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>; 27*32c23138SJohan Hovold }; 28*32c23138SJohan Hovold 29*32c23138SJohan Hovold vreg_edp_bl: regulator-edp-bl { 30*32c23138SJohan Hovold compatible = "regulator-fixed"; 31*32c23138SJohan Hovold 32*32c23138SJohan Hovold regulator-name = "VBL9"; 33*32c23138SJohan Hovold regulator-min-microvolt = <3600000>; 34*32c23138SJohan Hovold regulator-max-microvolt = <3600000>; 35*32c23138SJohan Hovold 36*32c23138SJohan Hovold gpio = <&pmc8280_1_gpios 9 GPIO_ACTIVE_HIGH>; 37*32c23138SJohan Hovold enable-active-high; 38*32c23138SJohan Hovold 39*32c23138SJohan Hovold pinctrl-names = "default"; 40*32c23138SJohan Hovold pinctrl-0 = <&edp_bl_reg_en>; 41*32c23138SJohan Hovold 42*32c23138SJohan Hovold regulator-boot-on; 43*32c23138SJohan Hovold }; 44*32c23138SJohan Hovold 45*32c23138SJohan Hovold vreg_misc_3p3: regulator-misc-3p3 { 46*32c23138SJohan Hovold compatible = "regulator-fixed"; 47*32c23138SJohan Hovold 48*32c23138SJohan Hovold regulator-name = "VCC3B"; 49*32c23138SJohan Hovold regulator-min-microvolt = <3300000>; 50*32c23138SJohan Hovold regulator-max-microvolt = <3300000>; 51*32c23138SJohan Hovold 52*32c23138SJohan Hovold gpio = <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>; 53*32c23138SJohan Hovold enable-active-high; 54*32c23138SJohan Hovold 55*32c23138SJohan Hovold pinctrl-names = "default"; 56*32c23138SJohan Hovold pinctrl-0 = <&misc_3p3_reg_en>; 57*32c23138SJohan Hovold 58*32c23138SJohan Hovold regulator-boot-on; 59*32c23138SJohan Hovold regulator-always-on; 60*32c23138SJohan Hovold }; 61*32c23138SJohan Hovold}; 62*32c23138SJohan Hovold 63*32c23138SJohan Hovold&apps_rsc { 64*32c23138SJohan Hovold pmc8280-1-rpmh-regulators { 65*32c23138SJohan Hovold compatible = "qcom,pm8350-rpmh-regulators"; 66*32c23138SJohan Hovold qcom,pmic-id = "b"; 67*32c23138SJohan Hovold 68*32c23138SJohan Hovold vdd-l3-l5-supply = <&vreg_s11b>; 69*32c23138SJohan Hovold 70*32c23138SJohan Hovold vreg_s11b: smps11 { 71*32c23138SJohan Hovold regulator-name = "vreg_s11b"; 72*32c23138SJohan Hovold regulator-min-microvolt = <1272000>; 73*32c23138SJohan Hovold regulator-max-microvolt = <1272000>; 74*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 75*32c23138SJohan Hovold }; 76*32c23138SJohan Hovold 77*32c23138SJohan Hovold vreg_l3b: ldo3 { 78*32c23138SJohan Hovold regulator-name = "vreg_l3b"; 79*32c23138SJohan Hovold regulator-min-microvolt = <1200000>; 80*32c23138SJohan Hovold regulator-max-microvolt = <1200000>; 81*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 82*32c23138SJohan Hovold regulator-allow-set-load; 83*32c23138SJohan Hovold regulator-boot-on; 84*32c23138SJohan Hovold }; 85*32c23138SJohan Hovold 86*32c23138SJohan Hovold vreg_l4b: ldo4 { 87*32c23138SJohan Hovold regulator-name = "vreg_l4b"; 88*32c23138SJohan Hovold regulator-min-microvolt = <912000>; 89*32c23138SJohan Hovold regulator-max-microvolt = <912000>; 90*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 91*32c23138SJohan Hovold regulator-allow-set-load; 92*32c23138SJohan Hovold }; 93*32c23138SJohan Hovold 94*32c23138SJohan Hovold vreg_l6b: ldo6 { 95*32c23138SJohan Hovold regulator-name = "vreg_l6b"; 96*32c23138SJohan Hovold regulator-min-microvolt = <880000>; 97*32c23138SJohan Hovold regulator-max-microvolt = <880000>; 98*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 99*32c23138SJohan Hovold regulator-allow-set-load; 100*32c23138SJohan Hovold regulator-boot-on; 101*32c23138SJohan Hovold regulator-always-on; // FIXME: VDD_A_EDP_0_0P9 102*32c23138SJohan Hovold }; 103*32c23138SJohan Hovold }; 104*32c23138SJohan Hovold 105*32c23138SJohan Hovold pmc8280c-rpmh-regulators { 106*32c23138SJohan Hovold compatible = "qcom,pm8350c-rpmh-regulators"; 107*32c23138SJohan Hovold qcom,pmic-id = "c"; 108*32c23138SJohan Hovold 109*32c23138SJohan Hovold vreg_l1c: ldo1 { 110*32c23138SJohan Hovold regulator-name = "vreg_l1c"; 111*32c23138SJohan Hovold regulator-min-microvolt = <1800000>; 112*32c23138SJohan Hovold regulator-max-microvolt = <1800000>; 113*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 114*32c23138SJohan Hovold regulator-allow-set-load; 115*32c23138SJohan Hovold }; 116*32c23138SJohan Hovold 117*32c23138SJohan Hovold vreg_l12c: ldo12 { 118*32c23138SJohan Hovold regulator-name = "vreg_l12c"; 119*32c23138SJohan Hovold regulator-min-microvolt = <1800000>; 120*32c23138SJohan Hovold regulator-max-microvolt = <1800000>; 121*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 122*32c23138SJohan Hovold regulator-allow-set-load; 123*32c23138SJohan Hovold }; 124*32c23138SJohan Hovold 125*32c23138SJohan Hovold vreg_l13c: ldo13 { 126*32c23138SJohan Hovold regulator-name = "vreg_l13c"; 127*32c23138SJohan Hovold regulator-min-microvolt = <3072000>; 128*32c23138SJohan Hovold regulator-max-microvolt = <3072000>; 129*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 130*32c23138SJohan Hovold regulator-allow-set-load; 131*32c23138SJohan Hovold }; 132*32c23138SJohan Hovold }; 133*32c23138SJohan Hovold 134*32c23138SJohan Hovold pmc8280-2-rpmh-regulators { 135*32c23138SJohan Hovold compatible = "qcom,pm8350-rpmh-regulators"; 136*32c23138SJohan Hovold qcom,pmic-id = "d"; 137*32c23138SJohan Hovold 138*32c23138SJohan Hovold vdd-l1-l4-supply = <&vreg_s11b>; 139*32c23138SJohan Hovold 140*32c23138SJohan Hovold vreg_l3d: ldo3 { 141*32c23138SJohan Hovold regulator-name = "vreg_l3d"; 142*32c23138SJohan Hovold regulator-min-microvolt = <1200000>; 143*32c23138SJohan Hovold regulator-max-microvolt = <1200000>; 144*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 145*32c23138SJohan Hovold regulator-allow-set-load; 146*32c23138SJohan Hovold }; 147*32c23138SJohan Hovold 148*32c23138SJohan Hovold vreg_l4d: ldo4 { 149*32c23138SJohan Hovold regulator-name = "vreg_l4d"; 150*32c23138SJohan Hovold regulator-min-microvolt = <1200000>; 151*32c23138SJohan Hovold regulator-max-microvolt = <1200000>; 152*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 153*32c23138SJohan Hovold regulator-allow-set-load; 154*32c23138SJohan Hovold }; 155*32c23138SJohan Hovold 156*32c23138SJohan Hovold vreg_l7d: ldo7 { 157*32c23138SJohan Hovold regulator-name = "vreg_l7d"; 158*32c23138SJohan Hovold regulator-min-microvolt = <3072000>; 159*32c23138SJohan Hovold regulator-max-microvolt = <3072000>; 160*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 161*32c23138SJohan Hovold regulator-allow-set-load; 162*32c23138SJohan Hovold }; 163*32c23138SJohan Hovold 164*32c23138SJohan Hovold vreg_l9d: ldo9 { 165*32c23138SJohan Hovold regulator-name = "vreg_l9d"; 166*32c23138SJohan Hovold regulator-min-microvolt = <912000>; 167*32c23138SJohan Hovold regulator-max-microvolt = <912000>; 168*32c23138SJohan Hovold regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 169*32c23138SJohan Hovold regulator-allow-set-load; 170*32c23138SJohan Hovold }; 171*32c23138SJohan Hovold }; 172*32c23138SJohan Hovold}; 173*32c23138SJohan Hovold 174*32c23138SJohan Hovold&pmc8280c_lpg { 175*32c23138SJohan Hovold status = "okay"; 176*32c23138SJohan Hovold}; 177*32c23138SJohan Hovold 178*32c23138SJohan Hovold&pmk8280_pon_pwrkey { 179*32c23138SJohan Hovold status = "okay"; 180*32c23138SJohan Hovold}; 181*32c23138SJohan Hovold 182*32c23138SJohan Hovold&qup0 { 183*32c23138SJohan Hovold status = "okay"; 184*32c23138SJohan Hovold}; 185*32c23138SJohan Hovold 186*32c23138SJohan Hovold&qup0_i2c4 { 187*32c23138SJohan Hovold clock-frequency = <400000>; 188*32c23138SJohan Hovold 189*32c23138SJohan Hovold pinctrl-names = "default"; 190*32c23138SJohan Hovold pinctrl-0 = <&qup0_i2c4_default>, <&ts0_default>; 191*32c23138SJohan Hovold 192*32c23138SJohan Hovold status = "okay"; 193*32c23138SJohan Hovold 194*32c23138SJohan Hovold /* FIXME: verify */ 195*32c23138SJohan Hovold touchscreen@10 { 196*32c23138SJohan Hovold compatible = "hid-over-i2c"; 197*32c23138SJohan Hovold reg = <0x10>; 198*32c23138SJohan Hovold hid-descr-addr = <0x1>; 199*32c23138SJohan Hovold interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>; 200*32c23138SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 201*32c23138SJohan Hovold }; 202*32c23138SJohan Hovold}; 203*32c23138SJohan Hovold 204*32c23138SJohan Hovold&qup1 { 205*32c23138SJohan Hovold status = "okay"; 206*32c23138SJohan Hovold}; 207*32c23138SJohan Hovold 208*32c23138SJohan Hovold&qup2 { 209*32c23138SJohan Hovold status = "okay"; 210*32c23138SJohan Hovold}; 211*32c23138SJohan Hovold 212*32c23138SJohan Hovold&qup2_i2c5 { 213*32c23138SJohan Hovold clock-frequency = <400000>; 214*32c23138SJohan Hovold 215*32c23138SJohan Hovold pinctrl-names = "default"; 216*32c23138SJohan Hovold pinctrl-0 = <&qup2_i2c5_default>, <&kybd_default>, <&tpad_default>; 217*32c23138SJohan Hovold 218*32c23138SJohan Hovold status = "okay"; 219*32c23138SJohan Hovold 220*32c23138SJohan Hovold touchpad@2c { 221*32c23138SJohan Hovold compatible = "hid-over-i2c"; 222*32c23138SJohan Hovold reg = <0x2c>; 223*32c23138SJohan Hovold hid-descr-addr = <0x20>; 224*32c23138SJohan Hovold interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>; 225*32c23138SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 226*32c23138SJohan Hovold }; 227*32c23138SJohan Hovold 228*32c23138SJohan Hovold keyboard@68 { 229*32c23138SJohan Hovold compatible = "hid-over-i2c"; 230*32c23138SJohan Hovold reg = <0x68>; 231*32c23138SJohan Hovold hid-descr-addr = <0x1>; 232*32c23138SJohan Hovold interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>; 233*32c23138SJohan Hovold vdd-supply = <&vreg_misc_3p3>; 234*32c23138SJohan Hovold }; 235*32c23138SJohan Hovold}; 236*32c23138SJohan Hovold 237*32c23138SJohan Hovold&remoteproc_adsp { 238*32c23138SJohan Hovold firmware-name = "qcom/sc8280xp/qcadsp8280.mbn"; 239*32c23138SJohan Hovold 240*32c23138SJohan Hovold status = "okay"; 241*32c23138SJohan Hovold}; 242*32c23138SJohan Hovold 243*32c23138SJohan Hovold&remoteproc_nsp0 { 244*32c23138SJohan Hovold firmware-name = "qcom/sc8280xp/qccdsp8280.mbn"; 245*32c23138SJohan Hovold 246*32c23138SJohan Hovold status = "okay"; 247*32c23138SJohan Hovold}; 248*32c23138SJohan Hovold 249*32c23138SJohan Hovold&usb_0 { 250*32c23138SJohan Hovold status = "okay"; 251*32c23138SJohan Hovold}; 252*32c23138SJohan Hovold 253*32c23138SJohan Hovold&usb_0_dwc3 { 254*32c23138SJohan Hovold /* TODO: Define USB-C connector properly */ 255*32c23138SJohan Hovold dr_mode = "host"; 256*32c23138SJohan Hovold}; 257*32c23138SJohan Hovold 258*32c23138SJohan Hovold&usb_0_hsphy { 259*32c23138SJohan Hovold vdda-pll-supply = <&vreg_l9d>; 260*32c23138SJohan Hovold vdda18-supply = <&vreg_l1c>; 261*32c23138SJohan Hovold vdda33-supply = <&vreg_l7d>; 262*32c23138SJohan Hovold 263*32c23138SJohan Hovold status = "okay"; 264*32c23138SJohan Hovold}; 265*32c23138SJohan Hovold 266*32c23138SJohan Hovold&usb_0_qmpphy { 267*32c23138SJohan Hovold vdda-phy-supply = <&vreg_l9d>; 268*32c23138SJohan Hovold vdda-pll-supply = <&vreg_l4d>; 269*32c23138SJohan Hovold 270*32c23138SJohan Hovold status = "okay"; 271*32c23138SJohan Hovold}; 272*32c23138SJohan Hovold 273*32c23138SJohan Hovold&usb_1 { 274*32c23138SJohan Hovold status = "okay"; 275*32c23138SJohan Hovold}; 276*32c23138SJohan Hovold 277*32c23138SJohan Hovold&usb_1_dwc3 { 278*32c23138SJohan Hovold /* TODO: Define USB-C connector properly */ 279*32c23138SJohan Hovold dr_mode = "host"; 280*32c23138SJohan Hovold}; 281*32c23138SJohan Hovold 282*32c23138SJohan Hovold&usb_1_hsphy { 283*32c23138SJohan Hovold vdda-pll-supply = <&vreg_l4b>; 284*32c23138SJohan Hovold vdda18-supply = <&vreg_l1c>; 285*32c23138SJohan Hovold vdda33-supply = <&vreg_l13c>; 286*32c23138SJohan Hovold 287*32c23138SJohan Hovold status = "okay"; 288*32c23138SJohan Hovold}; 289*32c23138SJohan Hovold 290*32c23138SJohan Hovold&usb_1_qmpphy { 291*32c23138SJohan Hovold vdda-phy-supply = <&vreg_l4b>; 292*32c23138SJohan Hovold vdda-pll-supply = <&vreg_l3b>; 293*32c23138SJohan Hovold 294*32c23138SJohan Hovold status = "okay"; 295*32c23138SJohan Hovold}; 296*32c23138SJohan Hovold 297*32c23138SJohan Hovold&xo_board_clk { 298*32c23138SJohan Hovold clock-frequency = <38400000>; 299*32c23138SJohan Hovold}; 300*32c23138SJohan Hovold 301*32c23138SJohan Hovold/* PINCTRL */ 302*32c23138SJohan Hovold 303*32c23138SJohan Hovold&pmc8280_1_gpios { 304*32c23138SJohan Hovold edp_bl_en: edp-bl-en-state { 305*32c23138SJohan Hovold pins = "gpio8"; 306*32c23138SJohan Hovold function = "normal"; 307*32c23138SJohan Hovold }; 308*32c23138SJohan Hovold 309*32c23138SJohan Hovold edp_bl_reg_en: edp-bl-reg-en-state { 310*32c23138SJohan Hovold pins = "gpio9"; 311*32c23138SJohan Hovold function = "normal"; 312*32c23138SJohan Hovold }; 313*32c23138SJohan Hovold 314*32c23138SJohan Hovold misc_3p3_reg_en: misc-3p3-reg-en-state { 315*32c23138SJohan Hovold pins = "gpio1"; 316*32c23138SJohan Hovold function = "normal"; 317*32c23138SJohan Hovold }; 318*32c23138SJohan Hovold}; 319*32c23138SJohan Hovold 320*32c23138SJohan Hovold&pmc8280c_gpios { 321*32c23138SJohan Hovold edp_bl_pwm: edp-bl-pwm-state { 322*32c23138SJohan Hovold pins = "gpio8"; 323*32c23138SJohan Hovold function = "func1"; 324*32c23138SJohan Hovold }; 325*32c23138SJohan Hovold}; 326*32c23138SJohan Hovold 327*32c23138SJohan Hovold&tlmm { 328*32c23138SJohan Hovold gpio-reserved-ranges = <70 2>, <74 6>, <83 4>, <125 2>, <128 2>, <154 7>; 329*32c23138SJohan Hovold 330*32c23138SJohan Hovold kybd_default: kybd-default-state { 331*32c23138SJohan Hovold disable { 332*32c23138SJohan Hovold pins = "gpio102"; 333*32c23138SJohan Hovold function = "gpio"; 334*32c23138SJohan Hovold output-low; 335*32c23138SJohan Hovold }; 336*32c23138SJohan Hovold 337*32c23138SJohan Hovold int-n { 338*32c23138SJohan Hovold pins = "gpio104"; 339*32c23138SJohan Hovold function = "gpio"; 340*32c23138SJohan Hovold bias-disable; 341*32c23138SJohan Hovold }; 342*32c23138SJohan Hovold 343*32c23138SJohan Hovold reset { 344*32c23138SJohan Hovold pins = "gpio105"; 345*32c23138SJohan Hovold function = "gpio"; 346*32c23138SJohan Hovold bias-disable; 347*32c23138SJohan Hovold }; 348*32c23138SJohan Hovold }; 349*32c23138SJohan Hovold 350*32c23138SJohan Hovold qup0_i2c4_default: qup0-i2c4-default-state { 351*32c23138SJohan Hovold pins = "gpio171", "gpio172"; 352*32c23138SJohan Hovold function = "qup4"; 353*32c23138SJohan Hovold bias-disable; 354*32c23138SJohan Hovold drive-strength = <16>; 355*32c23138SJohan Hovold }; 356*32c23138SJohan Hovold 357*32c23138SJohan Hovold qup2_i2c5_default: qup2-i2c5-default-state { 358*32c23138SJohan Hovold pins = "gpio81", "gpio82"; 359*32c23138SJohan Hovold function = "qup21"; 360*32c23138SJohan Hovold bias-disable; 361*32c23138SJohan Hovold drive-strength = <16>; 362*32c23138SJohan Hovold }; 363*32c23138SJohan Hovold 364*32c23138SJohan Hovold tpad_default: tpad-default-state { 365*32c23138SJohan Hovold int-n { 366*32c23138SJohan Hovold pins = "gpio182"; 367*32c23138SJohan Hovold function = "gpio"; 368*32c23138SJohan Hovold bias-disable; 369*32c23138SJohan Hovold }; 370*32c23138SJohan Hovold }; 371*32c23138SJohan Hovold 372*32c23138SJohan Hovold ts0_default: ts0-default-state { 373*32c23138SJohan Hovold int-n { 374*32c23138SJohan Hovold pins = "gpio175"; 375*32c23138SJohan Hovold function = "gpio"; 376*32c23138SJohan Hovold bias-pull-up; 377*32c23138SJohan Hovold }; 378*32c23138SJohan Hovold 379*32c23138SJohan Hovold reset-n { 380*32c23138SJohan Hovold pins = "gpio99"; 381*32c23138SJohan Hovold function = "gpio"; 382*32c23138SJohan Hovold output-high; 383*32c23138SJohan Hovold drive-strength = <16>; 384*32c23138SJohan Hovold }; 385*32c23138SJohan Hovold }; 386*32c23138SJohan Hovold}; 387