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