1 // SPDX-License-Identifier: BSD-3-Clause 1 // SPDX-License-Identifier: BSD-3-Clause 2 /* 2 /* 3 * Copyright (c) 2021, Konrad Dybcio <konrad.dy 3 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org> 4 */ 4 */ 5 5 6 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h << 7 #include <dt-bindings/regulator/qcom,rpmh-regu << 8 #include "sm8350.dtsi" 6 #include "sm8350.dtsi" 9 #include "pm8350.dtsi" 7 #include "pm8350.dtsi" 10 #include "pm8350b.dtsi" 8 #include "pm8350b.dtsi" 11 #include "pm8350c.dtsi" 9 #include "pm8350c.dtsi" 12 #include "pmk8350.dtsi" 10 #include "pmk8350.dtsi" 13 #include "pmr735a.dtsi" 11 #include "pmr735a.dtsi" 14 #include "pmr735b.dtsi" 12 #include "pmr735b.dtsi" 15 13 16 / { 14 / { 17 /* 15 /* 18 * Yes, you are correct, there is NO M 16 * Yes, you are correct, there is NO MORE {msm,board,pmic}-id on SM8350! 19 * Adding it will cause the bootloader 17 * Adding it will cause the bootloader to go crazy and randomly crash 20 * shortly after closing UEFI boot ser 18 * shortly after closing UEFI boot services.. Perhaps that has something 21 * to do with the OS running inside a 19 * to do with the OS running inside a VM now..? 22 */ 20 */ 23 21 24 chassis-type = "handset"; 22 chassis-type = "handset"; 25 23 26 chosen { 24 chosen { 27 #address-cells = <2>; 25 #address-cells = <2>; 28 #size-cells = <2>; 26 #size-cells = <2>; 29 ranges; 27 ranges; 30 28 31 framebuffer: framebuffer@e1000 29 framebuffer: framebuffer@e1000000 { 32 compatible = "simple-f 30 compatible = "simple-framebuffer"; 33 reg = <0 0xe1000000 0 31 reg = <0 0xe1000000 0 0x2300000>; 34 32 35 /* The display, even t 33 /* The display, even though it's 4K, initializes at 1080-ish p */ 36 width = <1096>; 34 width = <1096>; 37 height = <2560>; 35 height = <2560>; 38 stride = <(1096 * 4)>; 36 stride = <(1096 * 4)>; 39 format = "a8r8g8b8"; 37 format = "a8r8g8b8"; 40 /* 38 /* 41 * That's (going to be 39 * That's (going to be) a lot of clocks, but it's necessary due 42 * to unused clk clean 40 * to unused clk cleanup & no panel driver yet 43 */ 41 */ 44 clocks = <&gcc GCC_DIS 42 clocks = <&gcc GCC_DISP_HF_AXI_CLK>, 45 <&gcc GCC_DIS 43 <&gcc GCC_DISP_SF_AXI_CLK>; 46 }; 44 }; 47 }; 45 }; 48 46 49 gpio-keys { 47 gpio-keys { 50 compatible = "gpio-keys"; 48 compatible = "gpio-keys"; 51 49 52 pinctrl-names = "default"; !! 50 /* For reasons still unknown, GAssist key and Camera Focus/Shutter don't work.. */ 53 pinctrl-0 = <&focus_n &snapsho << 54 << 55 key-camera-focus { << 56 label = "Camera Focus" << 57 linux,code = <KEY_CAME << 58 gpios = <&pm8350b_gpio << 59 debounce-interval = <1 << 60 linux,can-disable; << 61 wakeup-source; << 62 }; << 63 << 64 key-camera-snapshot { << 65 label = "Camera Snapsh << 66 linux,code = <KEY_CAME << 67 gpios = <&pm8350b_gpio << 68 debounce-interval = <1 << 69 linux,can-disable; << 70 wakeup-source; << 71 }; << 72 << 73 key-google-assist { << 74 label = "Google Assist << 75 gpios = <&pm8350_gpios << 76 linux,code = <KEY_LEFT << 77 debounce-interval = <1 << 78 linux,can-disable; << 79 wakeup-source; << 80 }; << 81 51 82 key-vol-down { 52 key-vol-down { 83 label = "Volume Down"; 53 label = "Volume Down"; 84 linux,code = <KEY_VOLU 54 linux,code = <KEY_VOLUMEDOWN>; 85 gpios = <&pmk8350_gpio 55 gpios = <&pmk8350_gpios 3 GPIO_ACTIVE_LOW>; 86 debounce-interval = <1 56 debounce-interval = <15>; 87 linux,can-disable; 57 linux,can-disable; 88 wakeup-source; !! 58 gpio-key,wakeup; 89 }; 59 }; 90 }; 60 }; 91 61 92 reserved-memory { 62 reserved-memory { 93 cont_splash_mem: memory@e10000 63 cont_splash_mem: memory@e1000000 { 94 reg = <0 0xe1000000 0 64 reg = <0 0xe1000000 0 0x2300000>; 95 no-map; 65 no-map; 96 }; 66 }; 97 67 98 ramoops@ffc00000 { 68 ramoops@ffc00000 { 99 compatible = "ramoops" 69 compatible = "ramoops"; 100 reg = <0 0xffc00000 0 70 reg = <0 0xffc00000 0 0x100000>; 101 console-size = <0x4000 71 console-size = <0x40000>; 102 record-size = <0x1000> 72 record-size = <0x1000>; 103 no-map; 73 no-map; 104 }; 74 }; 105 }; 75 }; 106 << 107 vph_pwr: vph-pwr-regulator { << 108 compatible = "regulator-fixed" << 109 regulator-name = "vph_pwr"; << 110 regulator-min-microvolt = <370 << 111 regulator-max-microvolt = <370 << 112 << 113 regulator-always-on; << 114 regulator-boot-on; << 115 }; << 116 }; 76 }; 117 77 118 &adsp { 78 &adsp { 119 status = "okay"; 79 status = "okay"; 120 firmware-name = "qcom/sm8350/Sony/saga !! 80 firmware-name = "qcom/adsp.mbn"; 121 }; << 122 << 123 &apps_rsc { << 124 regulators-0 { << 125 compatible = "qcom,pm8350-rpmh << 126 qcom,pmic-id = "b"; << 127 << 128 vdd-s1-supply = <&vph_pwr>; << 129 vdd-s2-supply = <&vph_pwr>; << 130 vdd-s3-supply = <&vph_pwr>; << 131 vdd-s4-supply = <&vph_pwr>; << 132 vdd-s5-supply = <&vph_pwr>; << 133 vdd-s6-supply = <&vph_pwr>; << 134 vdd-s7-supply = <&vph_pwr>; << 135 vdd-s8-supply = <&vph_pwr>; << 136 vdd-s9-supply = <&vph_pwr>; << 137 vdd-s10-supply = <&vph_pwr>; << 138 vdd-s11-supply = <&vph_pwr>; << 139 vdd-s12-supply = <&vph_pwr>; << 140 << 141 vdd-l1-l4-supply = <&pm8350_s1 << 142 vdd-l2-l7-supply = <&vreg_bob> << 143 vdd-l3-l5-supply = <&vreg_bob> << 144 vdd-l6-l9-l10-supply = <&pm835 << 145 << 146 /* << 147 * ARC regulators: << 148 * S5 - mx.lvl << 149 * S6 - gfx.lvl << 150 * S9 - mxc.lvl << 151 */ << 152 << 153 pm8350_s10: smps10 { << 154 regulator-name = "pm83 << 155 regulator-min-microvol << 156 regulator-max-microvol << 157 regulator-initial-mode << 158 }; << 159 << 160 pm8350_s11: smps11 { << 161 regulator-name = "pm83 << 162 regulator-min-microvol << 163 regulator-max-microvol << 164 regulator-initial-mode << 165 }; << 166 << 167 pm8350_s12: smps12 { << 168 regulator-name = "pm83 << 169 regulator-min-microvol << 170 regulator-max-microvol << 171 regulator-initial-mode << 172 }; << 173 << 174 pm8350_l1: ldo1 { << 175 regulator-name = "pm83 << 176 regulator-min-microvol << 177 regulator-max-microvol << 178 regulator-initial-mode << 179 }; << 180 << 181 pm8350_l2: ldo2 { << 182 regulator-name = "pm83 << 183 regulator-min-microvol << 184 regulator-max-microvol << 185 regulator-initial-mode << 186 }; << 187 << 188 pm8350_l3: ldo3 { << 189 regulator-name = "pm83 << 190 regulator-min-microvol << 191 regulator-max-microvol << 192 regulator-initial-mode << 193 }; << 194 << 195 /* L4 - lmx.lvl (ARC) */ << 196 << 197 pm8350_l5: ldo5 { << 198 regulator-name = "pm83 << 199 regulator-min-microvol << 200 regulator-max-microvol << 201 regulator-initial-mode << 202 regulator-allow-set-lo << 203 regulator-allowed-mode << 204 << 205 }; << 206 << 207 pm8350_l6: ldo6 { << 208 regulator-name = "pm83 << 209 regulator-min-microvol << 210 regulator-max-microvol << 211 regulator-initial-mode << 212 regulator-allow-set-lo << 213 regulator-allowed-mode << 214 << 215 }; << 216 << 217 pm8350_l7: ldo7 { << 218 regulator-name = "pm83 << 219 regulator-min-microvol << 220 regulator-max-microvol << 221 regulator-initial-mode << 222 regulator-allow-set-lo << 223 regulator-allowed-mode << 224 << 225 }; << 226 << 227 /* L8 - lcx.lvl (ARC) */ << 228 << 229 pm8350_l9: ldo9 { << 230 regulator-name = "pm83 << 231 regulator-min-microvol << 232 regulator-max-microvol << 233 regulator-initial-mode << 234 regulator-allow-set-lo << 235 regulator-allowed-mode << 236 << 237 }; << 238 }; << 239 << 240 regulators-1 { << 241 compatible = "qcom,pm8350c-rpm << 242 qcom,pmic-id = "c"; << 243 << 244 vdd-s1-supply = <&vph_pwr>; << 245 vdd-s2-supply = <&vph_pwr>; << 246 vdd-s3-supply = <&vph_pwr>; << 247 vdd-s4-supply = <&vph_pwr>; << 248 vdd-s5-supply = <&vph_pwr>; << 249 vdd-s6-supply = <&vph_pwr>; << 250 vdd-s7-supply = <&vph_pwr>; << 251 vdd-s8-supply = <&vph_pwr>; << 252 vdd-s9-supply = <&vph_pwr>; << 253 vdd-s10-supply = <&vph_pwr>; << 254 << 255 vdd-l1-l12-supply = <&pm8350c_ << 256 vdd-l2-l8-supply = <&pm8350c_s << 257 vdd-l3-l4-l5-l7-l13-supply = < << 258 vdd-l6-l9-l11-supply = <&vreg_ << 259 vdd-l10-supply = <&pm8350_s12> << 260 << 261 vdd-bob-supply = <&vph_pwr>; << 262 << 263 pm8350c_s1: smps1 { << 264 regulator-name = "pm83 << 265 regulator-min-microvol << 266 regulator-max-microvol << 267 regulator-initial-mode << 268 }; << 269 << 270 /* S2 - ebi.lvl (ARC) */ << 271 << 272 pm8350c_s3: smps3 { << 273 regulator-name = "pm83 << 274 regulator-min-microvol << 275 regulator-max-microvol << 276 regulator-initial-mode << 277 }; << 278 << 279 /* << 280 * ARC regulators: << 281 * S4 - mss.lvl << 282 * S6 - cx.lvl << 283 * S8 - mmcx.lvl << 284 */ << 285 << 286 pm8350c_s10: smps10 { << 287 regulator-name = "pm83 << 288 regulator-min-microvol << 289 regulator-max-microvol << 290 regulator-initial-mode << 291 }; << 292 << 293 pm8350c_l1: ldo1 { << 294 regulator-name = "pm83 << 295 regulator-min-microvol << 296 regulator-max-microvol << 297 regulator-initial-mode << 298 }; << 299 << 300 pm8350c_l2: ldo2 { << 301 regulator-name = "pm83 << 302 regulator-min-microvol << 303 regulator-max-microvol << 304 regulator-initial-mode << 305 }; << 306 << 307 pm8350c_l3: ldo3 { << 308 regulator-name = "pm83 << 309 regulator-min-microvol << 310 regulator-max-microvol << 311 regulator-initial-mode << 312 }; << 313 << 314 pm8350c_l4: ldo4 { << 315 regulator-name = "pm83 << 316 regulator-min-microvol << 317 regulator-max-microvol << 318 regulator-initial-mode << 319 }; << 320 << 321 pm8350c_l5: ldo5 { << 322 regulator-name = "pm83 << 323 regulator-min-microvol << 324 regulator-max-microvol << 325 regulator-initial-mode << 326 }; << 327 << 328 pm8350c_l6: ldo6 { << 329 regulator-name = "pm83 << 330 regulator-min-microvol << 331 regulator-max-microvol << 332 regulator-initial-mode << 333 }; << 334 << 335 pm8350c_l7: ldo7 { << 336 regulator-name = "pm83 << 337 regulator-min-microvol << 338 regulator-max-microvol << 339 regulator-initial-mode << 340 }; << 341 << 342 pm8350c_l8: ldo8 { << 343 regulator-name = "pm83 << 344 regulator-min-microvol << 345 regulator-max-microvol << 346 regulator-initial-mode << 347 }; << 348 << 349 pm8350c_l9: ldo9 { << 350 regulator-name = "pm83 << 351 regulator-min-microvol << 352 /* Originally max = 30 << 353 regulator-max-microvol << 354 regulator-initial-mode << 355 }; << 356 << 357 pm8350c_l10: ldo10 { << 358 regulator-name = "pm83 << 359 regulator-min-microvol << 360 regulator-max-microvol << 361 regulator-initial-mode << 362 }; << 363 << 364 pm8350c_l11: ldo11 { << 365 regulator-name = "pm83 << 366 regulator-min-microvol << 367 regulator-max-microvol << 368 regulator-initial-mode << 369 }; << 370 << 371 pm8350c_l12: ldo12 { << 372 regulator-name = "pm83 << 373 regulator-min-microvol << 374 regulator-max-microvol << 375 regulator-initial-mode << 376 }; << 377 << 378 pm8350c_l13: ldo13 { << 379 regulator-name = "pm83 << 380 regulator-min-microvol << 381 regulator-max-microvol << 382 regulator-initial-mode << 383 }; << 384 << 385 vreg_bob: bob { << 386 regulator-name = "vreg << 387 regulator-min-microvol << 388 regulator-max-microvol << 389 regulator-initial-mode << 390 }; << 391 }; << 392 << 393 /* TODO: Add pm8350b (just one ldo) on << 394 << 395 regulators-2 { << 396 compatible = "qcom,pmr735a-rpm << 397 qcom,pmic-id = "e"; << 398 << 399 vdd-s1-supply = <&vph_pwr>; << 400 vdd-s2-supply = <&vph_pwr>; << 401 vdd-s3-supply = <&vph_pwr>; << 402 << 403 vdd-l1-l2-supply = <&pmr735a_s << 404 vdd-l3-supply = <&pmr735a_s1>; << 405 vdd-l4-supply = <&pm8350c_s1>; << 406 vdd-l5-l6-supply = <&pm8350c_s << 407 vdd-l7-bob-supply = <&vreg_bob << 408 << 409 pmr735a_s1: smps1 { << 410 regulator-name = "pmr7 << 411 regulator-min-microvol << 412 regulator-max-microvol << 413 }; << 414 << 415 pmr735a_s2: smps2 { << 416 regulator-name = "pmr7 << 417 regulator-min-microvol << 418 regulator-max-microvol << 419 }; << 420 << 421 pmr735a_s3: smps3 { << 422 regulator-name = "pmr7 << 423 regulator-min-microvol << 424 regulator-max-microvol << 425 }; << 426 << 427 pmr735a_l1: ldo1 { << 428 regulator-name = "pmr7 << 429 regulator-min-microvol << 430 regulator-max-microvol << 431 }; << 432 << 433 pmr735a_l2: ldo2 { << 434 regulator-name = "pmr7 << 435 regulator-min-microvol << 436 regulator-max-microvol << 437 }; << 438 << 439 pmr735a_l3: ldo3 { << 440 regulator-name = "pmr7 << 441 regulator-min-microvol << 442 regulator-max-microvol << 443 }; << 444 << 445 pmr735a_l4: ldo4 { << 446 regulator-name = "pmr7 << 447 regulator-min-microvol << 448 regulator-max-microvol << 449 }; << 450 << 451 pmr735a_l5: ldo5 { << 452 regulator-name = "pmr7 << 453 regulator-min-microvol << 454 regulator-max-microvol << 455 }; << 456 << 457 pmr735a_l6: ldo6 { << 458 regulator-name = "pmr7 << 459 regulator-min-microvol << 460 regulator-max-microvol << 461 }; << 462 << 463 pmr735a_l7: ldo7 { << 464 regulator-name = "pmr7 << 465 regulator-min-microvol << 466 regulator-max-microvol << 467 }; << 468 }; << 469 }; 81 }; 470 82 471 &cdsp { 83 &cdsp { 472 status = "okay"; 84 status = "okay"; 473 firmware-name = "qcom/sm8350/Sony/saga !! 85 firmware-name = "qcom/cdsp.mbn"; 474 }; 86 }; 475 87 476 &i2c1 { 88 &i2c1 { 477 status = "okay"; 89 status = "okay"; 478 clock-frequency = <1000000>; 90 clock-frequency = <1000000>; 479 91 480 /* Some subset of SONY IMX663 camera s 92 /* Some subset of SONY IMX663 camera sensor @ 38 */ 481 }; 93 }; 482 94 >> 95 &i2c2 { >> 96 status = "okay"; >> 97 clock-frequency = <400000>; >> 98 >> 99 /* Richwave RTC6226 FM Radio Receiver @ 64 */ >> 100 }; >> 101 483 &i2c4 { 102 &i2c4 { 484 status = "okay"; 103 status = "okay"; 485 clock-frequency = <400000>; 104 clock-frequency = <400000>; 486 105 487 /* Samsung Touchscreen (needs I2C GPI 106 /* Samsung Touchscreen (needs I2C GPI DMA) @ 48 */ 488 }; 107 }; 489 108 490 &i2c11 { 109 &i2c11 { 491 status = "okay"; 110 status = "okay"; 492 clock-frequency = <1000000>; 111 clock-frequency = <1000000>; 493 112 494 cs35l41_l: speaker-amp@40 { !! 113 cs35l41_l: cs35l41@40 { 495 compatible = "cirrus,cs35l41"; 114 compatible = "cirrus,cs35l41"; 496 reg = <0x40>; 115 reg = <0x40>; 497 interrupt-parent = <&tlmm>; 116 interrupt-parent = <&tlmm>; 498 interrupts = <36 IRQ_TYPE_LEVE 117 interrupts = <36 IRQ_TYPE_LEVEL_LOW>; 499 reset-gpios = <&tlmm 37 GPIO_A 118 reset-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; 500 cirrus,boost-peak-milliamp = < 119 cirrus,boost-peak-milliamp = <4000>; 501 cirrus,boost-ind-nanohenry = < 120 cirrus,boost-ind-nanohenry = <1000>; 502 cirrus,boost-cap-microfarad = 121 cirrus,boost-cap-microfarad = <15>; 503 cirrus,asp-sdout-hiz = <3>; 122 cirrus,asp-sdout-hiz = <3>; 504 cirrus,gpio2-src-select = <2>; 123 cirrus,gpio2-src-select = <2>; 505 cirrus,gpio2-output-enable; 124 cirrus,gpio2-output-enable; 506 #sound-dai-cells = <1>; 125 #sound-dai-cells = <1>; 507 }; 126 }; 508 127 509 cs35l41_r: speaker-amp@41 { !! 128 cs35l41_r: cs35l41@41 { 510 compatible = "cirrus,cs35l41"; 129 compatible = "cirrus,cs35l41"; 511 reg = <0x41>; 130 reg = <0x41>; 512 interrupt-parent = <&tlmm>; 131 interrupt-parent = <&tlmm>; 513 interrupts = <36 IRQ_TYPE_LEVE 132 interrupts = <36 IRQ_TYPE_LEVEL_LOW>; 514 reset-gpios = <&tlmm 37 GPIO_A 133 reset-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; 515 cirrus,boost-peak-milliamp = < 134 cirrus,boost-peak-milliamp = <4000>; 516 cirrus,boost-ind-nanohenry = < 135 cirrus,boost-ind-nanohenry = <1000>; 517 cirrus,boost-cap-microfarad = 136 cirrus,boost-cap-microfarad = <15>; 518 cirrus,asp-sdout-hiz = <3>; 137 cirrus,asp-sdout-hiz = <3>; 519 cirrus,gpio2-src-select = <2>; 138 cirrus,gpio2-src-select = <2>; 520 cirrus,gpio2-output-enable; 139 cirrus,gpio2-output-enable; 521 #sound-dai-cells = <1>; 140 #sound-dai-cells = <1>; 522 }; 141 }; 523 }; 142 }; 524 143 525 &i2c12 { 144 &i2c12 { 526 status = "okay"; 145 status = "okay"; 527 /* Clock frequency was not specified d 146 /* Clock frequency was not specified downstream, let's park it to 100 KHz */ 528 clock-frequency = <100000>; 147 clock-frequency = <100000>; 529 148 530 /* AMS TCS3490 RGB+IR color sensor @ 7 149 /* AMS TCS3490 RGB+IR color sensor @ 72 */ 531 }; 150 }; 532 151 533 &i2c13 { 152 &i2c13 { 534 status = "okay"; 153 status = "okay"; 535 /* Clock frequency was not specified d 154 /* Clock frequency was not specified downstream, let's park it to 100 KHz */ 536 clock-frequency = <100000>; 155 clock-frequency = <100000>; 537 156 538 /* Qualcomm PM8008i/PM8008j (?) @ 8, 9 157 /* Qualcomm PM8008i/PM8008j (?) @ 8, 9, c, d */ >> 158 /* Dialog SLG51000 CMIC @ 75 */ 539 }; 159 }; 540 160 541 &i2c15 { 161 &i2c15 { 542 status = "okay"; 162 status = "okay"; 543 clock-frequency = <400000>; 163 clock-frequency = <400000>; 544 164 545 /* NXP SN1X0 NFC @ 28 */ 165 /* NXP SN1X0 NFC @ 28 */ 546 }; 166 }; 547 167 548 &i2c17 { 168 &i2c17 { 549 status = "okay"; 169 status = "okay"; 550 clock-frequency = <1000000>; 170 clock-frequency = <1000000>; 551 171 552 /* Cirrus Logic CS40L25A boosted hapti 172 /* Cirrus Logic CS40L25A boosted haptics driver @ 40 */ 553 }; 173 }; 554 174 555 &ipa { 175 &ipa { 556 qcom,gsi-loader = "self"; << 557 memory-region = <&pil_ipa_fw_mem>; << 558 firmware-name = "qcom/sm8350/Sony/saga << 559 status = "okay"; 176 status = "okay"; >> 177 memory-region = <&pil_ipa_fw_mem>; >> 178 firmware-name = "qcom/ipa_fws.mbn"; 560 }; 179 }; 561 180 562 &mpss { 181 &mpss { 563 status = "okay"; 182 status = "okay"; 564 firmware-name = "qcom/sm8350/Sony/saga !! 183 firmware-name = "qcom/modem.mbn"; 565 }; << 566 << 567 &pm8350_gpios { << 568 gpio-line-names = "ASSIGN1_THERM", /* << 569 "LCD_ID", << 570 "SDR_MMW_THERM", << 571 "RF_ID", << 572 "NC", << 573 "FP_LDO_EN", << 574 "SP_ARI_PWR_ALARM", << 575 "NC", << 576 "G_ASSIST_N", << 577 "PM8350_OPTION"; /* << 578 << 579 g_assist_n: g-assist-n-state { << 580 pins = "gpio9"; << 581 function = "normal"; << 582 power-source = <1>; << 583 bias-pull-up; << 584 input-enable; << 585 }; << 586 }; << 587 << 588 &pm8350b_gpios { << 589 snapshot_n: snapshot-n-state { << 590 pins = "gpio5"; << 591 function = "normal"; << 592 power-source = <0>; << 593 bias-pull-up; << 594 input-enable; << 595 }; << 596 << 597 focus_n: focus-n-state { << 598 pins = "gpio8"; << 599 function = "normal"; << 600 power-source = <0>; << 601 input-enable; << 602 bias-pull-up; << 603 }; << 604 }; << 605 << 606 &pmk8350_gpios { << 607 gpio-line-names = "NC", /* GPIO_1 */ << 608 "NC", << 609 "VOL_DOWN_N", << 610 "PMK8350_OPTION"; << 611 << 612 vol_down_n: vol-down-n-state { << 613 pins = "gpio3"; << 614 function = "normal"; << 615 power-source = <0>; << 616 bias-pull-up; << 617 input-enable; << 618 }; << 619 }; 184 }; 620 185 621 &pmk8350_rtc { 186 &pmk8350_rtc { 622 status = "okay"; 187 status = "okay"; 623 }; 188 }; 624 189 625 &pon_pwrkey { 190 &pon_pwrkey { 626 status = "okay"; 191 status = "okay"; 627 }; 192 }; 628 193 629 &pon_resin { 194 &pon_resin { 630 status = "okay"; 195 status = "okay"; 631 linux,code = <KEY_VOLUMEUP>; 196 linux,code = <KEY_VOLUMEUP>; 632 }; 197 }; 633 198 634 &qupv3_id_0 { 199 &qupv3_id_0 { 635 status = "okay"; 200 status = "okay"; 636 }; 201 }; 637 202 638 &qupv3_id_1 { 203 &qupv3_id_1 { 639 status = "okay"; 204 status = "okay"; 640 }; 205 }; 641 206 642 &qupv3_id_2 { 207 &qupv3_id_2 { 643 status = "okay"; 208 status = "okay"; 644 }; 209 }; 645 210 646 &sdhc_2 { << 647 cd-gpios = <&tlmm 92 GPIO_ACTIVE_HIGH> << 648 pinctrl-names = "default", "sleep"; << 649 pinctrl-0 = <&sdc2_default_state &sdc2 << 650 pinctrl-1 = <&sdc2_sleep_state &sdc2_c << 651 vmmc-supply = <&pm8350c_l9>; << 652 vqmmc-supply = <&pm8350c_l6>; << 653 no-sdio; << 654 no-mmc; << 655 status = "okay"; << 656 }; << 657 << 658 &slpi { 211 &slpi { 659 status = "okay"; 212 status = "okay"; 660 firmware-name = "qcom/sm8350/Sony/saga !! 213 firmware-name = "qcom/slpi.mbn"; 661 }; 214 }; 662 215 663 &spi14 { 216 &spi14 { 664 status = "okay"; 217 status = "okay"; 665 218 666 /* NXP SN1X0 NFC Secure Element @ 0 */ 219 /* NXP SN1X0 NFC Secure Element @ 0 */ 667 }; 220 }; 668 221 669 &tlmm { 222 &tlmm { 670 gpio-reserved-ranges = <44 4>; 223 gpio-reserved-ranges = <44 4>; 671 gpio-line-names = "APPS_I2C_0_SDA", /* << 672 "APPS_I2C_0_SCL", << 673 "UWIDEC_PWR_EN", << 674 "HAP_RST_N", << 675 "NC", << 676 "NC", << 677 "PM8008_1_RESET_N", << 678 "NC", << 679 "OIS_TELE_I2C_SDA", << 680 "OIS_TELE_I2C_SCL", << 681 "PM8350_OPTION", /* << 682 "NC", << 683 "APPS_I2C_1_SDA", << 684 "APPS_I2C_1_SCL", << 685 "NC", << 686 "NC", << 687 "CAM1_RESET_N", << 688 "LEO_CAM0_RESET_N", << 689 "DEBUG_UART_TX", << 690 "DEBUG_UART_RX", << 691 "TS_I2C_SDA", /* GPI << 692 "TS_I2C_SCL", << 693 "TS_RESET_N", << 694 "TS_INT_N", << 695 "DISP_RESET_N", << 696 "SW_SERVICE", << 697 "DISP_ERR_FG", << 698 "TX_GTR_THRES_IN", << 699 "NC", << 700 "NC", << 701 "NC", /* GPIO_30 */ << 702 "NC", << 703 "NC", << 704 "NC", << 705 "NC", << 706 "NC", << 707 "SPK_AMP_INT_N", << 708 "SPK_AMP_RESET_N", << 709 "FP_INT_N", << 710 "FP_RESET_N", << 711 "NC", /* GPIO_40 */ << 712 "NC", << 713 "DEBUG_GPIO0", << 714 "FORCE_USB_BOOT", << 715 "FP_SPI_MISO", << 716 "FP_SPI_MOSI", << 717 "FP_SPI_CLK", << 718 "FP_SPI_CS_N", << 719 "SPK_AMP_I2C_SDA", << 720 "SPK_AMP_I2C_SCL", << 721 "NC", /* GPIO_50 */ << 722 "HAP_INT_N", << 723 "CAMSENSOR_I2C_SDA", << 724 "CAMSENSOR_I2C_SCL", << 725 "SBU_SW_OE", << 726 "SBU_SW_SEL", << 727 "NFC_ESE_SPI_MISO", << 728 "NFC_ESE_SPI_MOSI", << 729 "NFC_ESE_SPI_CLK", << 730 "NFC_ESE_SPI_CS", << 731 "NFC_I2C_SDA", /* GP << 732 "NFC_I2C_SCL", << 733 "NFC_EN", << 734 "NFC_CLK_REQ", << 735 "HST_WLAN_EN", << 736 "HST_BT_EN", << 737 "HW_ID_0", << 738 "HW_ID_1", << 739 "HST_BT_UART_CTS", << 740 "HST_BT_UART_RFR", << 741 "HST_BT_UART_TX", /* << 742 "HST_BT_UART_RX", << 743 "HAP_I2C_SDA", << 744 "HAP_I2C_SCL", << 745 "RF_LCD_ID_EN", << 746 "RF_ID_EXTENSION", << 747 "NC", << 748 "NC", << 749 "NC", << 750 "NC", << 751 "HALL_INT_N", /* GPI << 752 "USB_CC_DIR", << 753 "DISP_VSYNC", << 754 "NC", << 755 "NC", << 756 "CAM_SOF_TELE", << 757 "NFC_DWL_REQ", << 758 "NFC_IRQ", << 759 "WCD_RST_N", << 760 "ALS_PROX_INT_N", << 761 "NC", /* GPIO_90 */ << 762 "NC", << 763 "TRAY_DET", << 764 "UDON_SWITCH_SEL", << 765 "PCIE0_RESET_N", << 766 "PCIE0_CLK_REQ_N", << 767 "PCIE0_WAKE_N", << 768 "CAM_SOF", << 769 "RF_ID_EXTENSION_2", << 770 "RGBC_IR_INT", << 771 "CAM_MCLK0", /* GPIO << 772 "CAM_MCLK1", << 773 "CAM_MCLK2", << 774 "CAM_MCLK3", << 775 "NC", << 776 "NC", << 777 "CAM2_RESET_N", << 778 "CCI_I2C0_SDA", << 779 "CCI_I2C0_SCL", << 780 "CCI_I2C1_SDA", << 781 "CCI_I2C1_SCL", /* G << 782 "CCI_I2C2_SDA", << 783 "CCI_I2C2_SCL", << 784 "CCI_I2C3_SDA", << 785 "CCI_I2C3_SCL", << 786 "NC", << 787 "PM8008_1_IRQ", << 788 "CAM3_RESET_N", << 789 "IMU1_INT", << 790 "EXT_VD0_XVS", << 791 "NC", /* GPIO_120 */ << 792 "NC", << 793 "NC", << 794 "NC", << 795 "NC", << 796 "HAP_I2S_CLK", << 797 "HAP_I2S_DOUT", << 798 "HAP_TRG1", << 799 "HAP_I2S_SYNC", << 800 "HST_BT_WLAN_SLIMBUS << 801 "HST_BT_WLAN_SLIMBUS << 802 "NC", << 803 "UIM2_DETECT_EN", << 804 "UIM2_DATA", << 805 "UIM2_CLK", << 806 "UIM2_RESET", << 807 "UIM2_PRESENT", << 808 "UIM1_DATA", << 809 "UIM1_CLK", << 810 "UIM1_RESET", << 811 "TRAY_DET", /* GPIO_ << 812 "SM_RFFE0_CLK", << 813 "SM_RFFE0_DATA", << 814 "SM_RFFE1_CLK", << 815 "SM_RFFE1_DATA", << 816 "SM_MSS_GRFC4", << 817 "SM_MSS_GRFC5", << 818 "SM_MSS_GRFC6", << 819 "SM_MSS_GRFC7", << 820 "SM_RFFE4_CLK", << 821 "SM_RFFE4_DATA", /* << 822 "WLAN_COEX_UART1_RX" << 823 "WLAN_COEX_UART1_TX" << 824 "HST_SW_CTRL", << 825 "DISP_VDDR_EN", << 826 "NC", << 827 "NC", << 828 "PA_INDICATOR_OR", << 829 "NC", << 830 "QLINK0_REQ", << 831 "QLINK0_EN", /* GPIO << 832 "QLINK0_WMSS_RESET_N << 833 "NC", << 834 "NC", << 835 "NC", << 836 "PM8008_2_IRQ", << 837 "TELEC_PWR_EN", << 838 "PM8008_2_RESET_N", << 839 "WCD_SWR_TX_CLK", << 840 "WCD_SWR_TX_DATA0", << 841 "WCD_SWR_TX_DATA1", << 842 "WCD_SWR_RX_CLK", << 843 "WCD_SWR_RX_DATA0", << 844 "WCD_SWR_RX_DATA1", << 845 "SM_DMIC1_CLK", << 846 "SM_DMIC1_DATA", << 847 "SM_DMIC2_CLK", << 848 "SM_DMIC2_DATA", << 849 "SPK_AMP_I2S_CLK", << 850 "SPK_AMP_I2S_WS", << 851 "SPK_AMP_I2S_ASP_DIN << 852 "SPK_AMP_I2S_ASP_DOU << 853 "WCD_SWR_TX_DATA2", << 854 "NC", << 855 "NC", << 856 "NC", << 857 "NC", << 858 "IMU_SPI_MISO", << 859 "IMU_SPI_MOSI", << 860 "IMU_SPI_CLK", << 861 "IMU_SPI_CS_N", /* G << 862 "MAG_I2C_SDA", << 863 "MAG_I2C_SCL", << 864 "SENSOR_I2C_SDA", << 865 "SENSOR_I2C_SCL", << 866 "NC", << 867 "NC", << 868 "NC", << 869 "NC", << 870 "HST_BLE_UART_TX", << 871 "HST_BLE_UART_RX", / << 872 "HST_WLAN_UART_TX", << 873 "HST_WLAN_UART_RX"; << 874 224 875 ts_int_default: ts-int-default-state { 225 ts_int_default: ts-int-default-state { 876 pins = "gpio23"; 226 pins = "gpio23"; 877 function = "gpio"; 227 function = "gpio"; 878 drive-strength = <2>; 228 drive-strength = <2>; 879 bias-disable; 229 bias-disable; 880 }; !! 230 input-enable; 881 << 882 sdc2_card_det_active: sd-card-det-acti << 883 pins = "gpio92"; << 884 function = "gpio"; << 885 drive-strength = <2>; << 886 bias-pull-up; << 887 }; << 888 << 889 sdc2_card_det_sleep: sd-card-det-sleep << 890 pins = "gpio92"; << 891 function = "gpio"; << 892 drive-strength = <2>; << 893 bias-disable; << 894 }; 231 }; 895 }; 232 }; 896 233 897 /* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE 234 /* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */ 898 &ufs_mem_hc { status = "disabled"; }; 235 &ufs_mem_hc { status = "disabled"; }; 899 &ufs_mem_phy { status = "disabled"; }; 236 &ufs_mem_phy { status = "disabled"; }; 900 237 >> 238 /* TODO: Make USB3 work (perhaps needs regulators for higher-current operation?) */ 901 &usb_1 { 239 &usb_1 { 902 status = "okay"; 240 status = "okay"; >> 241 >> 242 qcom,select-utmi-as-pipe-clk; 903 }; 243 }; 904 244 905 &usb_1_dwc3 { 245 &usb_1_dwc3 { 906 dr_mode = "peripheral"; 246 dr_mode = "peripheral"; >> 247 >> 248 maximum-speed = "high-speed"; >> 249 phys = <&usb_1_hsphy>; >> 250 phy-names = "usb2-phy"; 907 }; 251 }; 908 252 909 &usb_1_hsphy { 253 &usb_1_hsphy { 910 status = "okay"; 254 status = "okay"; 911 << 912 vdda-pll-supply = <&pm8350_l5>; << 913 vdda18-supply = <&pm8350c_l1>; << 914 vdda33-supply = <&pm8350_l2>; << 915 }; 255 }; 916 256 917 &usb_1_qmpphy { 257 &usb_1_qmpphy { 918 status = "okay"; 258 status = "okay"; 919 << 920 vdda-phy-supply = <&pm8350_l6>; << 921 vdda-pll-supply = <&pm8350_l1>; << 922 }; 259 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.