1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2025, Thundercomm All rights reserved. 4 */ 5 6/dts-v1/; 7 8/* PM7250B is configured to use SID8/9 */ 9#define PM7250B_SID 8 10#define PM7250B_SID1 9 11 12#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h> 13#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h> 14#include <dt-bindings/leds/common.h> 15#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 16#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 17#include "kodiak.dtsi" 18#include "pm7250b.dtsi" 19#include "pm7325.dtsi" 20#include "pm8350c.dtsi" /* PM7350C */ 21#include "pmk8350.dtsi" /* PMK7325 */ 22 23/delete-node/ &adsp_mem; 24/delete-node/ &cdsp_mem; 25/delete-node/ &ipa_fw_mem; 26/delete-node/ &mpss_mem; 27/delete-node/ &remoteproc_mpss; 28/delete-node/ &remoteproc_wpss; 29/delete-node/ &rmtfs_mem; 30/delete-node/ &video_mem; 31/delete-node/ &wifi; 32/delete-node/ &wlan_ce_mem; 33/delete-node/ &wlan_fw_mem; 34/delete-node/ &wpss_mem; 35/delete-node/ &xbl_mem; 36 37/ { 38 model = "Thundercomm RUBIK Pi 3"; 39 compatible = "thundercomm,rubikpi3", "qcom,qcm6490"; 40 chassis-type = "embedded"; 41 42 aliases { 43 serial0 = &uart5; 44 }; 45 46 chosen { 47 stdout-path = "serial0:115200n8"; 48 }; 49 50 gpio-keys { 51 compatible = "gpio-keys"; 52 53 pinctrl-0 = <&kypd_vol_up_n>; 54 pinctrl-names = "default"; 55 56 key-volume-up { 57 label = "Volume Up"; 58 gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>; 59 linux,code = <KEY_VOLUMEUP>; 60 linux,can-disable; 61 }; 62 }; 63 64 hdmi-connector { 65 compatible = "hdmi-connector"; 66 type = "a"; 67 68 port { 69 hdmi_con: endpoint { 70 remote-endpoint = <<9611_out>; 71 }; 72 }; 73 }; 74 75 pmic-glink { 76 compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink"; 77 78 #address-cells = <1>; 79 #size-cells = <0>; 80 orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>; 81 82 connector@0 { 83 compatible = "usb-c-connector"; 84 reg = <0>; 85 power-role = "dual"; 86 data-role = "dual"; 87 88 ports { 89 #address-cells = <1>; 90 #size-cells = <0>; 91 92 port@0 { 93 reg = <0>; 94 95 pmic_glink_hs_in: endpoint { 96 remote-endpoint = <&usb_1_dwc3_hs>; 97 }; 98 }; 99 100 port@1 { 101 reg = <1>; 102 103 pmic_glink_ss_in: endpoint { 104 remote-endpoint = <&usb_dp_qmpphy_out>; 105 }; 106 }; 107 108 port@2 { 109 reg = <2>; 110 111 pmic_glink_sbu_in: endpoint { 112 remote-endpoint = <&usb1_sbu_mux>; 113 }; 114 }; 115 }; 116 }; 117 }; 118 119 fan0: pwm-fan { 120 compatible = "pwm-fan"; 121 122 /* cooling level (0, 1, 2, 3) : (0% duty, 25% duty, 50% duty, 100% duty) */ 123 cooling-levels = <0 64 128 255>; 124 #cooling-cells = <2>; 125 pwms = <&pm8350c_pwm 3 1000000>; 126 127 pinctrl-0 = <&fan_pwm_out_default>; 128 pinctrl-names = "default"; 129 }; 130 131 vreg_eth_1v8: regulator-eth-1v8 { 132 compatible = "regulator-fixed"; 133 134 regulator-name = "vreg_eth_1v8"; 135 regulator-min-microvolt = <1800000>; 136 regulator-max-microvolt = <1800000>; 137 regulator-enable-ramp-delay = <50000>; 138 139 gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; 140 enable-active-high; 141 142 pinctrl-0 = <&usb_eth_power>; 143 pinctrl-names = "default"; 144 145 vin-supply = <&vreg_usbhub_pwr_1v8>; 146 }; 147 148 vreg_lt9611_3v3: regulator-lt9611-3v3 { 149 compatible = "regulator-fixed"; 150 151 regulator-name = "vreg_lt9611_3v3"; 152 regulator-min-microvolt = <3300000>; 153 regulator-max-microvolt = <3300000>; 154 155 gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>; 156 enable-active-high; 157 158 pinctrl-0 = <<9611_vcc_pin>; 159 pinctrl-names = "default"; 160 }; 161 162 vreg_m2_1v8: regulator-m2-1v8 { 163 compatible = "regulator-fixed"; 164 165 regulator-name = "vreg_m2_1v8"; 166 regulator-min-microvolt = <1800000>; 167 regulator-max-microvolt = <1800000>; 168 regulator-enable-ramp-delay = <50000>; 169 170 gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>; 171 enable-active-high; 172 173 pinctrl-0 = <&m2_vcc_pin>; 174 pinctrl-names = "default"; 175 176 regulator-always-on; 177 regulator-boot-on; 178 }; 179 180 vreg_usbhub_pwr_1v8: regulator-usbhub-pwr-1v8 { 181 compatible = "regulator-fixed"; 182 183 regulator-name = "vreg_usbhub_pwr_1v8"; 184 regulator-min-microvolt = <1800000>; 185 regulator-max-microvolt = <1800000>; 186 regulator-enable-ramp-delay = <50000>; 187 188 gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>; 189 enable-active-high; 190 191 pinctrl-0 = <&usbhub_power>; 192 pinctrl-names = "default"; 193 194 regulator-always-on; 195 }; 196 197 vreg_usbhub_rest_1v8: regulator-usbhub-rest-1v8 { 198 compatible = "regulator-fixed"; 199 200 regulator-name = "vreg_usbhub_rest_1v8"; 201 regulator-min-microvolt = <1800000>; 202 regulator-enable-ramp-delay = <50000>; 203 regulator-max-microvolt = <1800000>; 204 205 gpio = <&tlmm 136 GPIO_ACTIVE_HIGH>; 206 enable-active-high; 207 208 pinctrl-0 = <&usbhub_rest>; 209 pinctrl-names = "default"; 210 211 vin-supply = <&vreg_eth_1v8>; 212 213 regulator-always-on; 214 regulator-boot-on; 215 }; 216 217 vph_pwr: regulator-vph-pwr { 218 compatible = "regulator-fixed"; 219 220 regulator-name = "vph_pwr"; 221 regulator-min-microvolt = <3700000>; 222 regulator-max-microvolt = <3700000>; 223 }; 224 225 vreg_wifi_1v8: regulator-wifi-1v8 { 226 compatible = "regulator-fixed"; 227 228 regulator-name = "vreg_wifi_1v8"; 229 regulator-min-microvolt = <1800000>; 230 regulator-max-microvolt = <1800000>; 231 regulator-enable-ramp-delay = <50000>; 232 233 gpio = <&tlmm 125 GPIO_ACTIVE_HIGH>; 234 enable-active-high; 235 236 pinctrl-0 = <&wifi_reset_active>, 237 <&wifi_host_wake>, 238 <&wifi_power_on>; 239 pinctrl-names = "default"; 240 241 regulator-always-on; 242 }; 243 244 reserved-memory { 245 xbl_mem: xbl@80700000 { 246 reg = <0x0 0x80700000 0x0 0x100000>; 247 no-map; 248 }; 249 250 cdsp_secure_heap_mem: cdsp-secure-heap@81800000 { 251 reg = <0x0 0x81800000 0x0 0x1e00000>; 252 no-map; 253 }; 254 255 camera_mem: camera@84300000 { 256 reg = <0x0 0x84300000 0x0 0x500000>; 257 no-map; 258 }; 259 260 adsp_mem: adsp@86100000 { 261 reg = <0x0 0x86100000 0x0 0x2800000>; 262 no-map; 263 }; 264 265 cdsp_mem: cdsp@88900000 { 266 reg = <0x0 0x88900000 0x0 0x1e00000>; 267 no-map; 268 }; 269 270 video_mem: video@8a700000 { 271 reg = <0x0 0x8a700000 0x0 0x700000>; 272 no-map; 273 }; 274 275 cvp_mem: cvp@8ae00000 { 276 reg = <0x0 0x8ae00000 0x0 0x500000>; 277 no-map; 278 }; 279 280 gpu_microcode_mem: gpu-microcode@8b31a000 { 281 reg = <0x0 0x8b31a000 0x0 0x2000>; 282 no-map; 283 }; 284 285 tz_stat_mem: tz-stat@c0000000 { 286 reg = <0x0 0xc0000000 0x0 0x100000>; 287 no-map; 288 }; 289 290 tags_mem: tags@c0100000 { 291 reg = <0x0 0xc0100000 0x0 0x1200000>; 292 no-map; 293 }; 294 295 qtee_mem: qtee@c1300000 { 296 reg = <0x0 0xc1300000 0x0 0x500000>; 297 no-map; 298 }; 299 300 trusted_apps_mem: trusted-apps@c1800000 { 301 reg = <0x0 0xc1800000 0x0 0x1c00000>; 302 no-map; 303 }; 304 305 debug_vm_mem: debug-vm@d0600000 { 306 reg = <0x0 0xd0600000 0x0 0x100000>; 307 no-map; 308 }; 309 }; 310 311 thermal-zones { 312 quiet-thermal { 313 thermal-sensors = <&pmk8350_adc_tm 1>; 314 315 trips { 316 active-config0 { 317 temperature = <125000>; 318 hysteresis = <1000>; 319 type = "passive"; 320 }; 321 }; 322 }; 323 324 sdm-skin-thermal { 325 thermal-sensors = <&pmk8350_adc_tm 3>; 326 327 trips { 328 active-config0 { 329 temperature = <125000>; 330 hysteresis = <1000>; 331 type = "passive"; 332 }; 333 }; 334 }; 335 336 xo-thermal { 337 thermal-sensors = <&pmk8350_adc_tm 0>; 338 339 trips { 340 active-config0 { 341 temperature = <125000>; 342 hysteresis = <1000>; 343 type = "passive"; 344 }; 345 }; 346 }; 347 }; 348 349 usb1-sbu-mux { 350 compatible = "pericom,pi3usb102", "gpio-sbu-mux"; 351 352 enable-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>; 353 select-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>; 354 355 pinctrl-0 = <&usb1_sbu_default>; 356 pinctrl-names = "default"; 357 358 mode-switch; 359 orientation-switch; 360 361 port { 362 usb1_sbu_mux: endpoint { 363 remote-endpoint = <&pmic_glink_sbu_in>; 364 }; 365 }; 366 }; 367}; 368 369&apps_rsc { 370 regulators-0 { 371 compatible = "qcom,pm7325-rpmh-regulators"; 372 qcom,pmic-id = "b"; 373 374 vdd-s1-supply = <&vph_pwr>; 375 vdd-s2-supply = <&vph_pwr>; 376 vdd-s3-supply = <&vph_pwr>; 377 vdd-s4-supply = <&vph_pwr>; 378 vdd-s5-supply = <&vph_pwr>; 379 vdd-s6-supply = <&vph_pwr>; 380 vdd-s7-supply = <&vph_pwr>; 381 vdd-s8-supply = <&vph_pwr>; 382 vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p972>; 383 vdd-l2-l7-supply = <&vreg_bob_3p296>; 384 vdd-l3-supply = <&vreg_s2b_0p876>; 385 vdd-l5-supply = <&vreg_s2b_0p876>; 386 vdd-l6-l9-l10-supply = <&vreg_s8b_1p272>; 387 vdd-l8-supply = <&vreg_s7b_0p972>; 388 vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p872>; 389 vdd-l13-supply = <&vreg_s7b_0p972>; 390 vdd-l14-l16-supply = <&vreg_s8b_1p272>; 391 392 vreg_s1b_1p872: smps1 { 393 regulator-name = "vreg_s1b_1p872"; 394 regulator-min-microvolt = <1840000>; 395 regulator-max-microvolt = <2040000>; 396 }; 397 398 vreg_s2b_0p876: smps2 { 399 regulator-name = "vreg_s2b_0p876"; 400 regulator-min-microvolt = <570070>; 401 regulator-max-microvolt = <1050000>; 402 }; 403 404 vreg_s7b_0p972: smps7 { 405 regulator-name = "vreg_s7b_0p972"; 406 regulator-min-microvolt = <535000>; 407 regulator-max-microvolt = <1120000>; 408 }; 409 410 vreg_s8b_1p272: smps8 { 411 regulator-name = "vreg_s8b_1p272"; 412 regulator-min-microvolt = <1200000>; 413 regulator-max-microvolt = <1500000>; 414 regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>; 415 }; 416 417 vreg_l1b_0p912: ldo1 { 418 regulator-name = "vreg_l1b_0p912"; 419 regulator-min-microvolt = <825000>; 420 regulator-max-microvolt = <925000>; 421 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 422 }; 423 424 vreg_l2b_3p072: ldo2 { 425 regulator-name = "vreg_l2b_3p072"; 426 regulator-min-microvolt = <2700000>; 427 regulator-max-microvolt = <3544000>; 428 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 429 }; 430 431 vreg_l3b_0p504: ldo3 { 432 regulator-name = "vreg_l3b_0p504"; 433 regulator-min-microvolt = <312000>; 434 regulator-max-microvolt = <910000>; 435 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 436 }; 437 438 vreg_l4b_0p752: ldo4 { 439 regulator-name = "vreg_l4b_0p752"; 440 regulator-min-microvolt = <752000>; 441 regulator-max-microvolt = <820000>; 442 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 443 }; 444 445 reg_l5b_0p752: ldo5 { 446 regulator-name = "reg_l5b_0p752"; 447 regulator-min-microvolt = <552000>; 448 regulator-max-microvolt = <832000>; 449 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 450 }; 451 452 vreg_l6b_1p2: ldo6 { 453 regulator-name = "vreg_l6b_1p2"; 454 regulator-min-microvolt = <1140000>; 455 regulator-max-microvolt = <1260000>; 456 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 457 }; 458 459 vreg_l7b_2p952: ldo7 { 460 regulator-name = "vreg_l7b_2p952"; 461 regulator-min-microvolt = <2952000>; 462 regulator-max-microvolt = <2952000>; 463 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 464 }; 465 466 vreg_l8b_0p904: ldo8 { 467 regulator-name = "vreg_l8b_0p904"; 468 regulator-min-microvolt = <870000>; 469 regulator-max-microvolt = <970000>; 470 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 471 }; 472 473 vreg_l9b_1p2: ldo9 { 474 regulator-name = "vreg_l9b_1p2"; 475 regulator-min-microvolt = <1200000>; 476 regulator-max-microvolt = <1200000>; 477 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 478 regulator-allow-set-load; 479 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 480 RPMH_REGULATOR_MODE_HPM>; 481 }; 482 483 vreg_l11b_1p504: ldo11 { 484 regulator-name = "vreg_l11b_1p504"; 485 regulator-min-microvolt = <1504000>; 486 regulator-max-microvolt = <2000000>; 487 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 488 }; 489 490 vreg_l12b_0p751: ldo12 { 491 regulator-name = "vreg_l12b_0p751"; 492 regulator-min-microvolt = <751000>; 493 regulator-max-microvolt = <824000>; 494 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 495 }; 496 497 vreg_l13b_0p53: ldo13 { 498 regulator-name = "vreg_l13b_0p53"; 499 regulator-min-microvolt = <530000>; 500 regulator-max-microvolt = <824000>; 501 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 502 }; 503 504 vreg_l14b_1p08: ldo14 { 505 regulator-name = "vreg_l14b_1p08"; 506 regulator-min-microvolt = <1080000>; 507 regulator-max-microvolt = <1304000>; 508 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 509 }; 510 511 vreg_l15b_0p765: ldo15 { 512 regulator-name = "vreg_l15b_0p765"; 513 regulator-min-microvolt = <765000>; 514 regulator-max-microvolt = <1020000>; 515 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 516 }; 517 518 vreg_l16b_1p1: ldo16 { 519 regulator-name = "vreg_l16b_1p1"; 520 regulator-min-microvolt = <1100000>; 521 regulator-max-microvolt = <1300000>; 522 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 523 }; 524 525 vreg_l17b_1p7: ldo17 { 526 regulator-name = "vreg_l17b_1p7"; 527 regulator-min-microvolt = <1700000>; 528 regulator-max-microvolt = <1900000>; 529 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 530 }; 531 532 vreg_l18b_1p8: ldo18 { 533 regulator-name = "vreg_l18b_1p8"; 534 regulator-min-microvolt = <1800000>; 535 regulator-max-microvolt = <2000000>; 536 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 537 }; 538 539 vreg_l19b_1p8: ldo19 { 540 regulator-name = "vreg_l19b_1p8"; 541 regulator-min-microvolt = <1800000>; 542 regulator-max-microvolt = <2000000>; 543 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 544 }; 545 }; 546 547 regulators-1 { 548 compatible = "qcom,pm8350c-rpmh-regulators"; 549 qcom,pmic-id = "c"; 550 551 vdd-s1-supply = <&vph_pwr>; 552 vdd-s2-supply = <&vph_pwr>; 553 vdd-s3-supply = <&vph_pwr>; 554 vdd-s4-supply = <&vph_pwr>; 555 vdd-s5-supply = <&vph_pwr>; 556 vdd-s6-supply = <&vph_pwr>; 557 vdd-s7-supply = <&vph_pwr>; 558 vdd-s8-supply = <&vph_pwr>; 559 vdd-s9-supply = <&vph_pwr>; 560 vdd-s10-supply = <&vph_pwr>; 561 vdd-l1-l12-supply = <&vreg_s1b_1p872>; 562 vdd-l2-l8-supply = <&vreg_s1b_1p872>; 563 vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob_3p296>; 564 vdd-l6-l9-l11-supply = <&vreg_bob_3p296>; 565 vdd-l10-supply = <&vreg_s7b_0p972>; 566 vdd-bob-supply = <&vph_pwr>; 567 568 vreg_s1c_2p19: smps1 { 569 regulator-name = "vreg_s1c_2p19"; 570 regulator-min-microvolt = <2190000>; 571 regulator-max-microvolt = <2210000>; 572 }; 573 574 vreg_s2c_0p752: smps2 { 575 regulator-name = "vreg_s2c_0p752"; 576 regulator-min-microvolt = <750000>; 577 regulator-max-microvolt = <800000>; 578 }; 579 580 vreg_s5c_0p752: smps5 { 581 regulator-name = "vreg_s5c_0p752"; 582 regulator-min-microvolt = <465000>; 583 regulator-max-microvolt = <1050000>; 584 }; 585 586 vreg_s7c_0p752: smps7 { 587 regulator-name = "vreg_s7c_0p752"; 588 regulator-min-microvolt = <465000>; 589 regulator-max-microvolt = <800000>; 590 }; 591 592 vreg_s9c_1p084: smps9 { 593 regulator-name = "vreg_s9c_1p084"; 594 regulator-min-microvolt = <1010000>; 595 regulator-max-microvolt = <1170000>; 596 }; 597 598 vreg_l1c_1p8: ldo1 { 599 regulator-name = "vreg_l1c_1p8"; 600 regulator-min-microvolt = <1800000>; 601 regulator-max-microvolt = <1980000>; 602 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 603 }; 604 605 vreg_l2c_1p62: ldo2 { 606 regulator-name = "vreg_l2c_1p62"; 607 regulator-min-microvolt = <1620000>; 608 regulator-max-microvolt = <1980000>; 609 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 610 }; 611 612 vreg_l3c_2p8: ldo3 { 613 regulator-name = "vreg_l3c_2p8"; 614 regulator-min-microvolt = <2800000>; 615 regulator-max-microvolt = <3540000>; 616 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 617 }; 618 619 vreg_l4c_1p62: ldo4 { 620 regulator-name = "vreg_l4c_1p62"; 621 regulator-min-microvolt = <1620000>; 622 regulator-max-microvolt = <3300000>; 623 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 624 }; 625 626 vreg_l5c_1p62: ldo5 { 627 regulator-name = "vreg_l5c_1p62"; 628 regulator-min-microvolt = <1620000>; 629 regulator-max-microvolt = <3300000>; 630 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 631 }; 632 633 vreg_l6c_2p96: ldo6 { 634 regulator-name = "vreg_l6c_2p96"; 635 regulator-min-microvolt = <1800000>; 636 regulator-max-microvolt = <1800000>; 637 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 638 }; 639 640 vreg_l7c_3p0: ldo7 { 641 regulator-name = "vreg_l7c_3p0"; 642 regulator-min-microvolt = <3000000>; 643 regulator-max-microvolt = <3544000>; 644 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 645 }; 646 647 vreg_l8c_1p62: ldo8 { 648 regulator-name = "vreg_l8c_1p62"; 649 regulator-min-microvolt = <1620000>; 650 regulator-max-microvolt = <2000000>; 651 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 652 }; 653 654 vreg_l9c_2p96: ldo9 { 655 regulator-name = "vreg_l9c_2p96"; 656 regulator-min-microvolt = <2700000>; 657 regulator-max-microvolt = <3544000>; 658 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 659 }; 660 661 vreg_l10c_0p88: ldo10 { 662 regulator-name = "vreg_l10c_0p88"; 663 regulator-min-microvolt = <720000>; 664 regulator-max-microvolt = <1050000>; 665 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 666 }; 667 668 vreg_l11c_2p8: ldo11 { 669 regulator-name = "vreg_l11c_2p8"; 670 regulator-min-microvolt = <2800000>; 671 regulator-max-microvolt = <3544000>; 672 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 673 }; 674 675 vreg_l12c_1p65: ldo12 { 676 regulator-name = "vreg_l12c_1p65"; 677 regulator-min-microvolt = <1650000>; 678 regulator-max-microvolt = <2000000>; 679 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 680 }; 681 682 vreg_l13c_2p7: ldo13 { 683 regulator-name = "vreg_l13c_2p7"; 684 regulator-min-microvolt = <2700000>; 685 regulator-max-microvolt = <3544000>; 686 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 687 }; 688 689 vreg_bob_3p296: bob { 690 regulator-name = "vreg_bob_3p296"; 691 regulator-min-microvolt = <3008000>; 692 regulator-max-microvolt = <3960000>; 693 }; 694 }; 695}; 696 697&gcc { 698 protected-clocks = <GCC_CFG_NOC_LPASS_CLK>, 699 <GCC_MSS_CFG_AHB_CLK>, 700 <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>, 701 <GCC_MSS_OFFLINE_AXI_CLK>, 702 <GCC_MSS_Q6SS_BOOT_CLK_SRC>, 703 <GCC_MSS_Q6_MEMNOC_AXI_CLK>, 704 <GCC_MSS_SNOC_AXI_CLK>, 705 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>, 706 <GCC_QSPI_CORE_CLK>, 707 <GCC_QSPI_CORE_CLK_SRC>, 708 <GCC_SEC_CTRL_CLK_SRC>, 709 <GCC_WPSS_AHB_BDG_MST_CLK>, 710 <GCC_WPSS_AHB_CLK>, 711 <GCC_WPSS_RSCP_CLK>; 712}; 713 714&gpi_dma0 { 715 status = "okay"; 716}; 717 718&gpi_dma1 { 719 status = "okay"; 720}; 721 722&gpu { 723 status = "okay"; 724}; 725 726&gpu_zap_shader { 727 firmware-name = "qcom/qcs6490/a660_zap.mbn"; 728}; 729 730/* Pin 3, 5 in 40-pin connector */ 731&i2c1 { 732 status = "okay"; 733}; 734 735&i2c9 { 736 clock-frequency = <400000>; 737 738 status = "okay"; 739 740 lt9611_codec: hdmi-bridge@39 { 741 compatible = "lontium,lt9611"; 742 reg = <0x39>; 743 744 interrupts-extended = <&tlmm 20 IRQ_TYPE_EDGE_FALLING>; 745 reset-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; 746 747 vdd-supply = <&vreg_lt9611_3v3>; 748 vcc-supply = <&vreg_lt9611_3v3>; 749 750 pinctrl-0 = <<9611_irq_pin>, 751 <<9611_rst_pin>; 752 pinctrl-names = "default"; 753 754 ports { 755 #address-cells = <1>; 756 #size-cells = <0>; 757 758 port@0 { 759 reg = <0>; 760 761 lt9611_a: endpoint { 762 remote-endpoint = <&mdss_dsi0_out>; 763 }; 764 }; 765 766 port@2 { 767 reg = <2>; 768 769 lt9611_out: endpoint { 770 remote-endpoint = <&hdmi_con>; 771 }; 772 }; 773 }; 774 }; 775}; 776 777&lpass_audiocc { 778 compatible = "qcom,qcm6490-lpassaudiocc"; 779 /delete-property/ power-domains; 780}; 781 782&mdss { 783 status = "okay"; 784}; 785 786&mdss_dp { 787 status = "okay"; 788}; 789 790&mdss_dp_out { 791 data-lanes = <0 1>; 792 link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; 793 794 remote-endpoint = <&usb_dp_qmpphy_dp_in>; 795}; 796 797&mdss_dsi { 798 vdda-supply = <&vreg_l6b_1p2>; 799 800 status = "okay"; 801}; 802 803&mdss_dsi0_out { 804 remote-endpoint = <<9611_a>; 805 data-lanes = <0 1 2 3>; 806}; 807 808&mdss_dsi_phy { 809 vdds-supply = <&vreg_l10c_0p88>; 810 811 status = "okay"; 812}; 813 814&pcie0 { 815 perst-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>; 816 wake-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>; 817 818 pinctrl-0 = <&pcie0_clkreq_n>, 819 <&pcie0_reset_n>, 820 <&pcie0_wake_n>; 821 pinctrl-names = "default"; 822 823 status = "okay"; 824}; 825 826&pcie0_phy { 827 vdda-phy-supply = <&vreg_l10c_0p88>; 828 vdda-pll-supply = <&vreg_l6b_1p2>; 829 830 status = "okay"; 831}; 832 833&pcie1 { 834 perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; 835 wake-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; 836 837 pinctrl-0 = <&pcie1_clkreq_n>, 838 <&pcie1_reset_n>, 839 <&pcie1_wake_n>; 840 pinctrl-names = "default"; 841 842 status = "okay"; 843}; 844 845&pcie1_phy { 846 vdda-phy-supply = <&vreg_l10c_0p88>; 847 vdda-pll-supply = <&vreg_l6b_1p2>; 848 849 status = "okay"; 850}; 851 852&pm7325_gpios { 853 kypd_vol_up_n: kypd-vol-up-n-state { 854 pins = "gpio6"; 855 function = PMIC_GPIO_FUNC_NORMAL; 856 power-source = <1>; 857 bias-pull-up; 858 input-enable; 859 }; 860}; 861 862&pm7325_temp_alarm { 863 io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>; 864 io-channel-names = "thermal"; 865}; 866 867&pmk8350_adc_tm { 868 status = "okay"; 869 870 xo-therm@0 { 871 reg = <0>; 872 io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>; 873 qcom,ratiometric; 874 qcom,hw-settle-time-us = <200>; 875 }; 876 877 quiet-therm@1 { 878 reg = <1>; 879 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>; 880 qcom,ratiometric; 881 qcom,hw-settle-time-us = <200>; 882 }; 883 884 sdm-skin-therm@3 { 885 reg = <3>; 886 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>; 887 qcom,ratiometric; 888 qcom,hw-settle-time-us = <200>; 889 }; 890}; 891 892&pm8350c_pwm { 893 status = "okay"; 894 895 multi-led { 896 color = <LED_COLOR_ID_RGB>; 897 function = LED_FUNCTION_INDICATOR; 898 899 #address-cells = <1>; 900 #size-cells = <0>; 901 902 led@1 { 903 reg = <1>; 904 color = <LED_COLOR_ID_RED>; 905 }; 906 907 led@2 { 908 reg = <2>; 909 color = <LED_COLOR_ID_GREEN>; 910 }; 911 912 led@3 { 913 reg = <3>; 914 color = <LED_COLOR_ID_BLUE>; 915 }; 916 }; 917}; 918 919&pmk8350_rtc { 920 allow-set-time; 921 922 status = "okay"; 923}; 924 925&pmk8350_vadc { 926 channel@3 { 927 reg = <PMK8350_ADC7_DIE_TEMP>; 928 label = "pmk8350_die_temp"; 929 qcom,pre-scaling = <1 1>; 930 }; 931 932 channel@44 { 933 reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>; 934 label = "xo_therm"; 935 qcom,hw-settle-time = <200>; 936 qcom,pre-scaling = <1 1>; 937 qcom,ratiometric; 938 }; 939 940 channel@103 { 941 reg = <PM7325_ADC7_DIE_TEMP>; 942 label = "pm7325_die_temp"; 943 qcom,pre-scaling = <1 1>; 944 }; 945 946 channel@144 { 947 reg = <PM7325_ADC7_AMUX_THM1_100K_PU>; 948 qcom,ratiometric; 949 qcom,hw-settle-time = <200>; 950 qcom,pre-scaling = <1 1>; 951 label = "pm7325_quiet_therm"; 952 }; 953 954 channel@146 { 955 reg = <PM7325_ADC7_AMUX_THM3_100K_PU>; 956 qcom,ratiometric; 957 qcom,hw-settle-time = <200>; 958 qcom,pre-scaling = <1 1>; 959 label = "pm7325_sdm_skin_therm"; 960 }; 961}; 962 963&pon_pwrkey { 964 status = "okay"; 965}; 966 967&pon_resin { 968 linux,code = <KEY_VOLUMEDOWN>; 969 970 status = "okay"; 971}; 972 973&qupv3_id_0 { 974 firmware-name = "qcom/qcm6490/qupv3fw.elf"; 975 976 status = "okay"; 977}; 978 979&qupv3_id_1 { 980 firmware-name = "qcom/qcm6490/qupv3fw.elf"; 981 982 status = "okay"; 983}; 984 985&remoteproc_adsp { 986 firmware-name = "qcom/qcs6490/Thundercomm/RubikPi3/adsp.mbn"; 987 988 status = "okay"; 989}; 990 991&remoteproc_cdsp { 992 firmware-name = "qcom/qcs6490/cdsp.mbn"; 993 994 status = "okay"; 995}; 996 997/* WIFI part of the AP6256 connected with SDIO */ 998&sdhc_2 { 999 vmmc-supply = <&vreg_l9c_2p96>; 1000 vqmmc-supply = <&vreg_l6c_2p96>; 1001 1002 non-removable; 1003 keep-power-in-suspend; 1004 /delete-property/ cd-gpios; 1005 1006 status = "okay"; 1007}; 1008 1009/* Pin 19, 21, 23, 24 in 40-pin connector */ 1010&spi12 { 1011 status = "okay"; 1012}; 1013 1014&thermal_zones { 1015 cpu0-thermal { 1016 trips { 1017 cpu_tepid: cpu-tepid { 1018 temperature = <65000>; 1019 hysteresis = <5000>; 1020 type = "active"; 1021 }; 1022 1023 cpu_warm: cpu-warm { 1024 temperature = <80000>; 1025 hysteresis = <5000>; 1026 type = "active"; 1027 }; 1028 }; 1029 1030 cooling-maps { 1031 map-cpu-tepid { 1032 cooling-device = <&fan0 1 1>; 1033 trip = <&cpu_tepid>; 1034 }; 1035 1036 map-cpu-warm { 1037 cooling-device = <&fan0 2 2>; 1038 trip = <&cpu_warm>; 1039 }; 1040 1041 map-cpu-hot { 1042 cooling-device = <&fan0 3 3>; 1043 trip = <&cpu0_alert0>; 1044 }; 1045 }; 1046 }; 1047}; 1048 1049/* Pin 8, 10 in 40-pin connector */ 1050&uart2 { 1051 status = "okay"; 1052}; 1053 1054&uart5 { 1055 status = "okay"; 1056}; 1057 1058/* BT part of the AP6256 connected with UART */ 1059&uart7 { 1060 /delete-property/ interrupts; 1061 interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>, 1062 <&tlmm 31 IRQ_TYPE_EDGE_FALLING>; 1063 pinctrl-1 = <&qup_uart7_sleep_cts>, 1064 <&qup_uart7_sleep_rts>, 1065 <&qup_uart7_sleep_tx>, 1066 <&qup_uart7_sleep_rx>; 1067 pinctrl-names = "default", 1068 "sleep"; 1069 1070 status = "okay"; 1071 1072 bluetooth { 1073 compatible = "brcm,bcm4345c5"; 1074 clocks = <&sleep_clk>; 1075 clock-names = "lpo"; 1076 device-wakeup-gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>; 1077 host-wakeup-gpios = <&tlmm 137 GPIO_ACTIVE_HIGH>; 1078 shutdown-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>; 1079 pinctrl-0 = <&bt_device_wake>, 1080 <&bt_host_wake>, 1081 <&bt_reset>; 1082 pinctrl-names = "default"; 1083 vbat-supply = <&vreg_wifi_1v8>; 1084 vddio-supply = <&vreg_wifi_1v8>; 1085 max-speed = <3000000>; 1086 }; 1087}; 1088 1089&usb_1 { 1090 status = "okay"; 1091}; 1092 1093&usb_1_dwc3_hs { 1094 remote-endpoint = <&pmic_glink_hs_in>; 1095}; 1096 1097&usb_1_hsphy { 1098 vdda-pll-supply = <&vreg_l10c_0p88>; 1099 vdda33-supply = <&vreg_l2b_3p072>; 1100 vdda18-supply = <&vreg_l1c_1p8>; 1101 1102 status = "okay"; 1103}; 1104 1105&usb_1_qmpphy { 1106 vdda-phy-supply = <&vreg_l6b_1p2>; 1107 vdda-pll-supply = <&vreg_l1b_0p912>; 1108 1109 status = "okay"; 1110}; 1111 1112&usb_2 { 1113 dr_mode = "host"; 1114 1115 status = "okay"; 1116}; 1117 1118&usb_2_hsphy { 1119 vdda-pll-supply = <&vreg_l10c_0p88>; 1120 vdda18-supply = <&vreg_l1c_1p8>; 1121 vdda33-supply = <&vreg_l2b_3p072>; 1122 1123 status = "okay"; 1124}; 1125 1126&usb_dp_qmpphy_out { 1127 remote-endpoint = <&pmic_glink_ss_in>; 1128}; 1129 1130&ufs_mem_hc { 1131 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>; 1132 vcc-supply = <&vreg_l7b_2p952>; 1133 vcc-max-microamp = <800000>; 1134 vccq-supply = <&vreg_l9b_1p2>; 1135 vccq-max-microamp = <900000>; 1136 vccq2-supply = <&vreg_l9b_1p2>; 1137 vccq2-max-microamp = <900000>; 1138 1139 status = "okay"; 1140}; 1141 1142&ufs_mem_phy { 1143 vdda-phy-supply = <&vreg_l10c_0p88>; 1144 vdda-pll-supply = <&vreg_l6b_1p2>; 1145 1146 status = "okay"; 1147}; 1148 1149&venus { 1150 status = "okay"; 1151}; 1152 1153/* PINCTRL - additions to nodes defined in kodiak.dtsi */ 1154&pcie0_clkreq_n { 1155 bias-pull-up; 1156 drive-strength = <8>; 1157}; 1158 1159&pcie1_clkreq_n { 1160 bias-pull-up; 1161 drive-strength = <8>; 1162}; 1163 1164&pm8350c_gpios { 1165 fan_pwm_out_default: fan-pwm-out-default-state { 1166 pins = "gpio8"; 1167 function = "func1"; 1168 power-source = <1>; 1169 drive-push-pull; 1170 output-high; 1171 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; 1172 }; 1173}; 1174 1175&qup_uart7_cts { 1176 /* 1177 * Configure a bias-bus-hold on CTS to lower power 1178 * usage when Bluetooth is turned off. Bus hold will 1179 * maintain a low power state regardless of whether 1180 * the Bluetooth module drives the pin in either 1181 * direction or leaves the pin fully unpowered. 1182 */ 1183 bias-bus-hold; 1184}; 1185 1186&qup_uart7_rts { 1187 /* We'll drive RTS, so no pull */ 1188 bias-disable; 1189 drive-strength = <2>; 1190}; 1191 1192&qup_uart7_rx { 1193 /* 1194 * Configure a pull-up on RX. This is needed to avoid 1195 * garbage data when the TX pin of the Bluetooth module is 1196 * in tri-state (module powered off or not driving the 1197 * signal yet). 1198 */ 1199 bias-pull-up; 1200}; 1201 1202&qup_uart7_tx { 1203 /* We'll drive TX, so no pull */ 1204 bias-disable; 1205 drive-strength = <2>; 1206}; 1207 1208&sdc2_clk { 1209 bias-disable; 1210 drive-strength = <16>; 1211}; 1212 1213&sdc2_cmd { 1214 bias-pull-up; 1215 drive-strength = <10>; 1216}; 1217 1218&sdc2_data { 1219 bias-pull-up; 1220 drive-strength = <10>; 1221}; 1222 1223&tlmm { 1224 pcie1_reset_n: pcie1-reset-n-state { 1225 pins = "gpio2"; 1226 function = "gpio"; 1227 drive-strength = <8>; 1228 output-low; 1229 bias-disable; 1230 }; 1231 1232 pcie1_wake_n: pcie1-wake-n-state { 1233 pins = "gpio3"; 1234 function = "gpio"; 1235 drive-strength = <8>; 1236 bias-pull-up; 1237 }; 1238 1239 usb_eth_power: usb-eth-power-state { 1240 pins = "gpio7"; 1241 function = "gpio"; 1242 drive-strength = <8>; 1243 bias-disable; 1244 }; 1245 1246 wifi_reset_active: wifi-reset-active-state { 1247 pins = "gpio16"; 1248 function = "gpio"; 1249 drive-strength = <8>; 1250 output-high; 1251 bias-disable; 1252 }; 1253 1254 bt_reset: bt-reset-state { 1255 pins = "gpio17"; 1256 function = "gpio"; 1257 drive-strength = <8>; 1258 bias-disable; 1259 }; 1260 1261 lt9611_irq_pin: lt9611-irq-state { 1262 pins = "gpio20"; 1263 function = "gpio"; 1264 drive-strength = <8>; 1265 bias-disable; 1266 }; 1267 1268 lt9611_rst_pin: lt9611-rst-state { 1269 pins = "gpio21"; 1270 function = "gpio"; 1271 drive-strength = <8>; 1272 output-high; 1273 input-disable; 1274 }; 1275 1276 qup_uart7_sleep_cts: qup-uart7-sleep-cts-state { 1277 pins = "gpio28"; 1278 function = "gpio"; 1279 /* 1280 * Configure a bias-bus-hold on CTS to lower power 1281 * usage when Bluetooth is turned off. Bus hold will 1282 * maintain a low power state regardless of whether 1283 * the Bluetooth module drives the pin in either 1284 * direction or leaves the pin fully unpowered. 1285 */ 1286 bias-bus-hold; 1287 }; 1288 1289 qup_uart7_sleep_rts: qup-uart7-sleep-rts-state { 1290 pins = "gpio29"; 1291 function = "gpio"; 1292 /* 1293 * Configure pull-down on RTS. As RTS is active low 1294 * signal, pull it low to indicate the BT SoC that it 1295 * can wakeup the system anytime from suspend state by 1296 * pulling RX low (by sending wakeup bytes). 1297 */ 1298 bias-pull-down; 1299 }; 1300 1301 qup_uart7_sleep_tx: qup-uart7-sleep-tx-state { 1302 pins = "gpio30"; 1303 function = "gpio"; 1304 /* 1305 * Configure pull-up on TX when it isn't actively driven 1306 * to prevent BT SoC from receiving garbage during sleep. 1307 */ 1308 bias-pull-up; 1309 }; 1310 1311 qup_uart7_sleep_rx: qup-uart7-sleep-rx-state { 1312 pins = "gpio31"; 1313 function = "gpio"; 1314 /* 1315 * Configure a pull-up on RX. This is needed to avoid 1316 * garbage data when the TX pin of the Bluetooth module 1317 * is floating which may cause spurious wakeups. 1318 */ 1319 bias-pull-up; 1320 }; 1321 1322 wifi_host_wake: wifi-host-wake-state { 1323 pins = "gpio38"; 1324 function = "gpio"; 1325 drive-strength = <8>; 1326 bias-disable; 1327 }; 1328 1329 bt_device_wake: bt-device-wake-state { 1330 pins = "gpio39"; 1331 function = "gpio"; 1332 drive-strength = <8>; 1333 bias-disable; 1334 }; 1335 1336 usb1_sbu_default: usb1-sbu-state { 1337 sel-pins { 1338 pins = "gpio52"; 1339 function = "gpio"; 1340 drive-strength = <8>; 1341 bias-disable; 1342 }; 1343 1344 oe-n-pins { 1345 pins = "gpio53"; 1346 function = "gpio"; 1347 drive-strength = <8>; 1348 output-high; 1349 bias-disable; 1350 }; 1351 }; 1352 1353 m2_vcc_pin: m2-vcc-state { 1354 pins = "gpio56"; 1355 function = "gpio"; 1356 drive-strength = <8>; 1357 output-high; 1358 input-disable; 1359 }; 1360 1361 lt9611_vcc_pin: lt9611-vcc-pin-state { 1362 pins = "gpio83"; 1363 function = "gpio"; 1364 drive-strength = <8>; 1365 output-high; 1366 input-disable; 1367 }; 1368 1369 usbhub_power: usbhub-power-state { 1370 pins = "gpio86"; 1371 function = "gpio"; 1372 drive-strength = <8>; 1373 bias-disable; 1374 }; 1375 1376 pcie0_reset_n: pcie0-reset-n-state { 1377 pins = "gpio87"; 1378 function = "gpio"; 1379 drive-strength = <8>; 1380 bias-disable; 1381 }; 1382 1383 pcie0_wake_n: pcie0-wake-n-state { 1384 pins = "gpio89"; 1385 function = "gpio"; 1386 drive-strength = <8>; 1387 bias-pull-up; 1388 }; 1389 1390 wifi_power_on: wifi-power-on-state { 1391 pins = "gpio125"; 1392 function = "gpio"; 1393 drive-strength = <8>; 1394 bias-disable; 1395 }; 1396 1397 usbhub_rest: usbhub-reset-state { 1398 pins = "gpio136"; 1399 function = "gpio"; 1400 drive-strength = <8>; 1401 bias-disable; 1402 }; 1403 1404 bt_host_wake: bt-host-wake-state { 1405 pins = "gpio137"; 1406 function = "gpio"; 1407 drive-strength = <8>; 1408 bias-disable; 1409 }; 1410}; 1411