1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3 1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2 /* 2 /* 3 * Copyright (c) 2023 - 2024, Dang Huynh <danct !! 3 * Copyright (c) 2023, Dang Huynh <danct12@riseup.net> 4 */ 4 */ 5 5 6 /dts-v1/; 6 /dts-v1/; 7 7 8 #include "sm6115.dtsi" 8 #include "sm6115.dtsi" 9 #include "pm6125.dtsi" 9 #include "pm6125.dtsi" 10 #include "pmi632.dtsi" << 11 #include <dt-bindings/arm/qcom,ids.h> 10 #include <dt-bindings/arm/qcom,ids.h> 12 #include <dt-bindings/leds/common.h> << 13 #include <dt-bindings/usb/pd.h> << 14 11 15 / { 12 / { 16 model = "F(x)tec Pro1X (QX1050)"; 13 model = "F(x)tec Pro1X (QX1050)"; 17 compatible = "fxtec,pro1x", "qcom,sm61 14 compatible = "fxtec,pro1x", "qcom,sm6115"; 18 chassis-type = "handset"; 15 chassis-type = "handset"; 19 16 20 qcom,msm-id = <QCOM_ID_SM6115 0x10000> 17 qcom,msm-id = <QCOM_ID_SM6115 0x10000>; 21 18 22 chosen { 19 chosen { 23 #address-cells = <2>; 20 #address-cells = <2>; 24 #size-cells = <2>; 21 #size-cells = <2>; 25 ranges; 22 ranges; 26 23 27 framebuffer0: framebuffer@5c00 24 framebuffer0: framebuffer@5c000000 { 28 compatible = "simple-f 25 compatible = "simple-framebuffer"; 29 reg = <0x0 0x5c000000 26 reg = <0x0 0x5c000000 0x0 (1080 * 2160 * 4)>; 30 width = <1080>; 27 width = <1080>; 31 height = <2160>; 28 height = <2160>; 32 stride = <(1080 * 4)>; 29 stride = <(1080 * 4)>; 33 format = "a8r8g8b8"; 30 format = "a8r8g8b8"; 34 clocks = <&gcc GCC_DIS 31 clocks = <&gcc GCC_DISP_HF_AXI_CLK>; 35 }; 32 }; 36 }; 33 }; 37 34 38 disp_elvdd_supply: disp-elvdd-supply { << 39 compatible = "regulator-fixed" << 40 regulator-name = "disp_elvdd_s << 41 }; << 42 << 43 disp_elvss_supply: disp-elvss-supply { << 44 compatible = "regulator-fixed" << 45 regulator-name = "disp_elvss_s << 46 }; << 47 << 48 disp_vcc_supply: disp-vcc-supply { << 49 compatible = "regulator-fixed" << 50 regulator-name = "disp_vcc_sup << 51 }; << 52 << 53 disp_vci_supply: disp-vci-supply { << 54 compatible = "regulator-fixed" << 55 regulator-name = "disp_vci_sup << 56 }; << 57 << 58 gpio-keys { 35 gpio-keys { 59 compatible = "gpio-keys"; 36 compatible = "gpio-keys"; 60 37 61 pinctrl-0 = <&hall_sensor_n>, !! 38 pinctrl-0 = <&vol_up_n>; 62 pinctrl-names = "default"; 39 pinctrl-names = "default"; 63 40 64 hall-switch { << 65 label = "Hall Switch"; << 66 linux,input-type = <EV << 67 linux,code = <SW_KEYPA << 68 gpios = <&tlmm 96 GPIO << 69 debounce-interval = <9 << 70 wakeup-source; << 71 }; << 72 << 73 key-camera { << 74 label = "Camera Button << 75 linux,code = <KEY_CAME << 76 gpios = <&tlmm 18 GPIO << 77 debounce-interval = <1 << 78 }; << 79 << 80 key-volume-up { 41 key-volume-up { 81 label = "Volume Up"; 42 label = "Volume Up"; 82 linux,code = <KEY_VOLU 43 linux,code = <KEY_VOLUMEUP>; 83 gpios = <&pm6125_gpios 44 gpios = <&pm6125_gpios 5 GPIO_ACTIVE_LOW>; 84 debounce-interval = <1 45 debounce-interval = <15>; 85 linux,can-disable; 46 linux,can-disable; 86 wakeup-source; !! 47 gpio-key,wakeup; 87 }; << 88 }; << 89 << 90 gpio-leds { << 91 compatible = "gpio-leds"; << 92 << 93 capslock-led { << 94 label = "green:capsloc << 95 function = LED_FUNCTIO << 96 color = <LED_COLOR_ID_ << 97 gpios = <&pca9534 1 GP << 98 linux,default-trigger << 99 default-state = "off"; << 100 }; << 101 }; << 102 << 103 ts_vdd_supply: ts-vdd-supply { << 104 compatible = "regulator-fixed" << 105 regulator-name = "ts_vdd_suppl << 106 gpio = <&pca9534 3 GPIO_ACTIVE << 107 enable-active-high; << 108 }; << 109 << 110 ts_vddio_supply: ts-vddio-supply { << 111 compatible = "regulator-fixed" << 112 regulator-name = "ts_vddio_sup << 113 gpio = <&pca9534 2 GPIO_ACTIVE << 114 enable-active-high; << 115 }; << 116 }; << 117 << 118 &gpi_dma0 { << 119 status = "okay"; << 120 }; << 121 << 122 &gpu { << 123 status = "okay"; << 124 << 125 zap-shader { << 126 firmware-name = "qcom/sm6115/F << 127 }; << 128 }; << 129 << 130 &i2c1 { << 131 clock-frequency = <100000>; << 132 << 133 status = "okay"; << 134 << 135 pca9534: gpio@21 { << 136 compatible = "nxp,pca9534"; << 137 reg = <0x21>; << 138 gpio-controller; << 139 #gpio-cells = <2>; << 140 }; << 141 }; << 142 << 143 &i2c2 { << 144 status = "okay"; << 145 /* Clock frequency was not specified d << 146 clock-frequency = <100000>; << 147 << 148 touchscreen@14 { << 149 compatible = "goodix,gt9286"; << 150 reg = <0x14>; << 151 << 152 interrupts-extended = <&tlmm 8 << 153 << 154 irq-gpios = <&tlmm 80 IRQ_TYPE << 155 reset-gpios = <&tlmm 71 GPIO_A << 156 AVDD28-supply = <&ts_vdd_suppl << 157 VDDIO-supply = <&ts_vddio_supp << 158 << 159 pinctrl-0 = <&ts_int_n>, <&ts_ << 160 pinctrl-names = "default"; << 161 }; << 162 }; << 163 << 164 &mdss { << 165 status = "okay"; << 166 }; << 167 << 168 &mdss_dsi0 { << 169 vdda-supply = <&pm6125_l18a>; << 170 status = "okay"; << 171 << 172 panel: panel@0 { << 173 compatible = "boe,bf060y8m-aj0 << 174 reg = <0>; << 175 << 176 reset-gpios = <&tlmm 82 GPIO_A << 177 << 178 elvdd-supply = <&disp_elvdd_su << 179 elvss-supply = <&disp_elvss_su << 180 vcc-supply = <&disp_vcc_supply << 181 vci-supply = <&disp_vci_supply << 182 vddio-supply = <&pm6125_l9a>; << 183 << 184 pinctrl-0 = <&mdss_dsi_n &pane << 185 pinctrl-names = "default"; << 186 << 187 port { << 188 panel_in: endpoint { << 189 remote-endpoin << 190 }; << 191 }; 48 }; 192 }; 49 }; 193 }; 50 }; 194 51 195 &mdss_dsi0_out { !! 52 &dispcc { 196 data-lanes = <0 1 2 3>; !! 53 /* HACK: disable until a panel driver is ready to retain simplefb */ 197 remote-endpoint = <&panel_in>; !! 54 status = "disabled"; 198 }; << 199 << 200 &mdss_dsi0_phy { << 201 status = "okay"; << 202 }; 55 }; 203 56 204 &pm6125_gpios { 57 &pm6125_gpios { 205 vol_up_n: vol-up-n-state { 58 vol_up_n: vol-up-n-state { 206 pins = "gpio5"; 59 pins = "gpio5"; 207 function = "normal"; 60 function = "normal"; 208 power-source = <0>; 61 power-source = <0>; 209 bias-pull-up; 62 bias-pull-up; 210 input-enable; 63 input-enable; 211 }; 64 }; 212 }; 65 }; 213 66 214 &pmi632_lpg { << 215 status = "okay"; << 216 << 217 multi-led { << 218 color = <LED_COLOR_ID_RGB>; << 219 function = LED_FUNCTION_STATUS << 220 << 221 #address-cells = <1>; << 222 #size-cells = <0>; << 223 << 224 led@1 { << 225 reg = <1>; << 226 color = <LED_COLOR_ID_ << 227 }; << 228 << 229 led@2 { << 230 reg = <2>; << 231 color = <LED_COLOR_ID_ << 232 }; << 233 << 234 led@3 { << 235 reg = <3>; << 236 color = <LED_COLOR_ID_ << 237 }; << 238 }; << 239 }; << 240 << 241 &pmi632_typec { << 242 status = "okay"; << 243 << 244 connector { << 245 compatible = "usb-c-connector" << 246 << 247 power-role = "dual"; << 248 data-role = "dual"; << 249 self-powered; << 250 << 251 typec-power-opmode = "default" << 252 pd-disable; << 253 << 254 ports { << 255 #address-cells = <1>; << 256 #size-cells = <0>; << 257 << 258 port@0 { << 259 reg = <0>; << 260 pmi632_hs_in: << 261 remote << 262 }; << 263 }; << 264 << 265 port@1 { << 266 reg = <1>; << 267 pmi632_ss_in: << 268 remote << 269 }; << 270 }; << 271 }; << 272 }; << 273 }; << 274 << 275 &pmi632_vbus { << 276 regulator-min-microamp = <500000>; << 277 regulator-max-microamp = <1000000>; << 278 status = "okay"; << 279 }; << 280 << 281 &pon_pwrkey { 67 &pon_pwrkey { 282 status = "okay"; 68 status = "okay"; 283 }; 69 }; 284 70 285 &pon_resin { 71 &pon_resin { 286 linux,code = <KEY_VOLUMEDOWN>; 72 linux,code = <KEY_VOLUMEDOWN>; 287 status = "okay"; 73 status = "okay"; 288 }; 74 }; 289 75 290 &qupv3_id_0 { << 291 status = "okay"; << 292 }; << 293 << 294 &remoteproc_adsp { << 295 firmware-name = "qcom/sm6115/Fxtec/QX1 << 296 status = "okay"; << 297 }; << 298 << 299 &remoteproc_cdsp { << 300 firmware-name = "qcom/sm6115/Fxtec/QX1 << 301 status = "okay"; << 302 }; << 303 << 304 &remoteproc_mpss { << 305 firmware-name = "qcom/sm6115/Fxtec/QX1 << 306 status = "okay"; << 307 }; << 308 << 309 &rpm_requests { 76 &rpm_requests { 310 regulators-0 { 77 regulators-0 { 311 compatible = "qcom,rpm-pm6125- 78 compatible = "qcom,rpm-pm6125-regulators"; 312 79 313 pm6125_s6a: s6 { 80 pm6125_s6a: s6 { 314 regulator-min-microvol 81 regulator-min-microvolt = <304000>; 315 regulator-max-microvol 82 regulator-max-microvolt = <1456000>; 316 }; 83 }; 317 84 318 pm6125_s7a: s7 { 85 pm6125_s7a: s7 { 319 regulator-min-microvol 86 regulator-min-microvolt = <1280000>; 320 regulator-max-microvol 87 regulator-max-microvolt = <2040000>; 321 }; 88 }; 322 89 323 pm6125_s8a: s8 { 90 pm6125_s8a: s8 { 324 regulator-min-microvol 91 regulator-min-microvolt = <1064000>; 325 regulator-max-microvol 92 regulator-max-microvolt = <1304000>; 326 }; 93 }; 327 94 328 pm6125_l1a: l1 { 95 pm6125_l1a: l1 { 329 regulator-min-microvol 96 regulator-min-microvolt = <952000>; 330 regulator-max-microvol 97 regulator-max-microvolt = <1152000>; 331 }; 98 }; 332 99 333 pm6125_l4a: l4 { 100 pm6125_l4a: l4 { 334 regulator-min-microvol 101 regulator-min-microvolt = <488000>; 335 regulator-max-microvol 102 regulator-max-microvolt = <1000000>; 336 }; 103 }; 337 104 338 pm6125_l5a: l5 { 105 pm6125_l5a: l5 { 339 regulator-min-microvol 106 regulator-min-microvolt = <1648000>; 340 regulator-max-microvol 107 regulator-max-microvolt = <3056000>; 341 regulator-allow-set-lo << 342 }; 108 }; 343 109 344 pm6125_l6a: l6 { 110 pm6125_l6a: l6 { 345 regulator-min-microvol 111 regulator-min-microvolt = <576000>; 346 regulator-max-microvol 112 regulator-max-microvolt = <656000>; 347 }; 113 }; 348 114 349 pm6125_l7a: l7 { 115 pm6125_l7a: l7 { 350 regulator-min-microvol 116 regulator-min-microvolt = <1200000>; 351 regulator-max-microvol 117 regulator-max-microvolt = <1304000>; 352 }; 118 }; 353 119 354 pm6125_l8a: l8 { 120 pm6125_l8a: l8 { 355 regulator-min-microvol 121 regulator-min-microvolt = <400000>; 356 regulator-max-microvol 122 regulator-max-microvolt = <728000>; 357 }; 123 }; 358 124 359 pm6125_l9a: l9 { 125 pm6125_l9a: l9 { 360 regulator-min-microvol 126 regulator-min-microvolt = <1800000>; 361 regulator-max-microvol 127 regulator-max-microvolt = <2000000>; 362 }; 128 }; 363 129 364 pm6125_l10a: l10 { 130 pm6125_l10a: l10 { 365 regulator-min-microvol 131 regulator-min-microvolt = <1704000>; 366 regulator-max-microvol 132 regulator-max-microvolt = <1904000>; 367 }; 133 }; 368 134 369 pm6125_l11a: l11 { 135 pm6125_l11a: l11 { 370 regulator-min-microvol 136 regulator-min-microvolt = <1704000>; 371 regulator-max-microvol 137 regulator-max-microvolt = <1952000>; 372 regulator-allow-set-lo 138 regulator-allow-set-load; 373 }; 139 }; 374 140 375 pm6125_l12a: l12 { 141 pm6125_l12a: l12 { 376 regulator-min-microvol 142 regulator-min-microvolt = <1624000>; 377 regulator-max-microvol 143 regulator-max-microvolt = <1984000>; 378 }; 144 }; 379 145 380 pm6125_l13a: l13 { 146 pm6125_l13a: l13 { 381 regulator-min-microvol 147 regulator-min-microvolt = <1504000>; 382 regulator-max-microvol 148 regulator-max-microvolt = <1952000>; 383 }; 149 }; 384 150 385 pm6125_l14a: l14 { 151 pm6125_l14a: l14 { 386 regulator-min-microvol 152 regulator-min-microvolt = <1704000>; 387 regulator-max-microvol 153 regulator-max-microvolt = <1904000>; 388 }; 154 }; 389 155 390 pm6125_l15a: l15 { 156 pm6125_l15a: l15 { 391 regulator-min-microvol 157 regulator-min-microvolt = <2920000>; 392 regulator-max-microvol 158 regulator-max-microvolt = <3232000>; 393 }; 159 }; 394 160 395 pm6125_l16a: l16 { 161 pm6125_l16a: l16 { 396 regulator-min-microvol 162 regulator-min-microvolt = <1704000>; 397 regulator-max-microvol 163 regulator-max-microvolt = <1904000>; 398 }; 164 }; 399 165 400 pm6125_l17a: l17 { 166 pm6125_l17a: l17 { 401 regulator-min-microvol 167 regulator-min-microvolt = <1152000>; 402 regulator-max-microvol 168 regulator-max-microvolt = <1384000>; 403 }; 169 }; 404 170 405 pm6125_l18a: l18 { 171 pm6125_l18a: l18 { 406 regulator-min-microvol 172 regulator-min-microvolt = <1104000>; 407 regulator-max-microvol 173 regulator-max-microvolt = <1312000>; 408 }; 174 }; 409 175 410 pm6125_l19a: l19 { 176 pm6125_l19a: l19 { 411 regulator-min-microvol 177 regulator-min-microvolt = <1624000>; 412 regulator-max-microvol 178 regulator-max-microvolt = <3304000>; 413 }; 179 }; 414 180 415 pm6125_l20a: l20 { 181 pm6125_l20a: l20 { 416 regulator-min-microvol 182 regulator-min-microvolt = <1624000>; 417 regulator-max-microvol 183 regulator-max-microvolt = <3304000>; 418 }; 184 }; 419 185 420 pm6125_l21a: l21 { 186 pm6125_l21a: l21 { 421 regulator-min-microvol 187 regulator-min-microvolt = <2400000>; 422 regulator-max-microvol 188 regulator-max-microvolt = <3600000>; 423 }; 189 }; 424 190 425 pm6125_l22a: l22 { 191 pm6125_l22a: l22 { 426 regulator-min-microvol 192 regulator-min-microvolt = <2952000>; 427 regulator-max-microvol 193 regulator-max-microvolt = <3304000>; 428 }; 194 }; 429 195 430 pm6125_l23a: l23 { 196 pm6125_l23a: l23 { 431 regulator-min-microvol 197 regulator-min-microvolt = <3200000>; 432 regulator-max-microvol 198 regulator-max-microvolt = <3400000>; 433 }; 199 }; 434 200 435 pm6125_l24a: l24 { 201 pm6125_l24a: l24 { 436 regulator-min-microvol 202 regulator-min-microvolt = <2704000>; 437 regulator-max-microvol 203 regulator-max-microvolt = <3600000>; 438 regulator-allow-set-lo 204 regulator-allow-set-load; 439 }; 205 }; 440 }; 206 }; 441 }; 207 }; 442 208 443 &sdc2_state_off { << 444 cd-pins { << 445 pins = "gpio88"; << 446 function = "gpio"; << 447 drive-strength = <2>; << 448 bias-disable; << 449 }; << 450 }; << 451 << 452 &sdc2_state_on { << 453 cd-pins { << 454 pins = "gpio88"; << 455 function = "gpio"; << 456 drive-strength = <2>; << 457 bias-pull-up; << 458 }; << 459 }; << 460 << 461 &sdhc_2 { << 462 pinctrl-0 = <&sdc2_state_on>; << 463 pinctrl-1 = <&sdc2_state_off>; << 464 pinctrl-names = "default", "sleep"; << 465 << 466 cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; << 467 << 468 vmmc-supply = <&pm6125_l22a>; << 469 vqmmc-supply = <&pm6125_l5a>; << 470 << 471 status = "okay"; << 472 }; << 473 << 474 &sleep_clk { 209 &sleep_clk { 475 clock-frequency = <32764>; 210 clock-frequency = <32764>; 476 }; 211 }; 477 212 478 &tlmm { 213 &tlmm { 479 gpio-reserved-ranges = <0 4>, <14 4>; 214 gpio-reserved-ranges = <0 4>, <14 4>; 480 << 481 key_camera_n: key-camera-n-state { << 482 pins = "gpio18"; << 483 function = "gpio"; << 484 drive-strength = <2>; << 485 bias-pull-up; << 486 }; << 487 << 488 panel_en_n: panel-en-n-state { << 489 pins = "gpio65"; << 490 function = "gpio"; << 491 bias-disable; << 492 }; << 493 << 494 ts_rst_n: ts-rst-n-state { << 495 pins = "gpio71"; << 496 function = "gpio"; << 497 drive-strength = <8>; << 498 bias-pull-up; << 499 }; << 500 << 501 ts_int_n: ts-int-n-state { << 502 pins = "gpio80"; << 503 function = "gpio"; << 504 drive-strength = <8>; << 505 bias-pull-up; << 506 }; << 507 << 508 mdss_dsi_n: mdss-dsi-n-state { << 509 pins = "gpio82"; << 510 function = "gpio"; << 511 drive-strength = <8>; << 512 bias-disable; << 513 }; << 514 << 515 hall_sensor_n: hall-sensor-n-state { << 516 pins = "gpio96"; << 517 function = "gpio"; << 518 drive-strength = <2>; << 519 bias-pull-up; << 520 }; << 521 }; 215 }; 522 216 523 &ufs_mem_hc { 217 &ufs_mem_hc { 524 vcc-supply = <&pm6125_l24a>; 218 vcc-supply = <&pm6125_l24a>; 525 vcc-max-microamp = <600000>; 219 vcc-max-microamp = <600000>; 526 vccq2-supply = <&pm6125_l11a>; 220 vccq2-supply = <&pm6125_l11a>; 527 vccq2-max-microamp = <600000>; 221 vccq2-max-microamp = <600000>; 528 vdd-hba-supply = <&pm6125_l18a>; << 529 status = "okay"; 222 status = "okay"; 530 }; 223 }; 531 224 532 &ufs_mem_phy { 225 &ufs_mem_phy { 533 vdda-phy-supply = <&pm6125_l4a>; 226 vdda-phy-supply = <&pm6125_l4a>; 534 vdda-pll-supply = <&pm6125_l12a>; 227 vdda-pll-supply = <&pm6125_l12a>; >> 228 vddp-ref-clk-supply = <&pm6125_l18a>; 535 status = "okay"; 229 status = "okay"; 536 }; 230 }; 537 231 538 &usb { 232 &usb { 539 status = "okay"; 233 status = "okay"; 540 }; 234 }; 541 235 542 &usb_dwc3_hs { !! 236 &usb_dwc3 { 543 remote-endpoint = <&pmi632_hs_in>; !! 237 maximum-speed = "high-speed"; >> 238 dr_mode = "peripheral"; 544 }; 239 }; 545 240 546 &usb_hsphy { 241 &usb_hsphy { 547 vdd-supply = <&pm6125_l4a>; 242 vdd-supply = <&pm6125_l4a>; 548 vdda-pll-supply = <&pm6125_l12a>; 243 vdda-pll-supply = <&pm6125_l12a>; 549 vdda-phy-dpdm-supply = <&pm6125_l15a>; 244 vdda-phy-dpdm-supply = <&pm6125_l15a>; 550 status = "okay"; << 551 }; << 552 << 553 &usb_qmpphy { << 554 vdda-phy-supply = <&pm6125_l4a>; << 555 vdda-pll-supply = <&pm6125_l12a>; << 556 status = "okay"; << 557 }; << 558 << 559 &usb_qmpphy_out { << 560 remote-endpoint = <&pmi632_ss_in>; << 561 }; << 562 << 563 &wifi { << 564 vdd-0.8-cx-mx-supply = <&pm6125_l8a>; << 565 vdd-1.8-xo-supply = <&pm6125_l16a>; << 566 vdd-1.3-rfa-supply = <&pm6125_l17a>; << 567 vdd-3.3-ch0-supply = <&pm6125_l23a>; << 568 << 569 qcom,ath10k-calibration-variant = "Fxt << 570 << 571 status = "okay"; 245 status = "okay"; 572 }; 246 }; 573 247 574 &xo_board { 248 &xo_board { 575 clock-frequency = <19200000>; 249 clock-frequency = <19200000>; 576 }; 250 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.