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 "sc7280.dtsi" 18#include "pm7250b.dtsi" 19#include "pm7325.dtsi" 20#include "pm8350c.dtsi" /* PM7350C */ 21#include "pmk8350.dtsi" /* PMK7325 */ 22 23/delete-node/ &rmtfs_mem; 24 25/ { 26 model = "Fairphone 5"; 27 compatible = "fairphone,fp5", "qcom,qcm6490"; 28 chassis-type = "handset"; 29 30 aliases { 31 serial0 = &uart5; 32 serial1 = &uart7; 33 }; 34 35 chosen { 36 #address-cells = <2>; 37 #size-cells = <2>; 38 ranges; 39 40 framebuffer0: framebuffer@a000000 { 41 compatible = "simple-framebuffer"; 42 reg = <0x0 0xe1000000 0x0 (2700 * 1224 * 4)>; 43 width = <1224>; 44 height = <2700>; 45 stride = <(1224 * 4)>; 46 format = "a8r8g8b8"; 47 clocks = <&gcc GCC_DISP_HF_AXI_CLK>; 48 }; 49 }; 50 51 gpio-keys { 52 compatible = "gpio-keys"; 53 54 pinctrl-0 = <&volume_down_default>, <&hall_sensor_default>; 55 pinctrl-names = "default"; 56 57 key-volume-up { 58 label = "Volume up"; 59 gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>; 60 linux,code = <KEY_VOLUMEUP>; 61 }; 62 63 /* Powered by the always-on vreg_l8c */ 64 event-hall-sensor { 65 label = "Hall Effect Sensor"; 66 gpios = <&tlmm 155 GPIO_ACTIVE_LOW>; 67 linux,input-type = <EV_SW>; 68 linux,code = <SW_LID>; 69 linux,can-disable; 70 wakeup-source; 71 }; 72 }; 73 74 pmic-glink { 75 compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink"; 76 77 #address-cells = <1>; 78 #size-cells = <0>; 79 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_1_dwc3_ss>; 105 }; 106 }; 107 }; 108 }; 109 }; 110 111 reserved-memory { 112 cont_splash_mem: cont-splash@e1000000 { 113 reg = <0x0 0xe1000000 0x0 0x2300000>; 114 no-map; 115 }; 116 117 cdsp_mem: cdsp@88f00000 { 118 reg = <0x0 0x88f00000 0x0 0x1e00000>; 119 no-map; 120 }; 121 122 removed_mem: removed@c0000000 { 123 reg = <0x0 0xc0000000 0x0 0x5100000>; 124 no-map; 125 }; 126 127 rmtfs_mem: memory@f8500000 { 128 compatible = "qcom,rmtfs-mem"; 129 reg = <0x0 0xf8500000 0x0 0x600000>; 130 no-map; 131 132 qcom,client-id = <1>; 133 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>, <QCOM_SCM_VMID_NAV>; 134 }; 135 }; 136 137 ois_avdd0_1p8: regulator-ois-avdd0-1p8 { 138 compatible = "regulator-fixed"; 139 regulator-name = "OIS_AVDD0_1P8"; 140 regulator-min-microvolt = <1800000>; 141 regulator-max-microvolt = <1800000>; 142 gpio = <&tlmm 157 GPIO_ACTIVE_HIGH>; 143 enable-active-high; 144 vin-supply = <&vreg_bob>; 145 }; 146 147 ois_dvdd_1p1: regulator-ois-dvdd-1p1 { 148 compatible = "regulator-fixed"; 149 regulator-name = "OIS_DVDD_1P1"; 150 regulator-min-microvolt = <1100000>; 151 regulator-max-microvolt = <1100000>; 152 gpio = <&tlmm 97 GPIO_ACTIVE_HIGH>; 153 enable-active-high; 154 vin-supply = <&vreg_s8b>; 155 }; 156 157 afvdd_2p8: regulator-afvdd-2p8 { 158 compatible = "regulator-fixed"; 159 regulator-name = "AFVDD_2P8"; 160 regulator-min-microvolt = <2800000>; 161 regulator-max-microvolt = <2800000>; 162 gpio = <&tlmm 68 GPIO_ACTIVE_HIGH>; 163 enable-active-high; 164 vin-supply = <&vreg_bob>; 165 }; 166 167 thermal-zones { 168 camera-thermal { 169 polling-delay-passive = <0>; 170 171 thermal-sensors = <&pmk8350_adc_tm 2>; 172 173 trips { 174 active-config0 { 175 temperature = <125000>; 176 hysteresis = <1000>; 177 type = "passive"; 178 }; 179 }; 180 }; 181 182 chg-skin-thermal { 183 polling-delay-passive = <0>; 184 185 thermal-sensors = <&pm7250b_adc_tm 0>; 186 187 trips { 188 active-config0 { 189 temperature = <125000>; 190 hysteresis = <1000>; 191 type = "passive"; 192 }; 193 }; 194 }; 195 196 conn-thermal { 197 polling-delay-passive = <0>; 198 199 thermal-sensors = <&pm7250b_adc_tm 1>; 200 201 trips { 202 active-config0 { 203 temperature = <125000>; 204 hysteresis = <1000>; 205 type = "passive"; 206 }; 207 }; 208 }; 209 210 pm8008-thermal { 211 polling-delay-passive = <100>; 212 thermal-sensors = <&pm8008>; 213 214 trips { 215 trip0 { 216 temperature = <95000>; 217 hysteresis = <0>; 218 type = "passive"; 219 }; 220 221 trip1 { 222 temperature = <115000>; 223 hysteresis = <0>; 224 type = "critical"; 225 }; 226 }; 227 }; 228 229 quiet-thermal { 230 polling-delay-passive = <0>; 231 232 thermal-sensors = <&pmk8350_adc_tm 1>; 233 234 trips { 235 active-config0 { 236 temperature = <125000>; 237 hysteresis = <1000>; 238 type = "passive"; 239 }; 240 }; 241 }; 242 243 rear-cam-thermal { 244 polling-delay-passive = <0>; 245 246 thermal-sensors = <&pmk8350_adc_tm 4>; 247 248 trips { 249 active-config0 { 250 temperature = <125000>; 251 hysteresis = <1000>; 252 type = "passive"; 253 }; 254 }; 255 }; 256 257 sdm-skin-thermal { 258 polling-delay-passive = <0>; 259 260 thermal-sensors = <&pmk8350_adc_tm 3>; 261 262 trips { 263 active-config0 { 264 temperature = <125000>; 265 hysteresis = <1000>; 266 type = "passive"; 267 }; 268 }; 269 }; 270 271 xo-thermal { 272 polling-delay-passive = <0>; 273 274 thermal-sensors = <&pmk8350_adc_tm 0>; 275 276 trips { 277 active-config0 { 278 temperature = <125000>; 279 hysteresis = <1000>; 280 type = "passive"; 281 }; 282 }; 283 }; 284 }; 285}; 286 287&apps_rsc { 288 regulators-0 { 289 compatible = "qcom,pm7325-rpmh-regulators"; 290 qcom,pmic-id = "b"; 291 292 vreg_s1b: smps1 { 293 regulator-name = "vreg_s1b"; 294 regulator-min-microvolt = <1840000>; 295 regulator-max-microvolt = <2040000>; 296 }; 297 298 vreg_s7b: smps7 { 299 regulator-name = "vreg_s7b"; 300 regulator-min-microvolt = <535000>; 301 regulator-max-microvolt = <1120000>; 302 }; 303 304 vreg_s8b: smps8 { 305 regulator-name = "vreg_s8b"; 306 regulator-min-microvolt = <1200000>; 307 regulator-max-microvolt = <1500000>; 308 regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>; 309 }; 310 311 vreg_l1b: ldo1 { 312 regulator-name = "vreg_l1b"; 313 regulator-min-microvolt = <825000>; 314 regulator-max-microvolt = <925000>; 315 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 316 }; 317 318 vreg_l2b: ldo2 { 319 regulator-name = "vreg_l2b"; 320 regulator-min-microvolt = <2700000>; 321 regulator-max-microvolt = <3544000>; 322 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 323 }; 324 325 vreg_l3b: ldo3 { 326 regulator-name = "vreg_l3b"; 327 regulator-min-microvolt = <312000>; 328 regulator-max-microvolt = <910000>; 329 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 330 }; 331 332 vreg_l6b: ldo6 { 333 regulator-name = "vreg_l6b"; 334 regulator-min-microvolt = <1140000>; 335 regulator-max-microvolt = <1260000>; 336 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 337 }; 338 339 vreg_l7b: ldo7 { 340 regulator-name = "vreg_l7b"; 341 /* Constrained for UFS VCC, at least until UFS driver scales voltage */ 342 regulator-min-microvolt = <2952000>; 343 regulator-max-microvolt = <2952000>; 344 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 345 }; 346 347 vreg_l8b: ldo8 { 348 regulator-name = "vreg_l8b"; 349 regulator-min-microvolt = <870000>; 350 regulator-max-microvolt = <970000>; 351 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 352 }; 353 354 vreg_l9b: ldo9 { 355 regulator-name = "vreg_l9b"; 356 regulator-min-microvolt = <1200000>; 357 regulator-max-microvolt = <1304000>; 358 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 359 }; 360 361 vreg_l11b: ldo11 { 362 regulator-name = "vreg_l11b"; 363 regulator-min-microvolt = <1504000>; 364 regulator-max-microvolt = <2000000>; 365 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 366 }; 367 368 vreg_l12b: ldo12 { 369 regulator-name = "vreg_l12b"; 370 regulator-min-microvolt = <751000>; 371 regulator-max-microvolt = <824000>; 372 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 373 }; 374 375 vreg_l13b: ldo13 { 376 regulator-name = "vreg_l13b"; 377 regulator-min-microvolt = <530000>; 378 regulator-max-microvolt = <824000>; 379 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 380 }; 381 382 vreg_l14b: ldo14 { 383 regulator-name = "vreg_l14b"; 384 regulator-min-microvolt = <1080000>; 385 regulator-max-microvolt = <1304000>; 386 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 387 }; 388 389 vreg_l15b: ldo15 { 390 regulator-name = "vreg_l15b"; 391 regulator-min-microvolt = <765000>; 392 regulator-max-microvolt = <1020000>; 393 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 394 }; 395 396 vreg_l16b: ldo16 { 397 regulator-name = "vreg_l16b"; 398 regulator-min-microvolt = <1100000>; 399 regulator-max-microvolt = <1300000>; 400 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 401 }; 402 403 vreg_l17b: ldo17 { 404 regulator-name = "vreg_l17b"; 405 regulator-min-microvolt = <1700000>; 406 regulator-max-microvolt = <1900000>; 407 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 408 }; 409 410 vreg_l18b: ldo18 { 411 regulator-name = "vreg_l18b"; 412 regulator-min-microvolt = <1800000>; 413 regulator-max-microvolt = <2000000>; 414 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 415 }; 416 417 vreg_l19b: ldo19 { 418 regulator-name = "vreg_l19b"; 419 regulator-min-microvolt = <1800000>; 420 regulator-max-microvolt = <2000000>; 421 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 422 }; 423 }; 424 425 regulators-1 { 426 compatible = "qcom,pm8350c-rpmh-regulators"; 427 qcom,pmic-id = "c"; 428 429 vreg_s1c: smps1 { 430 regulator-name = "vreg_s1c"; 431 regulator-min-microvolt = <2190000>; 432 regulator-max-microvolt = <2210000>; 433 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 434 }; 435 436 vreg_s9c: smps9 { 437 regulator-name = "vreg_s9c"; 438 regulator-min-microvolt = <1010000>; 439 regulator-max-microvolt = <1170000>; 440 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 441 }; 442 443 vreg_l1c: ldo1 { 444 regulator-name = "vreg_l1c"; 445 regulator-min-microvolt = <1800000>; 446 regulator-max-microvolt = <1980000>; 447 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 448 }; 449 450 vreg_l2c: ldo2 { 451 regulator-name = "vreg_l2c"; 452 regulator-min-microvolt = <1800000>; 453 regulator-max-microvolt = <1950000>; 454 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 455 }; 456 457 vreg_l3c: ldo3 { 458 regulator-name = "vreg_l3c"; 459 regulator-min-microvolt = <3000000>; 460 regulator-max-microvolt = <3400000>; 461 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 462 }; 463 464 vreg_l4c: ldo4 { 465 regulator-name = "vreg_l4c"; 466 regulator-min-microvolt = <1620000>; 467 regulator-max-microvolt = <3300000>; 468 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 469 }; 470 471 vreg_l5c: ldo5 { 472 regulator-name = "vreg_l5c"; 473 regulator-min-microvolt = <1620000>; 474 regulator-max-microvolt = <3300000>; 475 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 476 }; 477 478 vreg_l6c: ldo6 { 479 regulator-name = "vreg_l6c"; 480 regulator-min-microvolt = <1650000>; 481 regulator-max-microvolt = <3544000>; 482 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 483 }; 484 485 vreg_l7c: ldo7 { 486 regulator-name = "vreg_l7c"; 487 regulator-min-microvolt = <3000000>; 488 regulator-max-microvolt = <3544000>; 489 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 490 }; 491 492 vreg_l8c: ldo8 { 493 regulator-name = "vreg_l8c"; 494 regulator-min-microvolt = <1620000>; 495 regulator-max-microvolt = <2000000>; 496 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 497 /* Hall sensor VDD */ 498 regulator-always-on; 499 }; 500 501 vreg_l9c: ldo9 { 502 regulator-name = "vreg_l9c"; 503 regulator-min-microvolt = <2700000>; 504 regulator-max-microvolt = <3544000>; 505 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 506 }; 507 508 vreg_l10c: ldo10 { 509 regulator-name = "vreg_l10c"; 510 regulator-min-microvolt = <720000>; 511 regulator-max-microvolt = <1050000>; 512 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 513 }; 514 515 vreg_l11c: ldo11 { 516 regulator-name = "vreg_l11c"; 517 regulator-min-microvolt = <2800000>; 518 regulator-max-microvolt = <3544000>; 519 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 520 }; 521 522 vreg_l12c: ldo12 { 523 regulator-name = "vreg_l12c"; 524 regulator-min-microvolt = <1650000>; 525 regulator-max-microvolt = <2000000>; 526 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 527 }; 528 529 vreg_l13c: ldo13 { 530 regulator-name = "vreg_l13c"; 531 regulator-min-microvolt = <2700000>; 532 regulator-max-microvolt = <3544000>; 533 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 534 }; 535 536 vreg_bob: bob { 537 regulator-name = "vreg_bob"; 538 regulator-min-microvolt = <3008000>; 539 regulator-max-microvolt = <3960000>; 540 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 541 }; 542 }; 543}; 544 545&dispcc { 546 /* Disable for now so simple-framebuffer continues working */ 547 status = "disabled"; 548}; 549 550&gcc { 551 protected-clocks = <GCC_CFG_NOC_LPASS_CLK>, 552 <GCC_EDP_CLKREF_EN>, 553 <GCC_MSS_CFG_AHB_CLK>, 554 <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>, 555 <GCC_MSS_OFFLINE_AXI_CLK>, 556 <GCC_MSS_Q6SS_BOOT_CLK_SRC>, 557 <GCC_MSS_Q6_MEMNOC_AXI_CLK>, 558 <GCC_MSS_SNOC_AXI_CLK>, 559 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>, 560 <GCC_QSPI_CORE_CLK>, 561 <GCC_QSPI_CORE_CLK_SRC>, 562 <GCC_SEC_CTRL_CLK_SRC>, 563 <GCC_WPSS_AHB_BDG_MST_CLK>, 564 <GCC_WPSS_AHB_CLK>, 565 <GCC_WPSS_RSCP_CLK>; 566}; 567 568&gpi_dma0 { 569 status = "okay"; 570}; 571 572&gpi_dma1 { 573 status = "okay"; 574}; 575 576&i2c1 { 577 status = "okay"; 578 579 pm8008: pmic@8 { 580 compatible = "qcom,pm8008"; 581 reg = <0x8>; 582 583 interrupts-extended = <&tlmm 25 IRQ_TYPE_EDGE_RISING>; 584 reset-gpios = <&pm8350c_gpios 3 GPIO_ACTIVE_LOW>; 585 586 vdd-l1-l2-supply = <&vreg_s8b>; 587 vdd-l3-l4-supply = <&vreg_bob>; 588 vdd-l5-supply = <&vreg_bob>; 589 vdd-l6-supply = <&vreg_s1b>; 590 vdd-l7-supply = <&vreg_bob>; 591 592 pinctrl-names = "default"; 593 pinctrl-0 = <&pm8008_int_default>, <&pm8008_reset_n_default>; 594 595 gpio-controller; 596 #gpio-cells = <2>; 597 gpio-ranges = <&pm8008 0 0 2>; 598 599 interrupt-controller; 600 #interrupt-cells = <2>; 601 602 #thermal-sensor-cells = <0>; 603 604 regulators { 605 vreg_l1p: ldo1 { 606 regulator-name = "vreg_l1p"; 607 regulator-min-microvolt = <1000000>; 608 regulator-max-microvolt = <1200000>; 609 }; 610 611 vreg_l2p: ldo2 { 612 regulator-name = "vreg_l2p"; 613 regulator-min-microvolt = <950000>; 614 regulator-max-microvolt = <1152000>; 615 }; 616 617 vreg_l3p: ldo3 { 618 regulator-name = "vreg_l3p"; 619 regulator-min-microvolt = <2700000>; 620 regulator-max-microvolt = <3000000>; 621 }; 622 623 vreg_l4p: ldo4 { 624 regulator-name = "vreg_l4p"; 625 regulator-min-microvolt = <2700000>; 626 regulator-max-microvolt = <2900000>; 627 }; 628 629 vreg_l5p: ldo5 { 630 regulator-name = "vreg_l5p"; 631 regulator-min-microvolt = <2704000>; 632 regulator-max-microvolt = <2900000>; 633 }; 634 635 vreg_l6p: ldo6 { 636 regulator-name = "vreg_l6p"; 637 regulator-min-microvolt = <1700000>; 638 regulator-max-microvolt = <1904000>; 639 }; 640 641 vreg_l7p: ldo7 { 642 regulator-name = "vreg_l7p"; 643 regulator-min-microvolt = <2700000>; 644 regulator-max-microvolt = <3000000>; 645 }; 646 }; 647 }; 648 649 /* Pixelworks @ 26 */ 650 /* FSA4480 USB audio switch @ 42 */ 651 /* AW86927FCR haptics @ 5a */ 652}; 653 654&i2c2 { 655 status = "okay"; 656 657 /* AW88261FCR amplifier @ 34 */ 658 /* AW88261FCR amplifier @ 35 */ 659}; 660 661&i2c4 { 662 status = "okay"; 663 664 /* PTN36502 USB redriver @ 1a */ 665}; 666 667&i2c9 { 668 status = "okay"; 669 670 /* ST21NFC NFC @ 28 */ 671 /* VL53L3 ToF @ 29 */ 672}; 673 674&ipa { 675 qcom,gsi-loader = "self"; 676 memory-region = <&ipa_fw_mem>; 677 firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mbn"; 678 status = "okay"; 679}; 680 681&pm7250b_adc { 682 channel@4d { 683 reg = <ADC5_AMUX_THM1_100K_PU>; 684 qcom,ratiometric; 685 qcom,hw-settle-time = <200>; 686 qcom,pre-scaling = <1 1>; 687 label = "charger_skin_therm"; 688 }; 689 690 channel@4f { 691 reg = <ADC5_AMUX_THM3_100K_PU>; 692 qcom,ratiometric; 693 qcom,hw-settle-time = <200>; 694 qcom,pre-scaling = <1 1>; 695 label = "conn_therm"; 696 }; 697}; 698 699&pm7250b_adc_tm { 700 status = "okay"; 701 702 charger-skin-therm@0 { 703 reg = <0>; 704 io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>; 705 qcom,ratiometric; 706 qcom,hw-settle-time-us = <200>; 707 }; 708 709 conn-therm@1 { 710 reg = <1>; 711 io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>; 712 qcom,ratiometric; 713 qcom,hw-settle-time-us = <200>; 714 }; 715}; 716 717&pm7325_gpios { 718 volume_down_default: volume-down-default-state { 719 pins = "gpio6"; 720 function = PMIC_GPIO_FUNC_NORMAL; 721 power-source = <1>; 722 bias-pull-up; 723 input-enable; 724 }; 725}; 726 727&pm8350c_flash { 728 status = "okay"; 729 730 led-0 { 731 function = LED_FUNCTION_FLASH; 732 color = <LED_COLOR_ID_WHITE>; 733 led-sources = <1>, <4>; 734 led-max-microamp = <500000>; 735 flash-max-microamp = <1500000>; 736 flash-max-timeout-us = <1280000>; 737 }; 738}; 739 740&pmk8350_adc_tm { 741 status = "okay"; 742 743 xo-therm@0 { 744 reg = <0>; 745 io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>; 746 qcom,ratiometric; 747 qcom,hw-settle-time-us = <200>; 748 }; 749 750 quiet-therm@1 { 751 reg = <1>; 752 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>; 753 qcom,ratiometric; 754 qcom,hw-settle-time-us = <200>; 755 }; 756 757 cam-flash-therm@2 { 758 reg = <2>; 759 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>; 760 qcom,ratiometric; 761 qcom,hw-settle-time-us = <200>; 762 }; 763 764 sdm-skin-therm@3 { 765 reg = <3>; 766 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>; 767 qcom,ratiometric; 768 qcom,hw-settle-time-us = <200>; 769 }; 770 771 wide-rfc-therm@4 { 772 reg = <4>; 773 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>; 774 qcom,ratiometric; 775 qcom,hw-settle-time-us = <200>; 776 }; 777}; 778 779&pm8350c_gpios { 780 pm8008_reset_n_default: pm8008-reset-n-default-state { 781 pins = "gpio3"; 782 function = PMIC_GPIO_FUNC_NORMAL; 783 bias-pull-down; 784 }; 785}; 786 787&pmk8350_rtc { 788 status = "okay"; 789}; 790 791&pmk8350_vadc { 792 status = "okay"; 793 794 channel@44 { 795 reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>; 796 qcom,ratiometric; 797 qcom,hw-settle-time = <200>; 798 qcom,pre-scaling = <1 1>; 799 label = "pmk8350_xo_therm"; 800 }; 801 802 channel@144 { 803 reg = <PM7325_ADC7_AMUX_THM1_100K_PU>; 804 qcom,ratiometric; 805 qcom,hw-settle-time = <200>; 806 qcom,pre-scaling = <1 1>; 807 label = "pm7325_quiet_therm"; 808 }; 809 810 channel@145 { 811 reg = <PM7325_ADC7_AMUX_THM2_100K_PU>; 812 qcom,ratiometric; 813 qcom,hw-settle-time = <200>; 814 qcom,pre-scaling = <1 1>; 815 label = "pm7325_cam_flash_therm"; 816 }; 817 818 channel@146 { 819 reg = <PM7325_ADC7_AMUX_THM3_100K_PU>; 820 qcom,ratiometric; 821 qcom,hw-settle-time = <200>; 822 qcom,pre-scaling = <1 1>; 823 label = "pm7325_sdm_skin_therm"; 824 }; 825 826 channel@147 { 827 reg = <PM7325_ADC7_AMUX_THM4_100K_PU>; 828 qcom,ratiometric; 829 qcom,hw-settle-time = <200>; 830 qcom,pre-scaling = <1 1>; 831 label = "pm7325_wide_rfc_therm"; 832 }; 833}; 834 835&pon_pwrkey { 836 status = "okay"; 837}; 838 839&pon_resin { 840 linux,code = <KEY_VOLUMEDOWN>; 841 status = "okay"; 842}; 843 844&qup_spi13_cs { 845 drive-strength = <6>; 846 bias-disable; 847}; 848 849&qup_spi13_data_clk { 850 drive-strength = <6>; 851 bias-disable; 852}; 853 854&qup_uart5_rx { 855 drive-strength = <2>; 856 bias-disable; 857}; 858 859&qup_uart5_tx { 860 drive-strength = <2>; 861 bias-disable; 862}; 863 864&qupv3_id_0 { 865 status = "okay"; 866}; 867 868&qupv3_id_1 { 869 status = "okay"; 870}; 871 872&remoteproc_adsp { 873 firmware-name = "qcom/qcm6490/fairphone5/adsp.mbn"; 874 status = "okay"; 875}; 876 877&remoteproc_cdsp { 878 firmware-name = "qcom/qcm6490/fairphone5/cdsp.mbn"; 879 status = "okay"; 880}; 881 882&remoteproc_mpss { 883 firmware-name = "qcom/qcm6490/fairphone5/modem.mbn"; 884 status = "okay"; 885}; 886 887&remoteproc_wpss { 888 firmware-name = "qcom/qcm6490/fairphone5/wpss.mbn"; 889 status = "okay"; 890}; 891 892&sdc2_clk { 893 drive-strength = <16>; 894 bias-disable; 895}; 896 897&sdc2_cmd { 898 drive-strength = <10>; 899 bias-pull-up; 900}; 901 902&sdc2_data { 903 drive-strength = <10>; 904 bias-pull-up; 905}; 906 907&sdhc_2 { 908 vmmc-supply = <&vreg_l9c>; 909 vqmmc-supply = <&vreg_l6c>; 910 911 pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>; 912 pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>; 913 914 status = "okay"; 915}; 916 917&spi13 { 918 status = "okay"; 919 920 /* Goodix touchscreen @ 0 */ 921}; 922 923&tlmm { 924 /* 925 * 32-33: SMB1394 (SPMI) 926 * 56-59: fingerprint reader (SPI) 927 */ 928 gpio-reserved-ranges = <32 2>, <56 4>; 929 930 bluetooth_enable_default: bluetooth-enable-default-state { 931 pins = "gpio85"; 932 function = "gpio"; 933 output-low; 934 bias-disable; 935 }; 936 937 hall_sensor_default: hall-sensor-default-state { 938 pins = "gpio155"; 939 function = "gpio"; 940 drive-strength = <2>; 941 bias-pull-up; 942 }; 943 944 pm8008_int_default: pm8008-int-default-state { 945 pins = "gpio25"; 946 function = "gpio"; 947 drive-strength = <2>; 948 bias-disable; 949 }; 950 951 qup_uart7_sleep_cts: qup-uart7-sleep-cts-state { 952 pins = "gpio28"; 953 function = "gpio"; 954 /* 955 * Configure a bias-bus-hold on CTS to lower power 956 * usage when Bluetooth is turned off. Bus hold will 957 * maintain a low power state regardless of whether 958 * the Bluetooth module drives the pin in either 959 * direction or leaves the pin fully unpowered. 960 */ 961 bias-bus-hold; 962 }; 963 964 qup_uart7_sleep_rts: qup-uart7-sleep-rts-state { 965 pins = "gpio29"; 966 function = "gpio"; 967 /* 968 * Configure pull-down on RTS. As RTS is active low 969 * signal, pull it low to indicate the BT SoC that it 970 * can wakeup the system anytime from suspend state by 971 * pulling RX low (by sending wakeup bytes). 972 */ 973 bias-pull-down; 974 }; 975 976 qup_uart7_sleep_tx: qup-uart7-sleep-tx-state { 977 pins = "gpio30"; 978 function = "gpio"; 979 /* 980 * Configure pull-up on TX when it isn't actively driven 981 * to prevent BT SoC from receiving garbage during sleep. 982 */ 983 bias-pull-up; 984 }; 985 986 qup_uart7_sleep_rx: qup-uart7-sleep-rx-state { 987 pins = "gpio31"; 988 function = "gpio"; 989 /* 990 * Configure a pull-up on RX. This is needed to avoid 991 * garbage data when the TX pin of the Bluetooth module 992 * is floating which may cause spurious wakeups. 993 */ 994 bias-pull-up; 995 }; 996 997 sw_ctrl_default: sw-ctrl-default-state { 998 pins = "gpio86"; 999 function = "gpio"; 1000 bias-pull-down; 1001 }; 1002}; 1003 1004&uart5 { 1005 status = "okay"; 1006}; 1007 1008&uart7 { 1009 /delete-property/interrupts; 1010 interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>, 1011 <&tlmm 31 IRQ_TYPE_EDGE_FALLING>; 1012 1013 pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>; 1014 pinctrl-names = "default", "sleep"; 1015 1016 status = "okay"; 1017 1018 bluetooth: bluetooth { 1019 compatible = "qcom,wcn6750-bt"; 1020 1021 pinctrl-0 = <&bluetooth_enable_default>, <&sw_ctrl_default>; 1022 pinctrl-names = "default"; 1023 1024 enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>; 1025 swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>; 1026 1027 vddio-supply = <&vreg_l19b>; 1028 vddaon-supply = <&vreg_s7b>; 1029 vddbtcxmx-supply = <&vreg_s7b>; 1030 vddrfacmn-supply = <&vreg_s7b>; 1031 vddrfa0p8-supply = <&vreg_s7b>; 1032 vddrfa1p7-supply = <&vreg_s1b>; 1033 vddrfa1p2-supply = <&vreg_s8b>; 1034 vddrfa2p2-supply = <&vreg_s1c>; 1035 vddasd-supply = <&vreg_l11c>; 1036 1037 max-speed = <3200000>; 1038 }; 1039}; 1040 1041&ufs_mem_hc { 1042 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>; 1043 1044 vcc-supply = <&vreg_l7b>; 1045 vcc-max-microamp = <800000>; 1046 /* 1047 * Technically l9b enables an eLDO (supplied by s1b) which then powers 1048 * VCCQ2 of the UFS. 1049 */ 1050 vccq-supply = <&vreg_l9b>; 1051 vccq-max-microamp = <900000>; 1052 1053 status = "okay"; 1054}; 1055 1056&ufs_mem_phy { 1057 vdda-phy-supply = <&vreg_l10c>; 1058 vdda-pll-supply = <&vreg_l6b>; 1059 1060 status = "okay"; 1061}; 1062 1063&usb_1 { 1064 status = "okay"; 1065}; 1066 1067&usb_1_dwc3 { 1068 dr_mode = "otg"; 1069 usb-role-switch; 1070}; 1071 1072&usb_1_dwc3_hs { 1073 remote-endpoint = <&pmic_glink_hs_in>; 1074}; 1075 1076&usb_1_dwc3_ss { 1077 remote-endpoint = <&pmic_glink_ss_in>; 1078}; 1079 1080&usb_1_hsphy { 1081 vdda-pll-supply = <&vreg_l10c>; 1082 vdda18-supply = <&vreg_l1c>; 1083 vdda33-supply = <&vreg_l2b>; 1084 1085 qcom,hs-crossover-voltage-microvolt = <28000>; 1086 qcom,hs-output-impedance-micro-ohms = <2600000>; 1087 qcom,hs-rise-fall-time-bp = <5430>; 1088 qcom,hs-disconnect-bp = <1743>; 1089 qcom,hs-amplitude-bp = <2430>; 1090 1091 qcom,pre-emphasis-amplitude-bp = <20000>; 1092 qcom,pre-emphasis-duration-bp = <20000>; 1093 1094 qcom,squelch-detector-bp = <(-2090)>; 1095 1096 status = "okay"; 1097}; 1098 1099&usb_1_qmpphy { 1100 vdda-phy-supply = <&vreg_l6b>; 1101 vdda-pll-supply = <&vreg_l1b>; 1102 1103 status = "okay"; 1104}; 1105 1106&venus { 1107 firmware-name = "qcom/qcm6490/fairphone5/venus.mbn"; 1108 status = "okay"; 1109}; 1110 1111&wifi { 1112 qcom,ath11k-calibration-variant = "Fairphone_5"; 1113 status = "okay"; 1114}; 1115