1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2023, Luca Weiss <luca.weiss@fairphone.com> 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-pm7325.h> 13#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.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 <dt-bindings/sound/qcom,q6asm.h> 18#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h> 19#include "kodiak.dtsi" 20#include "pm7250b.dtsi" 21#include "pm7325.dtsi" 22#include "pm8350c.dtsi" /* PM7350C */ 23#include "pmk8350.dtsi" /* PMK7325 */ 24 25/delete-node/ &rmtfs_mem; 26 27/ { 28 model = "Fairphone 5"; 29 compatible = "fairphone,fp5", "qcom,qcm6490"; 30 chassis-type = "handset"; 31 32 aliases { 33 serial0 = &uart5; 34 serial1 = &uart7; 35 }; 36 37 chosen { 38 #address-cells = <2>; 39 #size-cells = <2>; 40 ranges; 41 42 framebuffer0: framebuffer@a000000 { 43 compatible = "simple-framebuffer"; 44 reg = <0x0 0xe1000000 0x0 (2700 * 1224 * 4)>; 45 width = <1224>; 46 height = <2700>; 47 stride = <(1224 * 4)>; 48 format = "a8r8g8b8"; 49 clocks = <&gcc GCC_DISP_HF_AXI_CLK>; 50 vci-supply = <&vreg_oled_vci>; 51 dvdd-supply = <&vreg_oled_dvdd>; 52 }; 53 }; 54 55 gpio-keys { 56 compatible = "gpio-keys"; 57 58 pinctrl-0 = <&volume_down_default>, <&hall_sensor_default>; 59 pinctrl-names = "default"; 60 61 key-volume-up { 62 label = "Volume up"; 63 gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>; 64 linux,code = <KEY_VOLUMEUP>; 65 }; 66 67 /* Powered by the always-on vreg_l8c */ 68 event-hall-sensor { 69 label = "Hall Effect Sensor"; 70 gpios = <&tlmm 155 GPIO_ACTIVE_LOW>; 71 linux,input-type = <EV_SW>; 72 linux,code = <SW_LID>; 73 linux,can-disable; 74 wakeup-source; 75 }; 76 }; 77 78 pmic-glink { 79 compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink"; 80 81 #address-cells = <1>; 82 #size-cells = <0>; 83 84 orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>; 85 86 connector@0 { 87 compatible = "usb-c-connector"; 88 reg = <0>; 89 power-role = "dual"; 90 data-role = "dual"; 91 92 ports { 93 #address-cells = <1>; 94 #size-cells = <0>; 95 96 port@0 { 97 reg = <0>; 98 99 pmic_glink_hs_in: endpoint { 100 remote-endpoint = <&usb_1_dwc3_hs>; 101 }; 102 }; 103 104 port@1 { 105 reg = <1>; 106 107 pmic_glink_ss_in: endpoint { 108 remote-endpoint = <&redriver_ss_out>; 109 }; 110 }; 111 112 port@2 { 113 reg = <2>; 114 115 pmic_glink_sbu: endpoint { 116 remote-endpoint = <&ocp96011_sbu_mux>; 117 }; 118 }; 119 }; 120 }; 121 }; 122 123 vreg_afvdd_2p8: regulator-afvdd-2p8 { 124 compatible = "regulator-fixed"; 125 regulator-name = "AFVDD_2P8"; 126 regulator-min-microvolt = <2800000>; 127 regulator-max-microvolt = <2800000>; 128 gpio = <&tlmm 68 GPIO_ACTIVE_HIGH>; 129 enable-active-high; 130 vin-supply = <&vreg_bob>; 131 }; 132 133 vreg_ois_avdd0_1p8: regulator-ois-avdd0-1p8 { 134 compatible = "regulator-fixed"; 135 regulator-name = "OIS_AVDD0_1P8"; 136 regulator-min-microvolt = <1800000>; 137 regulator-max-microvolt = <1800000>; 138 gpio = <&tlmm 157 GPIO_ACTIVE_HIGH>; 139 enable-active-high; 140 vin-supply = <&vreg_bob>; 141 }; 142 143 vreg_ois_dvdd_1p1: regulator-ois-dvdd-1p1 { 144 compatible = "regulator-fixed"; 145 regulator-name = "OIS_DVDD_1P1"; 146 regulator-min-microvolt = <1100000>; 147 regulator-max-microvolt = <1100000>; 148 gpio = <&tlmm 97 GPIO_ACTIVE_HIGH>; 149 enable-active-high; 150 vin-supply = <&vreg_s8b>; 151 }; 152 153 vreg_oled_dvdd: regulator-oled-dvdd { 154 compatible = "regulator-fixed"; 155 regulator-name = "oled_dvdd"; 156 regulator-min-microvolt = <1200000>; 157 regulator-max-microvolt = <1200000>; 158 159 gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>; 160 enable-active-high; 161 162 vin-supply = <&vreg_s1b>; 163 164 regulator-boot-on; 165 }; 166 167 vreg_oled_vci: regulator-oled-vci { 168 compatible = "regulator-fixed"; 169 regulator-name = "oled_vci"; 170 regulator-min-microvolt = <3000000>; 171 regulator-max-microvolt = <3000000>; 172 173 gpio = <&pm8350c_gpios 7 GPIO_ACTIVE_HIGH>; 174 enable-active-high; 175 176 vin-supply = <&vreg_l13c>; 177 178 regulator-boot-on; 179 }; 180 181 vreg_usb_redrive_1v8: regulator-usb-redrive-1v8 { 182 compatible = "regulator-fixed"; 183 regulator-name = "USB_REDRIVE_1V8"; 184 regulator-min-microvolt = <1800000>; 185 regulator-max-microvolt = <1800000>; 186 187 gpio = <&tlmm 61 GPIO_ACTIVE_HIGH>; 188 enable-active-high; 189 190 vin-supply = <&vreg_bob>; 191 192 regulator-boot-on; 193 194 pinctrl-0 = <&usb_redrive_1v8_en_default>; 195 pinctrl-names = "default"; 196 }; 197 198 vreg_vtof_ldo_2p8: regulator-vtof-ldo-2p8 { 199 compatible = "regulator-fixed"; 200 regulator-name = "VTOF_LDO_2P8"; 201 regulator-min-microvolt = <2800000>; 202 regulator-max-microvolt = <2800000>; 203 regulator-enable-ramp-delay = <233>; 204 205 gpio = <&tlmm 141 GPIO_ACTIVE_HIGH>; 206 enable-active-high; 207 208 vin-supply = <&vreg_bob>; 209 }; 210 211 reserved-memory { 212 cont_splash_mem: cont-splash@e1000000 { 213 reg = <0x0 0xe1000000 0x0 0x2300000>; 214 no-map; 215 }; 216 217 cdsp_mem: cdsp@88f00000 { 218 reg = <0x0 0x88f00000 0x0 0x1e00000>; 219 no-map; 220 }; 221 222 removed_mem: removed@c0000000 { 223 reg = <0x0 0xc0000000 0x0 0x5100000>; 224 no-map; 225 }; 226 227 rmtfs_mem: memory@f8500000 { 228 compatible = "qcom,rmtfs-mem"; 229 reg = <0x0 0xf8500000 0x0 0x600000>; 230 no-map; 231 232 qcom,client-id = <1>; 233 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>, <QCOM_SCM_VMID_NAV>; 234 }; 235 }; 236 237 thermal-zones { 238 camera-thermal { 239 polling-delay-passive = <0>; 240 241 thermal-sensors = <&pmk8350_adc_tm 2>; 242 243 trips { 244 active-config0 { 245 temperature = <125000>; 246 hysteresis = <1000>; 247 type = "passive"; 248 }; 249 }; 250 }; 251 252 chg-skin-thermal { 253 polling-delay-passive = <0>; 254 255 thermal-sensors = <&pm7250b_adc_tm 0>; 256 257 trips { 258 active-config0 { 259 temperature = <125000>; 260 hysteresis = <1000>; 261 type = "passive"; 262 }; 263 }; 264 }; 265 266 conn-thermal { 267 polling-delay-passive = <0>; 268 269 thermal-sensors = <&pm7250b_adc_tm 1>; 270 271 trips { 272 active-config0 { 273 temperature = <125000>; 274 hysteresis = <1000>; 275 type = "passive"; 276 }; 277 }; 278 }; 279 280 mem-thermal { 281 polling-delay-passive = <0>; 282 283 thermal-sensors = <&pm7250b_adc_tm 2>; 284 285 trips { 286 active-config0 { 287 temperature = <125000>; 288 hysteresis = <1000>; 289 type = "passive"; 290 }; 291 }; 292 }; 293 294 pm8008-thermal { 295 polling-delay-passive = <100>; 296 thermal-sensors = <&pm8008>; 297 298 trips { 299 trip0 { 300 temperature = <95000>; 301 hysteresis = <0>; 302 type = "passive"; 303 }; 304 305 trip1 { 306 temperature = <115000>; 307 hysteresis = <0>; 308 type = "critical"; 309 }; 310 }; 311 }; 312 313 quiet-thermal { 314 polling-delay-passive = <0>; 315 316 thermal-sensors = <&pmk8350_adc_tm 1>; 317 318 trips { 319 active-config0 { 320 temperature = <125000>; 321 hysteresis = <1000>; 322 type = "passive"; 323 }; 324 }; 325 }; 326 327 rear-cam-thermal { 328 polling-delay-passive = <0>; 329 330 thermal-sensors = <&pmk8350_adc_tm 4>; 331 332 trips { 333 active-config0 { 334 temperature = <125000>; 335 hysteresis = <1000>; 336 type = "passive"; 337 }; 338 }; 339 }; 340 341 sdm-skin-thermal { 342 polling-delay-passive = <0>; 343 344 thermal-sensors = <&pmk8350_adc_tm 3>; 345 346 trips { 347 active-config0 { 348 temperature = <125000>; 349 hysteresis = <1000>; 350 type = "passive"; 351 }; 352 }; 353 }; 354 355 xo-thermal { 356 polling-delay-passive = <0>; 357 358 thermal-sensors = <&pmk8350_adc_tm 0>; 359 360 trips { 361 active-config0 { 362 temperature = <125000>; 363 hysteresis = <1000>; 364 type = "passive"; 365 }; 366 }; 367 }; 368 }; 369}; 370 371&apps_rsc { 372 regulators-0 { 373 compatible = "qcom,pm7325-rpmh-regulators"; 374 qcom,pmic-id = "b"; 375 376 vreg_s1b: smps1 { 377 regulator-name = "vreg_s1b"; 378 regulator-min-microvolt = <1840000>; 379 regulator-max-microvolt = <2040000>; 380 }; 381 382 vreg_s7b: smps7 { 383 regulator-name = "vreg_s7b"; 384 regulator-min-microvolt = <535000>; 385 regulator-max-microvolt = <1120000>; 386 }; 387 388 vreg_s8b: smps8 { 389 regulator-name = "vreg_s8b"; 390 regulator-min-microvolt = <1200000>; 391 regulator-max-microvolt = <1500000>; 392 regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>; 393 }; 394 395 vreg_l1b: ldo1 { 396 regulator-name = "vreg_l1b"; 397 regulator-min-microvolt = <825000>; 398 regulator-max-microvolt = <925000>; 399 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 400 }; 401 402 vreg_l2b: ldo2 { 403 regulator-name = "vreg_l2b"; 404 regulator-min-microvolt = <2700000>; 405 regulator-max-microvolt = <3544000>; 406 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 407 }; 408 409 vreg_l3b: ldo3 { 410 regulator-name = "vreg_l3b"; 411 regulator-min-microvolt = <312000>; 412 regulator-max-microvolt = <910000>; 413 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 414 }; 415 416 vreg_l6b: ldo6 { 417 regulator-name = "vreg_l6b"; 418 regulator-min-microvolt = <1140000>; 419 regulator-max-microvolt = <1260000>; 420 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 421 }; 422 423 vreg_l7b: ldo7 { 424 regulator-name = "vreg_l7b"; 425 /* Constrained for UFS VCC, at least until UFS driver scales voltage */ 426 regulator-min-microvolt = <2952000>; 427 regulator-max-microvolt = <2952000>; 428 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 429 }; 430 431 vreg_l8b: ldo8 { 432 regulator-name = "vreg_l8b"; 433 regulator-min-microvolt = <870000>; 434 regulator-max-microvolt = <970000>; 435 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 436 }; 437 438 vreg_l9b: ldo9 { 439 regulator-name = "vreg_l9b"; 440 regulator-min-microvolt = <1200000>; 441 regulator-max-microvolt = <1304000>; 442 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 443 }; 444 445 vreg_l11b: ldo11 { 446 regulator-name = "vreg_l11b"; 447 regulator-min-microvolt = <1504000>; 448 regulator-max-microvolt = <2000000>; 449 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 450 }; 451 452 vreg_l12b: ldo12 { 453 regulator-name = "vreg_l12b"; 454 regulator-min-microvolt = <751000>; 455 regulator-max-microvolt = <824000>; 456 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 457 }; 458 459 vreg_l13b: ldo13 { 460 regulator-name = "vreg_l13b"; 461 regulator-min-microvolt = <530000>; 462 regulator-max-microvolt = <824000>; 463 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 464 }; 465 466 vreg_l14b: ldo14 { 467 regulator-name = "vreg_l14b"; 468 regulator-min-microvolt = <1080000>; 469 regulator-max-microvolt = <1304000>; 470 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 471 }; 472 473 vreg_l15b: ldo15 { 474 regulator-name = "vreg_l15b"; 475 regulator-min-microvolt = <765000>; 476 regulator-max-microvolt = <1020000>; 477 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 478 }; 479 480 vreg_l16b: ldo16 { 481 regulator-name = "vreg_l16b"; 482 regulator-min-microvolt = <1100000>; 483 regulator-max-microvolt = <1300000>; 484 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 485 }; 486 487 vreg_l17b: ldo17 { 488 regulator-name = "vreg_l17b"; 489 regulator-min-microvolt = <1700000>; 490 regulator-max-microvolt = <1900000>; 491 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 492 }; 493 494 vreg_l18b: ldo18 { 495 regulator-name = "vreg_l18b"; 496 regulator-min-microvolt = <1800000>; 497 regulator-max-microvolt = <2000000>; 498 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 499 }; 500 501 vreg_l19b: ldo19 { 502 regulator-name = "vreg_l19b"; 503 regulator-min-microvolt = <1800000>; 504 regulator-max-microvolt = <2000000>; 505 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 506 }; 507 }; 508 509 regulators-1 { 510 compatible = "qcom,pm8350c-rpmh-regulators"; 511 qcom,pmic-id = "c"; 512 513 vreg_s1c: smps1 { 514 regulator-name = "vreg_s1c"; 515 regulator-min-microvolt = <2190000>; 516 regulator-max-microvolt = <2210000>; 517 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 518 }; 519 520 vreg_s9c: smps9 { 521 regulator-name = "vreg_s9c"; 522 regulator-min-microvolt = <1010000>; 523 regulator-max-microvolt = <1170000>; 524 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 525 }; 526 527 vreg_l1c: ldo1 { 528 regulator-name = "vreg_l1c"; 529 regulator-min-microvolt = <1800000>; 530 regulator-max-microvolt = <1980000>; 531 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 532 }; 533 534 vreg_l2c: ldo2 { 535 regulator-name = "vreg_l2c"; 536 regulator-min-microvolt = <1800000>; 537 regulator-max-microvolt = <1950000>; 538 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 539 }; 540 541 vreg_l3c: ldo3 { 542 regulator-name = "vreg_l3c"; 543 regulator-min-microvolt = <3000000>; 544 regulator-max-microvolt = <3400000>; 545 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 546 }; 547 548 vreg_l4c: ldo4 { 549 regulator-name = "vreg_l4c"; 550 regulator-min-microvolt = <1620000>; 551 regulator-max-microvolt = <3300000>; 552 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 553 }; 554 555 vreg_l5c: ldo5 { 556 regulator-name = "vreg_l5c"; 557 regulator-min-microvolt = <1620000>; 558 regulator-max-microvolt = <3300000>; 559 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 560 }; 561 562 vreg_l6c: ldo6 { 563 regulator-name = "vreg_l6c"; 564 regulator-min-microvolt = <1650000>; 565 regulator-max-microvolt = <3544000>; 566 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 567 }; 568 569 vreg_l7c: ldo7 { 570 regulator-name = "vreg_l7c"; 571 regulator-min-microvolt = <3000000>; 572 regulator-max-microvolt = <3544000>; 573 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 574 }; 575 576 vreg_l8c: ldo8 { 577 regulator-name = "vreg_l8c"; 578 regulator-min-microvolt = <1620000>; 579 regulator-max-microvolt = <2000000>; 580 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 581 /* Hall sensor VDD */ 582 regulator-always-on; 583 }; 584 585 vreg_l9c: ldo9 { 586 regulator-name = "vreg_l9c"; 587 regulator-min-microvolt = <2700000>; 588 regulator-max-microvolt = <3544000>; 589 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 590 }; 591 592 vreg_l10c: ldo10 { 593 regulator-name = "vreg_l10c"; 594 regulator-min-microvolt = <720000>; 595 regulator-max-microvolt = <1050000>; 596 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 597 }; 598 599 vreg_l11c: ldo11 { 600 regulator-name = "vreg_l11c"; 601 regulator-min-microvolt = <2800000>; 602 regulator-max-microvolt = <3544000>; 603 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 604 }; 605 606 vreg_l12c: ldo12 { 607 regulator-name = "vreg_l12c"; 608 regulator-min-microvolt = <1650000>; 609 regulator-max-microvolt = <2000000>; 610 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 611 }; 612 613 vreg_l13c: ldo13 { 614 regulator-name = "vreg_l13c"; 615 regulator-min-microvolt = <2700000>; 616 regulator-max-microvolt = <3544000>; 617 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 618 }; 619 620 vreg_bob: bob { 621 regulator-name = "vreg_bob"; 622 regulator-min-microvolt = <3008000>; 623 regulator-max-microvolt = <3960000>; 624 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 625 }; 626 }; 627}; 628 629&cci0 { 630 status = "okay"; 631}; 632 633&cci0_i2c0 { 634 /* IMX800 @ 1a */ 635 636 eeprom@50 { 637 compatible = "puya,p24c256c", "atmel,24c256"; 638 reg = <0x50>; 639 vcc-supply = <&vreg_l6p>; 640 read-only; 641 }; 642}; 643 644&cci0_i2c1 { 645 camera_imx858_dw9800k: actuator@e { 646 compatible = "dongwoon,dw9800k"; 647 reg = <0x0e>; 648 vdd-supply = <&vreg_afvdd_2p8>; 649 650 dongwoon,sac-mode = <1>; 651 dongwoon,vcm-prescale = <16>; 652 }; 653 654 /* IMX858 @ 29 */ 655 656 eeprom@54 { 657 compatible = "giantec,gt24p128f", "atmel,24c128"; 658 reg = <0x54>; 659 vcc-supply = <&vreg_l6p>; 660 read-only; 661 }; 662}; 663 664&cci1 { 665 status = "okay"; 666}; 667 668&cci1_i2c1 { 669 /* S5KJN1SQ03 @ 10 */ 670 671 eeprom@51 { 672 compatible = "giantec,gt24p128f", "atmel,24c128"; 673 reg = <0x51>; 674 vcc-supply = <&vreg_l6p>; 675 read-only; 676 }; 677}; 678 679&gcc { 680 protected-clocks = <GCC_CFG_NOC_LPASS_CLK>, 681 <GCC_EDP_CLKREF_EN>, 682 <GCC_MSS_CFG_AHB_CLK>, 683 <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>, 684 <GCC_MSS_OFFLINE_AXI_CLK>, 685 <GCC_MSS_Q6SS_BOOT_CLK_SRC>, 686 <GCC_MSS_Q6_MEMNOC_AXI_CLK>, 687 <GCC_MSS_SNOC_AXI_CLK>, 688 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>, 689 <GCC_QSPI_CORE_CLK>, 690 <GCC_QSPI_CORE_CLK_SRC>, 691 <GCC_SEC_CTRL_CLK_SRC>, 692 <GCC_WPSS_AHB_BDG_MST_CLK>, 693 <GCC_WPSS_AHB_CLK>, 694 <GCC_WPSS_RSCP_CLK>; 695}; 696 697&gpi_dma0 { 698 status = "okay"; 699}; 700 701&gpi_dma1 { 702 status = "okay"; 703}; 704 705&gpu { 706 status = "okay"; 707}; 708 709&gpu_zap_shader { 710 firmware-name = "qcom/qcm6490/fairphone5/a660_zap.mbn"; 711}; 712 713&i2c1 { 714 status = "okay"; 715 716 pm8008: pmic@8 { 717 compatible = "qcom,pm8008"; 718 reg = <0x8>; 719 720 interrupts-extended = <&tlmm 25 IRQ_TYPE_EDGE_RISING>; 721 reset-gpios = <&pm8350c_gpios 3 GPIO_ACTIVE_LOW>; 722 723 vdd-l1-l2-supply = <&vreg_s8b>; 724 vdd-l3-l4-supply = <&vreg_bob>; 725 vdd-l5-supply = <&vreg_bob>; 726 vdd-l6-supply = <&vreg_s1b>; 727 vdd-l7-supply = <&vreg_bob>; 728 729 pinctrl-names = "default"; 730 pinctrl-0 = <&pm8008_int_default>, <&pm8008_reset_n_default>; 731 732 gpio-controller; 733 #gpio-cells = <2>; 734 gpio-ranges = <&pm8008 0 0 2>; 735 736 interrupt-controller; 737 #interrupt-cells = <2>; 738 739 #thermal-sensor-cells = <0>; 740 741 regulators { 742 vreg_l1p: ldo1 { 743 regulator-name = "vreg_l1p"; 744 regulator-min-microvolt = <1000000>; 745 regulator-max-microvolt = <1200000>; 746 }; 747 748 vreg_l2p: ldo2 { 749 regulator-name = "vreg_l2p"; 750 regulator-min-microvolt = <950000>; 751 regulator-max-microvolt = <1152000>; 752 }; 753 754 vreg_l3p: ldo3 { 755 regulator-name = "vreg_l3p"; 756 regulator-min-microvolt = <2700000>; 757 regulator-max-microvolt = <3000000>; 758 }; 759 760 vreg_l4p: ldo4 { 761 regulator-name = "vreg_l4p"; 762 regulator-min-microvolt = <2700000>; 763 regulator-max-microvolt = <2900000>; 764 }; 765 766 vreg_l5p: ldo5 { 767 regulator-name = "vreg_l5p"; 768 regulator-min-microvolt = <2704000>; 769 regulator-max-microvolt = <2900000>; 770 }; 771 772 vreg_l6p: ldo6 { 773 regulator-name = "vreg_l6p"; 774 regulator-min-microvolt = <1700000>; 775 regulator-max-microvolt = <1904000>; 776 /* Pull-up for CCI I2C busses */ 777 regulator-always-on; 778 }; 779 780 vreg_l7p: ldo7 { 781 regulator-name = "vreg_l7p"; 782 regulator-min-microvolt = <2700000>; 783 regulator-max-microvolt = <3000000>; 784 }; 785 }; 786 }; 787 788 /* Pixelworks @ 26 */ 789 790 typec-mux@42 { 791 compatible = "ocs,ocp96011", "fcs,fsa4480"; 792 reg = <0x42>; 793 794 interrupts-extended = <&tlmm 7 IRQ_TYPE_LEVEL_LOW>; 795 796 vcc-supply = <&vreg_bob>; 797 798 mode-switch; 799 orientation-switch; 800 801 port { 802 ocp96011_sbu_mux: endpoint { 803 remote-endpoint = <&pmic_glink_sbu>; 804 data-lanes = <1 0>; 805 }; 806 }; 807 }; 808 809 vibrator@5a { 810 compatible = "awinic,aw86927"; 811 reg = <0x5a>; 812 813 interrupts-extended = <&tlmm 101 IRQ_TYPE_EDGE_FALLING>; 814 reset-gpios = <&tlmm 100 GPIO_ACTIVE_LOW>; 815 816 pinctrl-0 = <&aw86927_int_default>; 817 pinctrl-names = "default"; 818 }; 819}; 820 821&i2c2 { 822 status = "okay"; 823 824 /* AW88261FCR amplifier @ 34 */ 825 /* AW88261FCR amplifier @ 35 */ 826}; 827 828&i2c4 { 829 status = "okay"; 830 831 typec-mux@1a { 832 compatible = "nxp,ptn36502"; 833 reg = <0x1a>; 834 835 vdd18-supply = <&vreg_usb_redrive_1v8>; 836 837 retimer-switch; 838 orientation-switch; 839 840 ports { 841 #address-cells = <1>; 842 #size-cells = <0>; 843 844 port@0 { 845 reg = <0>; 846 847 redriver_ss_out: endpoint { 848 remote-endpoint = <&pmic_glink_ss_in>; 849 }; 850 }; 851 852 port@1 { 853 reg = <1>; 854 855 redriver_ss_in: endpoint { 856 remote-endpoint = <&usb_dp_qmpphy_out>; 857 }; 858 }; 859 }; 860 }; 861}; 862 863&i2c9 { 864 status = "okay"; 865 866 /* ST21NFC NFC @ 28 */ 867 /* VL53L3 ToF @ 29 */ 868}; 869 870&ipa { 871 qcom,gsi-loader = "self"; 872 memory-region = <&ipa_fw_mem>; 873 firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mbn"; 874 status = "okay"; 875}; 876 877&lpass_audiocc { 878 compatible = "qcom,qcm6490-lpassaudiocc"; 879 /delete-property/ power-domains; 880}; 881 882&mdss { 883 status = "okay"; 884}; 885 886&mdss_dp { 887 status = "okay"; 888}; 889 890&mdss_dp_out { 891 data-lanes = <0 1>; 892}; 893 894&mdss_dsi { 895 vdda-supply = <&vreg_l6b>; 896 status = "okay"; 897 898 panel@0 { 899 compatible = "fairphone,fp5-rm692e5-boe", "raydium,rm692e5"; 900 reg = <0>; 901 902 reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>; 903 904 vci-supply = <&vreg_oled_vci>; 905 vddio-supply = <&vreg_l12c>; 906 dvdd-supply = <&vreg_oled_dvdd>; 907 908 pinctrl-0 = <&disp_reset_n_active>, <&mdp_vsync>; 909 pinctrl-1 = <&disp_reset_n_suspend>, <&mdp_vsync>; 910 pinctrl-names = "default", "sleep"; 911 912 port { 913 panel_in: endpoint { 914 remote-endpoint = <&mdss_dsi0_out>; 915 }; 916 }; 917 }; 918}; 919 920&mdss_dsi0_out { 921 data-lanes = <0 1 2 3>; 922 remote-endpoint = <&panel_in>; 923}; 924 925&mdss_dsi_phy { 926 vdds-supply = <&vreg_l10c>; 927 status = "okay"; 928}; 929 930&pm7250b_adc { 931 pinctrl-0 = <&pm7250b_adc_default>; 932 pinctrl-names = "default"; 933 934 channel@4d { 935 reg = <ADC5_AMUX_THM1_100K_PU>; 936 qcom,ratiometric; 937 qcom,hw-settle-time = <200>; 938 qcom,pre-scaling = <1 1>; 939 label = "charger_skin_therm"; 940 }; 941 942 channel@4f { 943 reg = <ADC5_AMUX_THM3_100K_PU>; 944 qcom,ratiometric; 945 qcom,hw-settle-time = <200>; 946 qcom,pre-scaling = <1 1>; 947 label = "conn_therm"; 948 }; 949 950 channel@53 { 951 reg = <ADC5_GPIO2_100K_PU>; 952 qcom,ratiometric; 953 qcom,hw-settle-time = <200>; 954 qcom,pre-scaling = <1 1>; 955 label = "mem_therm"; 956 }; 957}; 958 959&pm7250b_adc_tm { 960 status = "okay"; 961 962 charger-skin-therm@0 { 963 reg = <0>; 964 io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>; 965 qcom,ratiometric; 966 qcom,hw-settle-time-us = <200>; 967 }; 968 969 conn-therm@1 { 970 reg = <1>; 971 io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>; 972 qcom,ratiometric; 973 qcom,hw-settle-time-us = <200>; 974 }; 975 976 mem-therm@2 { 977 reg = <2>; 978 io-channels = <&pm7250b_adc ADC5_GPIO2_100K_PU>; 979 qcom,ratiometric; 980 qcom,hw-settle-time-us = <200>; 981 }; 982}; 983 984&pm7250b_gpios { 985 pm7250b_adc_default: adc-default-state { 986 pins = "gpio12"; 987 function = PMIC_GPIO_FUNC_NORMAL; 988 bias-high-impedance; 989 }; 990}; 991 992&pm7325_gpios { 993 volume_down_default: volume-down-default-state { 994 pins = "gpio6"; 995 function = PMIC_GPIO_FUNC_NORMAL; 996 power-source = <1>; 997 bias-pull-up; 998 input-enable; 999 }; 1000}; 1001 1002&pm8350c_flash { 1003 status = "okay"; 1004 1005 led-0 { 1006 function = LED_FUNCTION_FLASH; 1007 color = <LED_COLOR_ID_WHITE>; 1008 led-sources = <1>, <4>; 1009 led-max-microamp = <500000>; 1010 flash-max-microamp = <1500000>; 1011 flash-max-timeout-us = <1280000>; 1012 }; 1013}; 1014 1015&pmk8350_adc_tm { 1016 status = "okay"; 1017 1018 xo-therm@0 { 1019 reg = <0>; 1020 io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>; 1021 qcom,ratiometric; 1022 qcom,hw-settle-time-us = <200>; 1023 }; 1024 1025 quiet-therm@1 { 1026 reg = <1>; 1027 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>; 1028 qcom,ratiometric; 1029 qcom,hw-settle-time-us = <200>; 1030 }; 1031 1032 cam-flash-therm@2 { 1033 reg = <2>; 1034 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>; 1035 qcom,ratiometric; 1036 qcom,hw-settle-time-us = <200>; 1037 }; 1038 1039 sdm-skin-therm@3 { 1040 reg = <3>; 1041 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>; 1042 qcom,ratiometric; 1043 qcom,hw-settle-time-us = <200>; 1044 }; 1045 1046 wide-rfc-therm@4 { 1047 reg = <4>; 1048 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>; 1049 qcom,ratiometric; 1050 qcom,hw-settle-time-us = <200>; 1051 }; 1052}; 1053 1054&pm8350c_gpios { 1055 pm8008_reset_n_default: pm8008-reset-n-default-state { 1056 pins = "gpio3"; 1057 function = PMIC_GPIO_FUNC_NORMAL; 1058 bias-pull-down; 1059 }; 1060}; 1061 1062&pmk8350_rtc { 1063 status = "okay"; 1064}; 1065 1066&pmk8350_vadc { 1067 status = "okay"; 1068 1069 channel@44 { 1070 reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>; 1071 qcom,ratiometric; 1072 qcom,hw-settle-time = <200>; 1073 qcom,pre-scaling = <1 1>; 1074 label = "pmk8350_xo_therm"; 1075 }; 1076 1077 channel@144 { 1078 reg = <PM7325_ADC7_AMUX_THM1_100K_PU>; 1079 qcom,ratiometric; 1080 qcom,hw-settle-time = <200>; 1081 qcom,pre-scaling = <1 1>; 1082 label = "pm7325_quiet_therm"; 1083 }; 1084 1085 channel@145 { 1086 reg = <PM7325_ADC7_AMUX_THM2_100K_PU>; 1087 qcom,ratiometric; 1088 qcom,hw-settle-time = <200>; 1089 qcom,pre-scaling = <1 1>; 1090 label = "pm7325_cam_flash_therm"; 1091 }; 1092 1093 channel@146 { 1094 reg = <PM7325_ADC7_AMUX_THM3_100K_PU>; 1095 qcom,ratiometric; 1096 qcom,hw-settle-time = <200>; 1097 qcom,pre-scaling = <1 1>; 1098 label = "pm7325_sdm_skin_therm"; 1099 }; 1100 1101 channel@147 { 1102 reg = <PM7325_ADC7_AMUX_THM4_100K_PU>; 1103 qcom,ratiometric; 1104 qcom,hw-settle-time = <200>; 1105 qcom,pre-scaling = <1 1>; 1106 label = "pm7325_wide_rfc_therm"; 1107 }; 1108}; 1109 1110&pon_pwrkey { 1111 status = "okay"; 1112}; 1113 1114&pon_resin { 1115 linux,code = <KEY_VOLUMEDOWN>; 1116 status = "okay"; 1117}; 1118 1119&qup_spi13_cs { 1120 drive-strength = <6>; 1121 bias-disable; 1122}; 1123 1124&qup_spi13_data_clk { 1125 drive-strength = <6>; 1126 bias-disable; 1127}; 1128 1129&qup_uart5_rx { 1130 drive-strength = <2>; 1131 bias-disable; 1132}; 1133 1134&qup_uart5_tx { 1135 drive-strength = <2>; 1136 bias-disable; 1137}; 1138 1139&qupv3_id_0 { 1140 status = "okay"; 1141}; 1142 1143&qupv3_id_1 { 1144 status = "okay"; 1145}; 1146 1147&remoteproc_adsp { 1148 firmware-name = "qcom/qcm6490/fairphone5/adsp.mbn"; 1149 status = "okay"; 1150}; 1151 1152&remoteproc_cdsp { 1153 firmware-name = "qcom/qcm6490/fairphone5/cdsp.mbn"; 1154 status = "okay"; 1155}; 1156 1157&remoteproc_mpss { 1158 firmware-name = "qcom/qcm6490/fairphone5/modem.mbn"; 1159 status = "okay"; 1160}; 1161 1162&remoteproc_wpss { 1163 firmware-name = "qcom/qcm6490/fairphone5/wpss.mbn"; 1164 status = "okay"; 1165}; 1166 1167&sdc2_clk { 1168 drive-strength = <16>; 1169 bias-disable; 1170}; 1171 1172&sdc2_cmd { 1173 drive-strength = <10>; 1174 bias-pull-up; 1175}; 1176 1177&sdc2_data { 1178 drive-strength = <10>; 1179 bias-pull-up; 1180}; 1181 1182&sdhc_2 { 1183 vmmc-supply = <&vreg_l9c>; 1184 vqmmc-supply = <&vreg_l6c>; 1185 1186 pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>; 1187 pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>; 1188 1189 status = "okay"; 1190}; 1191 1192&sound { 1193 compatible = "fairphone,fp5-sndcard"; 1194 model = "Fairphone 5"; 1195 1196 mm1-dai-link { 1197 link-name = "MultiMedia1"; 1198 1199 cpu { 1200 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; 1201 }; 1202 }; 1203 1204 displayport-rx-dai-link { 1205 link-name = "DisplayPort Playback"; 1206 1207 codec { 1208 sound-dai = <&mdss_dp>; 1209 }; 1210 1211 cpu { 1212 sound-dai = <&q6afedai DISPLAY_PORT_RX>; 1213 }; 1214 1215 platform { 1216 sound-dai = <&q6routing>; 1217 }; 1218 }; 1219 1220 usb-dai-link { 1221 link-name = "USB Playback"; 1222 1223 codec { 1224 sound-dai = <&q6usbdai USB_RX>; 1225 }; 1226 1227 cpu { 1228 sound-dai = <&q6afedai USB_RX>; 1229 }; 1230 1231 platform { 1232 sound-dai = <&q6routing>; 1233 }; 1234 }; 1235}; 1236 1237&spi13 { 1238 status = "okay"; 1239 1240 touchscreen@0 { 1241 compatible = "goodix,gt9897"; 1242 reg = <0>; 1243 interrupts-extended = <&tlmm 81 IRQ_TYPE_LEVEL_LOW>; 1244 reset-gpios = <&tlmm 105 GPIO_ACTIVE_LOW>; 1245 avdd-supply = <&vreg_l3c>; 1246 vddio-supply = <&vreg_l2c>; 1247 spi-max-frequency = <1000000>; 1248 touchscreen-size-x = <1224>; 1249 touchscreen-size-y = <2700>; 1250 }; 1251}; 1252 1253&tlmm { 1254 /* 1255 * 32-33: SMB1394 (SPMI) 1256 * 56-59: fingerprint reader (SPI) 1257 */ 1258 gpio-reserved-ranges = <32 2>, <56 4>; 1259 1260 bluetooth_enable_default: bluetooth-enable-default-state { 1261 pins = "gpio85"; 1262 function = "gpio"; 1263 output-low; 1264 bias-disable; 1265 }; 1266 1267 disp_reset_n_active: disp-reset-n-active-state { 1268 pins = "gpio44"; 1269 function = "gpio"; 1270 drive-strength = <8>; 1271 bias-disable; 1272 }; 1273 1274 disp_reset_n_suspend: disp-reset-n-suspend-state { 1275 pins = "gpio44"; 1276 function = "gpio"; 1277 drive-strength = <2>; 1278 bias-pull-down; 1279 }; 1280 1281 hall_sensor_default: hall-sensor-default-state { 1282 pins = "gpio155"; 1283 function = "gpio"; 1284 drive-strength = <2>; 1285 bias-pull-up; 1286 }; 1287 1288 mdp_vsync: mdp-vsync-state { 1289 pins = "gpio80"; 1290 function = "mdp_vsync"; 1291 drive-strength = <2>; 1292 bias-pull-down; 1293 }; 1294 1295 pm8008_int_default: pm8008-int-default-state { 1296 pins = "gpio25"; 1297 function = "gpio"; 1298 drive-strength = <2>; 1299 bias-disable; 1300 }; 1301 1302 qup_uart7_sleep_cts: qup-uart7-sleep-cts-state { 1303 pins = "gpio28"; 1304 function = "gpio"; 1305 /* 1306 * Configure a bias-bus-hold on CTS to lower power 1307 * usage when Bluetooth is turned off. Bus hold will 1308 * maintain a low power state regardless of whether 1309 * the Bluetooth module drives the pin in either 1310 * direction or leaves the pin fully unpowered. 1311 */ 1312 bias-bus-hold; 1313 }; 1314 1315 qup_uart7_sleep_rts: qup-uart7-sleep-rts-state { 1316 pins = "gpio29"; 1317 function = "gpio"; 1318 /* 1319 * Configure pull-down on RTS. As RTS is active low 1320 * signal, pull it low to indicate the BT SoC that it 1321 * can wakeup the system anytime from suspend state by 1322 * pulling RX low (by sending wakeup bytes). 1323 */ 1324 bias-pull-down; 1325 }; 1326 1327 qup_uart7_sleep_tx: qup-uart7-sleep-tx-state { 1328 pins = "gpio30"; 1329 function = "gpio"; 1330 /* 1331 * Configure pull-up on TX when it isn't actively driven 1332 * to prevent BT SoC from receiving garbage during sleep. 1333 */ 1334 bias-pull-up; 1335 }; 1336 1337 qup_uart7_sleep_rx: qup-uart7-sleep-rx-state { 1338 pins = "gpio31"; 1339 function = "gpio"; 1340 /* 1341 * Configure a pull-up on RX. This is needed to avoid 1342 * garbage data when the TX pin of the Bluetooth module 1343 * is floating which may cause spurious wakeups. 1344 */ 1345 bias-pull-up; 1346 }; 1347 1348 sw_ctrl_default: sw-ctrl-default-state { 1349 pins = "gpio86"; 1350 function = "gpio"; 1351 bias-pull-down; 1352 }; 1353 1354 usb_redrive_1v8_en_default: usb-redrive-1v8-en-default-state { 1355 pins = "gpio61"; 1356 function = "gpio"; 1357 drive-strength = <2>; 1358 bias-disable; 1359 output-high; 1360 }; 1361 1362 aw86927_int_default: aw86927-int-default-state { 1363 pins = "gpio101"; 1364 function = "gpio"; 1365 drive-strength = <2>; 1366 bias-pull-up; 1367 }; 1368}; 1369 1370&uart5 { 1371 status = "okay"; 1372}; 1373 1374&uart7 { 1375 /delete-property/interrupts; 1376 interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>, 1377 <&tlmm 31 IRQ_TYPE_EDGE_FALLING>; 1378 1379 pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>; 1380 pinctrl-names = "default", "sleep"; 1381 1382 status = "okay"; 1383 1384 bluetooth: bluetooth { 1385 compatible = "qcom,wcn6750-bt"; 1386 1387 pinctrl-0 = <&bluetooth_enable_default>, <&sw_ctrl_default>; 1388 pinctrl-names = "default"; 1389 1390 enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>; 1391 swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>; 1392 1393 vddio-supply = <&vreg_l19b>; 1394 vddaon-supply = <&vreg_s7b>; 1395 vddbtcxmx-supply = <&vreg_s7b>; 1396 vddrfacmn-supply = <&vreg_s7b>; 1397 vddrfa0p8-supply = <&vreg_s7b>; 1398 vddrfa1p7-supply = <&vreg_s1b>; 1399 vddrfa1p2-supply = <&vreg_s8b>; 1400 vddrfa2p2-supply = <&vreg_s1c>; 1401 vddasd-supply = <&vreg_l11c>; 1402 1403 max-speed = <3200000>; 1404 }; 1405}; 1406 1407&ufs_mem_hc { 1408 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>; 1409 1410 vcc-supply = <&vreg_l7b>; 1411 vcc-max-microamp = <800000>; 1412 /* 1413 * Technically l9b enables an eLDO (supplied by s1b) which then powers 1414 * VCCQ2 of the UFS. 1415 */ 1416 vccq-supply = <&vreg_l9b>; 1417 vccq-max-microamp = <900000>; 1418 1419 status = "okay"; 1420}; 1421 1422&ufs_mem_phy { 1423 vdda-phy-supply = <&vreg_l10c>; 1424 vdda-pll-supply = <&vreg_l6b>; 1425 1426 status = "okay"; 1427}; 1428 1429&usb_1 { 1430 dr_mode = "otg"; 1431 usb-role-switch; 1432 1433 status = "okay"; 1434}; 1435 1436&usb_1_dwc3_hs { 1437 remote-endpoint = <&pmic_glink_hs_in>; 1438}; 1439 1440&usb_1_hsphy { 1441 vdda-pll-supply = <&vreg_l10c>; 1442 vdda18-supply = <&vreg_l1c>; 1443 vdda33-supply = <&vreg_l2b>; 1444 1445 qcom,hs-crossover-voltage-microvolt = <28000>; 1446 qcom,hs-output-impedance-micro-ohms = <2600000>; 1447 qcom,hs-rise-fall-time-bp = <5430>; 1448 qcom,hs-disconnect-bp = <1743>; 1449 qcom,hs-amplitude-bp = <2430>; 1450 1451 qcom,pre-emphasis-amplitude-bp = <20000>; 1452 qcom,pre-emphasis-duration-bp = <20000>; 1453 1454 qcom,squelch-detector-bp = <(-2090)>; 1455 1456 status = "okay"; 1457}; 1458 1459&usb_1_qmpphy { 1460 vdda-phy-supply = <&vreg_l6b>; 1461 vdda-pll-supply = <&vreg_l1b>; 1462 1463 status = "okay"; 1464}; 1465 1466&usb_dp_qmpphy_out { 1467 remote-endpoint = <&redriver_ss_in>; 1468}; 1469 1470&venus { 1471 firmware-name = "qcom/qcm6490/fairphone5/venus.mbn"; 1472 status = "okay"; 1473}; 1474 1475&wifi { 1476 qcom,calibration-variant = "Fairphone_5"; 1477 status = "okay"; 1478}; 1479