1// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2/* 3 * Copyright (c) 2023 Luka Panio <lukapanio@gmail.com> 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/arm/qcom,ids.h> 9#include <dt-bindings/phy/phy.h> 10#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 11#include "sm8250.dtsi" 12#include "pm8150.dtsi" 13#include "pm8150b.dtsi" 14#include "pm8150l.dtsi" 15 16/* 17 * Delete following upstream (sm8250.dtsi) reserved 18 * memory mappings which are different on this device. 19 */ 20/delete-node/ &adsp_mem; 21/delete-node/ &cdsp_secure_heap; 22/delete-node/ &slpi_mem; 23/delete-node/ &spss_mem; 24/delete-node/ &xbl_aop_mem; 25 26/ { 27 28 model = "Xiaomi Pad 6"; 29 compatible = "xiaomi,pipa", "qcom,sm8250"; 30 31 chassis-type = "tablet"; 32 33 /* required for bootloader to select correct board */ 34 qcom,msm-id = <QCOM_ID_SM8250 0x20001>; /* SM8250 v2.1 */ 35 qcom,board-id = <0x34 0>; 36 37 chosen { 38 #address-cells = <2>; 39 #size-cells = <2>; 40 ranges; 41 42 framebuffer: framebuffer@9c000000 { 43 compatible = "simple-framebuffer"; 44 reg = <0x0 0x9c000000 0x0 0x2300000>; 45 width = <1800>; 46 height = <2880>; 47 stride = <(1800 * 4)>; 48 format = "a8r8g8b8"; 49 }; 50 }; 51 52 battery: battery { 53 compatible = "simple-battery"; 54 charge-full-design-microamp-hours = <8840000>; 55 energy-full-design-microwatt-hours = <34300000>; 56 voltage-min-design-microvolt = <3400000>; 57 voltage-max-design-microvolt = <4370000>; 58 }; 59 60 bl_vddpos_5p5: bl-vddpos-regulator { 61 compatible = "regulator-fixed"; 62 regulator-name = "bl_vddpos_5p5"; 63 regulator-min-microvolt = <5500000>; 64 regulator-max-microvolt = <5500000>; 65 regulator-enable-ramp-delay = <233>; 66 gpio = <&tlmm 130 GPIO_ACTIVE_HIGH>; 67 enable-active-high; 68 regulator-boot-on; 69 }; 70 71 bl_vddneg_5p5: bl-vddneg-regulator { 72 compatible = "regulator-fixed"; 73 regulator-name = "bl_vddneg_5p5"; 74 regulator-min-microvolt = <5500000>; 75 regulator-max-microvolt = <5500000>; 76 regulator-enable-ramp-delay = <233>; 77 gpio = <&tlmm 131 GPIO_ACTIVE_HIGH>; 78 enable-active-high; 79 regulator-boot-on; 80 }; 81 82 gpio_keys: gpio-keys { 83 compatible = "gpio-keys"; 84 85 pinctrl-0 = <&vol_up_n>; 86 pinctrl-names = "default"; 87 88 key-vol-up { 89 label = "Volume Up"; 90 gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>; 91 linux,code = <KEY_VOLUMEUP>; 92 debounce-interval = <15>; 93 linux,can-disable; 94 wakeup-source; 95 }; 96 }; 97 98 vph_pwr: vph-pwr-regulator { 99 compatible = "regulator-fixed"; 100 regulator-name = "vph_pwr"; 101 regulator-min-microvolt = <3700000>; 102 regulator-max-microvolt = <3700000>; 103 }; 104 105 /* S6c is really ebi.lvl but it's there for supply map completeness sake. */ 106 vreg_s6c_0p88: smpc6-regulator { 107 compatible = "regulator-fixed"; 108 regulator-name = "vreg_s6c_0p88"; 109 regulator-min-microvolt = <880000>; 110 regulator-max-microvolt = <880000>; 111 regulator-always-on; 112 vin-supply = <&vph_pwr>; 113 }; 114 115 reserved-memory { 116 xbl_aop_mem: xbl-aop@80700000 { 117 reg = <0x0 0x80600000 0x0 0x260000>; 118 no-map; 119 }; 120 121 slpi_mem: slpi@88c00000 { 122 reg = <0x0 0x88c00000 0x0 0x2f00000>; 123 no-map; 124 }; 125 126 adsp_mem: adsp@8bb00000 { 127 reg = <0x0 0x8bb00000 0x0 0x2500000>; 128 no-map; 129 }; 130 131 spss_mem: spss@8e000000 { 132 reg = <0x0 0x8e000000 0x0 0x100000>; 133 no-map; 134 }; 135 136 cdsp_secure_heap: cdsp-secure-heap@8e100000 { 137 reg = <0x0 0x8e100000 0x0 0x4600000>; 138 no-map; 139 }; 140 141 cont_splash_mem: cont-splash@9c000000 { 142 reg = <0x0 0x9c000000 0x0 0x2300000>; 143 no-map; 144 }; 145 146 ramoops@b0000000 { 147 compatible = "ramoops"; 148 reg = <0x0 0xb0000000 0x0 0x400000>; 149 record-size = <0x1000>; 150 console-size = <0x200000>; 151 ecc-size = <16>; 152 no-map; 153 }; 154 }; 155}; 156 157&adsp { 158 firmware-name = "qcom/sm8250/xiaomi/pipa/adsp.mbn"; 159 status = "okay"; 160}; 161 162&apps_rsc { 163 regulators-0 { 164 compatible = "qcom,pm8150-rpmh-regulators"; 165 qcom,pmic-id = "a"; 166 167 vdd-s1-supply = <&vph_pwr>; 168 vdd-s2-supply = <&vph_pwr>; 169 vdd-s3-supply = <&vph_pwr>; 170 vdd-s4-supply = <&vph_pwr>; 171 vdd-s5-supply = <&vph_pwr>; 172 vdd-s6-supply = <&vph_pwr>; 173 vdd-s7-supply = <&vph_pwr>; 174 vdd-s8-supply = <&vph_pwr>; 175 vdd-s9-supply = <&vph_pwr>; 176 vdd-s10-supply = <&vph_pwr>; 177 vdd-l1-l8-l11-supply = <&vreg_s6c_0p88>; 178 vdd-l2-l10-supply = <&vreg_bob>; 179 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p95>; 180 vdd-l6-l9-supply = <&vreg_s8c_1p35>; 181 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>; 182 vdd-l13-l16-l17-supply = <&vreg_bob>; 183 184 /* (S1+S2+S3) - cx.lvl (ARC) */ 185 186 vreg_s4a_1p8: smps4 { 187 regulator-name = "vreg_s4a_1p8"; 188 regulator-min-microvolt = <1800000>; 189 regulator-max-microvolt = <1920000>; 190 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 191 regulator-allow-set-load; 192 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 193 RPMH_REGULATOR_MODE_HPM>; 194 }; 195 196 vreg_s5a_1p9: smps5 { 197 regulator-name = "vreg_s5a_1p9"; 198 regulator-min-microvolt = <1900000>; 199 regulator-max-microvolt = <2040000>; 200 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 201 }; 202 203 vreg_s6a_0p95: smps6 { 204 regulator-name = "vreg_s6a_0p95"; 205 regulator-min-microvolt = <600000>; 206 regulator-max-microvolt = <1128000>; 207 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 208 }; 209 210 vreg_l2a_3p1: ldo2 { 211 regulator-name = "vreg_l2a_3p1"; 212 regulator-min-microvolt = <3072000>; 213 regulator-max-microvolt = <3072000>; 214 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 215 }; 216 217 vreg_l3a_0p9: ldo3 { 218 regulator-name = "vreg_l3a_0p9"; 219 regulator-min-microvolt = <928000>; 220 regulator-max-microvolt = <932000>; 221 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 222 }; 223 224 /* L4 - lmx.lvl (ARC) */ 225 226 vreg_l5a_0p88: ldo5 { 227 regulator-name = "vreg_l5a_0p88"; 228 regulator-min-microvolt = <880000>; 229 regulator-max-microvolt = <880000>; 230 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 231 }; 232 233 vreg_l6a_1p2: ldo6 { 234 regulator-name = "vreg_l6a_1p2"; 235 regulator-min-microvolt = <1200000>; 236 regulator-max-microvolt = <1200000>; 237 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 238 regulator-allow-set-load; 239 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 240 RPMH_REGULATOR_MODE_HPM>; 241 }; 242 243 /* L7 is unused. */ 244 245 vreg_l9a_1p2: ldo9 { 246 regulator-name = "vreg_l9a_1p2"; 247 regulator-min-microvolt = <1200000>; 248 regulator-max-microvolt = <1200000>; 249 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 250 }; 251 252 /* L10 is unused, L11 - lcx.lvl (ARC) */ 253 254 vreg_l12a_1p8: ldo12 { 255 regulator-name = "vreg_l12a_1p8"; 256 regulator-min-microvolt = <1800000>; 257 regulator-max-microvolt = <1800000>; 258 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 259 }; 260 261 /* L13 is unused. */ 262 263 vreg_l14a_1p88: ldo14 { 264 regulator-name = "vreg_l14a_1p88"; 265 regulator-min-microvolt = <1880000>; 266 regulator-max-microvolt = <1880000>; 267 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 268 }; 269 270 /* L15 & L16 are unused. */ 271 272 vreg_l17a_3p0: ldo17 { 273 regulator-name = "vreg_l17a_3p0"; 274 regulator-min-microvolt = <2496000>; 275 regulator-max-microvolt = <3008000>; 276 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 277 regulator-allow-set-load; 278 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 279 RPMH_REGULATOR_MODE_HPM>; 280 }; 281 282 vreg_l18a_0p9: ldo18 { 283 regulator-name = "vreg_l18a_0p9"; 284 regulator-min-microvolt = <800000>; 285 regulator-max-microvolt = <920000>; 286 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 287 }; 288 }; 289 290 regulators-1 { 291 compatible = "qcom,pm8150l-rpmh-regulators"; 292 qcom,pmic-id = "c"; 293 294 vdd-s1-supply = <&vph_pwr>; 295 vdd-s2-supply = <&vph_pwr>; 296 vdd-s3-supply = <&vph_pwr>; 297 vdd-s4-supply = <&vph_pwr>; 298 vdd-s5-supply = <&vph_pwr>; 299 vdd-s6-supply = <&vph_pwr>; 300 vdd-s7-supply = <&vph_pwr>; 301 vdd-s8-supply = <&vph_pwr>; 302 vdd-l1-l8-supply = <&vreg_s4a_1p8>; 303 vdd-l2-l3-supply = <&vreg_s8c_1p35>; 304 vdd-l4-l5-l6-supply = <&vreg_bob>; 305 vdd-l7-l11-supply = <&vreg_bob>; 306 vdd-l9-l10-supply = <&vreg_bob>; 307 vdd-bob-supply = <&vph_pwr>; 308 309 vreg_bob: bob { 310 regulator-name = "vreg_bob"; 311 regulator-min-microvolt = <3350000>; 312 regulator-max-microvolt = <3960000>; 313 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 314 }; 315 316 /* 317 * S1-S6 are ARCs: 318 * (S1+S2) - gfx.lvl, 319 * S3 - mx.lvl, 320 * (S4+S5) - mmcx.lvl, 321 * S6 - ebi.lvl 322 */ 323 324 vreg_s7c_0p35: smps7 { 325 regulator-name = "vreg_s7c_0p35"; 326 regulator-min-microvolt = <348000>; 327 regulator-max-microvolt = <1000000>; 328 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 329 }; 330 331 vreg_s8c_1p35: smps8 { 332 regulator-name = "vreg_s8c_1p35"; 333 regulator-min-microvolt = <1200000>; 334 regulator-max-microvolt = <1400000>; 335 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 336 }; 337 338 vreg_l1c_1p8: ldo1 { 339 regulator-name = "vreg_l1c_1p8"; 340 regulator-min-microvolt = <1800000>; 341 regulator-max-microvolt = <1800000>; 342 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 343 }; 344 345 /* L2-4 are unused. */ 346 347 vreg_l5c_1p8: ldo5 { 348 regulator-name = "vreg_l5c_1p8"; 349 regulator-min-microvolt = <1800000>; 350 regulator-max-microvolt = <2800000>; 351 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 352 }; 353 354 vreg_l6c_2p9: ldo6 { 355 regulator-name = "vreg_l6c_2p9"; 356 regulator-min-microvolt = <1800000>; 357 regulator-max-microvolt = <2960000>; 358 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 359 regulator-allow-set-load; 360 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 361 RPMH_REGULATOR_MODE_HPM>; 362 }; 363 364 vreg_l7c_2p85: ldo7 { 365 regulator-name = "vreg_l7c_2p85"; 366 regulator-min-microvolt = <2856000>; 367 regulator-max-microvolt = <3104000>; 368 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 369 }; 370 371 vreg_l8c_1p8: ldo8 { 372 regulator-name = "vreg_l8c_1p8"; 373 regulator-min-microvolt = <1800000>; 374 regulator-max-microvolt = <1800000>; 375 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 376 }; 377 378 vreg_l9c_2p9: ldo9 { 379 regulator-name = "vreg_l9c_2p9"; 380 regulator-min-microvolt = <2704000>; 381 regulator-max-microvolt = <2960000>; 382 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 383 regulator-allow-set-load; 384 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 385 RPMH_REGULATOR_MODE_HPM>; 386 }; 387 388 vreg_l10c_3p3: ldo10 { 389 regulator-name = "vreg_l10c_3p3"; 390 regulator-min-microvolt = <3000000>; 391 regulator-max-microvolt = <3312000>; 392 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 393 }; 394 395 vreg_l11c_3p0: ldo11 { 396 regulator-name = "vreg_l11c_3p0"; 397 regulator-min-microvolt = <3104000>; 398 regulator-max-microvolt = <3304000>; 399 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 400 }; 401 }; 402}; 403 404&cdsp { 405 firmware-name = "qcom/sm8250/xiaomi/pipa/cdsp.mbn"; 406 status = "okay"; 407}; 408 409&gmu { 410 status = "okay"; 411}; 412 413&gpi_dma0 { 414 status = "okay"; 415}; 416 417&gpi_dma1 { 418 status = "okay"; 419}; 420 421&gpi_dma2 { 422 status = "okay"; 423}; 424 425&gpu { 426 status = "okay"; 427 428 zap-shader { 429 memory-region = <&gpu_mem>; 430 firmware-name = "qcom/sm8250/xiaomi/pipa/a650_zap.mbn"; 431 }; 432}; 433 434&i2c11 { 435 clock-frequency = <400000>; 436 status = "okay"; 437 438 backlight: backlight@11 { 439 compatible = "kinetic,ktz8866"; 440 reg = <0x11>; 441 vddpos-supply = <&bl_vddpos_5p5>; 442 vddneg-supply = <&bl_vddneg_5p5>; 443 enable-gpios = <&tlmm 139 GPIO_ACTIVE_HIGH>; 444 current-num-sinks = <5>; 445 kinetic,current-ramp-delay-ms = <128>; 446 kinetic,led-enable-ramp-delay-ms = <1>; 447 kinetic,enable-lcd-bias; 448 }; 449}; 450 451&pcie0 { 452 status = "okay"; 453}; 454 455&pcie0_phy { 456 vdda-phy-supply = <&vreg_l5a_0p88>; 457 vdda-pll-supply = <&vreg_l9a_1p2>; 458 status = "okay"; 459}; 460 461&pm8150_gpios { 462 vol_up_n: vol-up-n-state { 463 pins = "gpio6"; 464 function = "normal"; 465 power-source = <1>; 466 input-enable; 467 bias-pull-up; 468 }; 469}; 470 471&pon { 472 mode-bootloader = <0x2>; 473 mode-recovery = <0x1>; 474}; 475 476&pon_pwrkey { 477 status = "okay"; 478}; 479 480&pon_resin { 481 linux,code = <KEY_VOLUMEDOWN>; 482 status = "okay"; 483}; 484 485&qupv3_id_0 { 486 status = "okay"; 487}; 488 489&qupv3_id_1 { 490 status = "okay"; 491}; 492 493&qupv3_id_2 { 494 status = "okay"; 495}; 496 497&slpi { 498 firmware-name = "qcom/sm8250/xiaomi/pipa/slpi.mbn"; 499 status = "okay"; 500}; 501 502&usb_1 { 503 status = "okay"; 504}; 505 506&usb_1_dwc3 { 507 dr_mode = "peripheral"; 508}; 509 510&usb_1_hsphy { 511 vdda-pll-supply = <&vreg_l5a_0p88>; 512 vdda18-supply = <&vreg_l12a_1p8>; 513 vdda33-supply = <&vreg_l2a_3p1>; 514 status = "okay"; 515}; 516 517&usb_1_qmpphy { 518 status = "okay"; 519 vdda-phy-supply = <&vreg_l9a_1p2>; 520 vdda-pll-supply = <&vreg_l18a_0p9>; 521}; 522 523&ufs_mem_hc { 524 vcc-supply = <&vreg_l17a_3p0>; 525 vcc-max-microamp = <800000>; 526 vccq-supply = <&vreg_l6a_1p2>; 527 vccq-max-microamp = <800000>; 528 vccq2-supply = <&vreg_s4a_1p8>; 529 vccq2-max-microamp = <800000>; 530 status = "okay"; 531}; 532 533&ufs_mem_phy { 534 vdda-phy-supply = <&vreg_l5a_0p88>; 535 vdda-pll-supply = <&vreg_l9a_1p2>; 536 status = "okay"; 537}; 538 539&venus { 540 firmware-name = "qcom/sm8250/xiaomi/pipa/venus.mbn"; 541 status = "okay"; 542}; 543