1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Samsung Galaxy J7 Prime (on7xelte) device tree source 4 * 5 * Copyright (c) 2015 Samsung Electronics Co., Ltd. 6 * Copyright (c) 2025 Kaustabh Chakraborty <kauschluss@disroot.org> 7 */ 8 9/dts-v1/; 10#include "exynos7870.dtsi" 11#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/input/input.h> 13#include <dt-bindings/interrupt-controller/irq.h> 14 15/ { 16 model = "Samsung Galaxy J7 Prime"; 17 compatible = "samsung,on7xelte", "samsung,exynos7870"; 18 chassis-type = "handset"; 19 20 aliases { 21 mmc0 = &mmc0; 22 mmc1 = &mmc1; 23 mmc2 = &mmc2; 24 serial0 = &serial0; 25 serial1 = &serial1; 26 serial2 = &serial2; 27 }; 28 29 chosen { 30 stdout-path = &serial2; 31 }; 32 33 gpio-keys { 34 compatible = "gpio-keys"; 35 label = "GPIO Keys"; 36 37 pinctrl-names = "default"; 38 pinctrl-0 = <&key_home &key_power &key_voldown &key_volup>; 39 40 key-home { 41 label = "Home Key"; 42 gpios = <&gpa1 7 GPIO_ACTIVE_LOW>; 43 linux,code = <KEY_HOMEPAGE>; 44 }; 45 46 key-power { 47 label = "Power Key"; 48 gpios = <&gpa0 0 GPIO_ACTIVE_LOW>; 49 linux,code = <KEY_POWER>; 50 }; 51 52 key-voldown { 53 label = "Volume Down Key"; 54 gpios = <&gpa2 1 GPIO_ACTIVE_LOW>; 55 linux,code = <KEY_VOLUMEDOWN>; 56 }; 57 58 key-volup { 59 label = "Volume Up Key"; 60 gpios = <&gpa2 0 GPIO_ACTIVE_LOW>; 61 linux,code = <KEY_VOLUMEUP>; 62 }; 63 }; 64 65 memory@40000000 { 66 device_type = "memory"; 67 reg = <0x0 0x40000000 0x3e400000>, 68 <0x0 0x80000000 0x80000000>; 69 }; 70 71 pwrseq_mmc1: pwrseq-mmc1 { 72 compatible = "mmc-pwrseq-simple"; 73 reset-gpios = <&gpd3 6 GPIO_ACTIVE_LOW>; 74 }; 75 76 /* mmc2: vmmc */ 77 vdd_fixed_mmc2: regulator-fixed-mmc2 { 78 compatible = "regulator-fixed"; 79 regulator-name = "vdd_fixed_mmc2"; 80 regulator-max-microvolt = <2800000>; 81 regulator-min-microvolt = <2800000>; 82 gpio = <&gpc0 0 GPIO_ACTIVE_HIGH>; 83 enable-active-high; 84 }; 85 86 reserved-memory { 87 #address-cells = <2>; 88 #size-cells = <1>; 89 ranges; 90 91 ramoops@46e00000 { 92 compatible = "ramoops"; 93 reg = <0x0 0x46e00000 0x8000>; 94 console-size = <0x4000>; 95 pmsg-size = <0x4000>; 96 }; 97 98 cont_splash_mem: framebuffer@67000000 { 99 reg = <0x0 0x67000000 (1080 * 1920 * 4)>; 100 iommu-addresses = <&decon 0x67000000 (1080 * 1920 * 4)>; 101 no-map; 102 }; 103 }; 104 105 vibrator { 106 compatible = "regulator-haptic"; 107 haptic-supply = <&vdd_ldo32>; 108 min-microvolt = <3300000>; 109 max-microvolt = <3300000>; 110 }; 111}; 112 113&decon { 114 memory-region = <&cont_splash_mem>; 115 116 status = "okay"; 117}; 118 119&dsi { 120 #address-cells = <1>; 121 #size-cells = <0>; 122 123 samsung,burst-clock-frequency = <1001000000>; 124 samsung,esc-clock-frequency = <16000000>; 125 samsung,pll-clock-frequency = <26000000>; 126 127 status = "okay"; 128 129 panel@0 { 130 compatible = "syna,td4300-panel"; 131 reg = <0>; 132 133 backlight-gpios = <&gpd3 5 GPIO_ACTIVE_LOW>; 134 135 width-mm = <68>; 136 height-mm = <121>; 137 138 panel-timing { 139 clock-frequency = <144389520>; 140 141 hactive = <1080>; 142 hsync-len = <4>; 143 hfront-porch = <120>; 144 hback-porch = <32>; 145 146 vactive = <1920>; 147 vsync-len = <2>; 148 vfront-porch = <21>; 149 vback-porch = <4>; 150 }; 151 }; 152}; 153 154&gpu { 155 status = "okay"; 156}; 157 158&hsi2c0 { 159 #address-cells = <1>; 160 #size-cells = <0>; 161 162 status = "okay"; 163 164 pmic@66 { 165 compatible = "samsung,s2mpu05-pmic"; 166 reg = <0x66>; 167 168 interrupt-parent = <&gpa0>; 169 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 170 171 pinctrl-names = "default"; 172 pinctrl-0 = <&pmic_irq>; 173 174 regulators { 175 vdd_buck1: buck1 { 176 regulator-name = "vdd_buck1"; 177 regulator-min-microvolt = <500000>; 178 regulator-max-microvolt = <1300000>; 179 regulator-ramp-delay = <12000>; 180 regulator-boot-on; 181 regulator-always-on; 182 }; 183 184 vdd_buck2: buck2 { 185 regulator-name = "vdd_buck2"; 186 regulator-min-microvolt = <500000>; 187 regulator-max-microvolt = <1300000>; 188 regulator-ramp-delay = <12000>; 189 regulator-boot-on; 190 regulator-always-on; 191 }; 192 193 vdd_buck3: buck3 { 194 regulator-name = "vdd_buck3"; 195 regulator-min-microvolt = <500000>; 196 regulator-max-microvolt = <1300000>; 197 regulator-ramp-delay = <12000>; 198 regulator-boot-on; 199 regulator-always-on; 200 }; 201 202 vdd_buck4: buck4 { 203 regulator-name = "vdd_buck4"; 204 regulator-min-microvolt = <1200000>; 205 regulator-max-microvolt = <1500000>; 206 regulator-ramp-delay = <12000>; 207 regulator-boot-on; 208 regulator-always-on; 209 }; 210 211 vdd_buck5: buck5 { 212 regulator-name = "vdd_buck5"; 213 regulator-min-microvolt = <1800000>; 214 regulator-max-microvolt = <2100000>; 215 regulator-ramp-delay = <12000>; 216 regulator-boot-on; 217 regulator-always-on; 218 }; 219 220 vdd_ldo1: ldo1 { 221 regulator-name = "vdd_ldo1"; 222 regulator-min-microvolt = <650000>; 223 regulator-max-microvolt = <1350000>; 224 regulator-ramp-delay = <12000>; 225 regulator-boot-on; 226 regulator-always-on; 227 }; 228 229 /* mmc2: vqmmc */ 230 vdd_ldo2: ldo2 { 231 regulator-name = "vdd_ldo2"; 232 regulator-min-microvolt = <1800000>; 233 regulator-max-microvolt = <2800000>; 234 regulator-ramp-delay = <12000>; 235 }; 236 237 vdd_ldo3: ldo3 { 238 regulator-name = "vdd_ldo3"; 239 regulator-min-microvolt = <800000>; 240 regulator-max-microvolt = <2375000>; 241 regulator-ramp-delay = <12000>; 242 regulator-boot-on; 243 regulator-always-on; 244 }; 245 246 vdd_ldo4: ldo4 { 247 regulator-name = "vdd_ldo4"; 248 regulator-min-microvolt = <800000>; 249 regulator-max-microvolt = <1350000>; 250 regulator-ramp-delay = <12000>; 251 regulator-boot-on; 252 regulator-always-on; 253 }; 254 255 vdd_ldo5: ldo5 { 256 regulator-name = "vdd_ldo5"; 257 regulator-min-microvolt = <800000>; 258 regulator-max-microvolt = <1350000>; 259 regulator-ramp-delay = <12000>; 260 regulator-boot-on; 261 regulator-always-on; 262 }; 263 264 vdd_ldo6: ldo6 { 265 regulator-name = "vdd_ldo6"; 266 regulator-min-microvolt = <800000>; 267 regulator-max-microvolt = <1350000>; 268 regulator-ramp-delay = <12000>; 269 regulator-boot-on; 270 regulator-always-on; 271 }; 272 273 vdd_ldo7: ldo7 { 274 regulator-name = "vdd_ldo7"; 275 regulator-min-microvolt = <800000>; 276 regulator-max-microvolt = <2375000>; 277 regulator-ramp-delay = <12000>; 278 regulator-boot-on; 279 regulator-always-on; 280 }; 281 282 /* usbdrd: vdd33 */ 283 vdd_ldo8: ldo8 { 284 regulator-name = "vdd_ldo8"; 285 regulator-min-microvolt = <1800000>; 286 regulator-max-microvolt = <3375000>; 287 regulator-ramp-delay = <12000>; 288 }; 289 290 vdd_ldo9: ldo9 { 291 regulator-name = "vdd_ldo9"; 292 regulator-min-microvolt = <650000>; 293 regulator-max-microvolt = <1350000>; 294 regulator-ramp-delay = <12000>; 295 regulator-boot-on; 296 regulator-always-on; 297 }; 298 299 vdd_ldo10: ldo10 { 300 regulator-name = "vdd_ldo10"; 301 regulator-min-microvolt = <650000>; 302 regulator-max-microvolt = <1350000>; 303 regulator-ramp-delay = <12000>; 304 regulator-boot-on; 305 regulator-always-on; 306 }; 307 308 vdd_ldo25: ldo25 { 309 regulator-name = "vdd_ldo25"; 310 regulator-min-microvolt = <800000>; 311 regulator-max-microvolt = <2375000>; 312 regulator-ramp-delay = <12000>; 313 regulator-boot-on; 314 regulator-always-on; 315 }; 316 317 /* mmc0: vmmc */ 318 vdd_ldo26: ldo26 { 319 regulator-name = "vdd_ldo26"; 320 regulator-min-microvolt = <1800000>; 321 regulator-max-microvolt = <3375000>; 322 regulator-ramp-delay = <12000>; 323 regulator-boot-on; 324 regulator-always-on; 325 }; 326 327 /* mmc0: vqmmc */ 328 vdd_ldo27: ldo27 { 329 regulator-name = "vdd_ldo27"; 330 regulator-min-microvolt = <800000>; 331 regulator-max-microvolt = <2375000>; 332 regulator-ramp-delay = <12000>; 333 regulator-boot-on; 334 regulator-always-on; 335 }; 336 337 vdd_ldo29: ldo29 { 338 regulator-name = "vdd_ldo29"; 339 regulator-min-microvolt = <2800000>; 340 regulator-max-microvolt = <2800000>; 341 regulator-boot-on; 342 regulator-always-on; 343 }; 344 345 vdd_ldo30: ldo30 { 346 regulator-name = "vdd_ldo30"; 347 regulator-min-microvolt = <1800000>; 348 regulator-max-microvolt = <1800000>; 349 regulator-ramp-delay = <12000>; 350 regulator-boot-on; 351 regulator-always-on; 352 }; 353 354 vdd_ldo31: ldo31 { 355 regulator-name = "vdd_ldo31"; 356 regulator-min-microvolt = <2800000>; 357 regulator-max-microvolt = <2800000>; 358 regulator-ramp-delay = <12000>; 359 regulator-boot-on; 360 regulator-always-on; 361 }; 362 363 /* vibrator: haptic */ 364 vdd_ldo32: ldo32 { 365 regulator-name = "vdd_ldo32"; 366 regulator-min-microvolt = <3300000>; 367 regulator-max-microvolt = <3300000>; 368 regulator-ramp-delay = <12000>; 369 }; 370 371 vdd_ldo33: ldo33 { 372 regulator-name = "vdd_ldo33"; 373 regulator-min-microvolt = <3300000>; 374 regulator-max-microvolt = <3300000>; 375 regulator-ramp-delay = <12000>; 376 regulator-boot-on; 377 regulator-always-on; 378 }; 379 380 vdd_ldo34: ldo34 { 381 regulator-name = "vdd_ldo34"; 382 regulator-min-microvolt = <3000000>; 383 regulator-max-microvolt = <3000000>; 384 regulator-ramp-delay = <12000>; 385 regulator-boot-on; 386 regulator-always-on; 387 }; 388 389 vdd_ldo35: ldo35 { 390 regulator-name = "vdd_ldo35"; 391 regulator-min-microvolt = <2800000>; 392 regulator-max-microvolt = <2800000>; 393 regulator-boot-on; 394 regulator-always-on; 395 }; 396 }; 397 }; 398}; 399 400&i2c1 { 401 #address-cells = <1>; 402 #size-cells = <0>; 403 404 samsung,i2c-sda-delay = <100>; 405 samsung,i2c-max-bus-freq = <400000>; 406 407 status = "okay"; 408 409 touchscreen@70 { 410 compatible = "syna,rmi4-i2c"; 411 reg = <0x70>; 412 interrupt-parent = <&gpc3>; 413 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 414 #address-cells = <1>; 415 #size-cells = <0>; 416 417 pinctrl-names = "default"; 418 pinctrl-0 = <&touch_irq>; 419 420 syna,reset-delay-ms = <200>; 421 syna,startup-delay-ms = <200>; 422 423 rmi4-f01@1 { 424 reg = <0x01>; 425 syna,nosleep-mode = <1>; 426 }; 427 428 rmi4-f12@12 { 429 reg = <0x12>; 430 syna,sensor-type = <1>; 431 syna,rezero-wait-ms = <200>; 432 syna,clip-x-high = <1079>; 433 syna,clip-y-high = <1919>; 434 touchscreen-x-mm = <68>; 435 touchscreen-y-mm = <121>; 436 }; 437 }; 438}; 439 440&i2c7 { 441 #address-cells = <1>; 442 #size-cells = <0>; 443 444 samsung,i2c-sda-delay = <100>; 445 samsung,i2c-max-bus-freq = <400000>; 446 447 status = "okay"; 448 449 accelerometer@1d { 450 compatible = "st,lis2hh12"; 451 reg = <0x1d>; 452 interrupt-parent = <&gpa2>; 453 interrupts = <3 IRQ_TYPE_EDGE_RISING>; 454 455 pinctrl-names = "default"; 456 pinctrl-0 = <&accel_irq>; 457 458 mount-matrix = "1", "0", "0", 459 "0", "-1", "0", 460 "0", "0", "-1"; 461 462 st,drdy-int-pin = <1>; 463 }; 464}; 465 466&i2c8 { 467 #address-cells = <1>; 468 #size-cells = <0>; 469 470 samsung,i2c-sda-delay = <100>; 471 samsung,i2c-max-bus-freq = <400000>; 472 473 status = "okay"; 474 475 proximity@48 { 476 compatible = "sensortek,stk3013", "sensortek,stk3310"; 477 reg = <0x48>; 478 interrupt-parent = <&gpa0>; 479 interrupts = <5 IRQ_TYPE_EDGE_BOTH>; 480 481 pinctrl-names = "default"; 482 pinctrl-0 = <&proxm_irq>; 483 484 proximity-near-level = <25>; 485 }; 486}; 487 488&mmc0 { 489 pinctrl-names = "default"; 490 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_rdqs &sd0_bus1 &sd0_bus4 &sd0_bus8>; 491 492 vmmc-supply = <&vdd_ldo26>; 493 vqmmc-supply = <&vdd_ldo27>; 494 495 bus-width = <8>; 496 fifo-depth = <64>; 497 samsung,dw-mshc-ciu-div = <3>; 498 samsung,dw-mshc-sdr-timing = <0 4>; 499 samsung,dw-mshc-ddr-timing = <2 4>; 500 non-removable; 501 502 status = "okay"; 503}; 504 505&mmc1 { 506 #address-cells = <1>; 507 #size-cells = <0>; 508 509 pinctrl-names = "default"; 510 pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus1 &sd1_bus4>; 511 512 mmc-pwrseq = <&pwrseq_mmc1>; 513 514 bus-width = <4>; 515 fifo-depth = <64>; 516 samsung,dw-mshc-ciu-div = <3>; 517 samsung,dw-mshc-sdr-timing = <0 3>; 518 samsung,dw-mshc-ddr-timing = <1 2>; 519 non-removable; 520 cap-sd-highspeed; 521 cap-sdio-irq; 522 523 status = "okay"; 524 525 wifi@1 { 526 compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac"; 527 reg = <0x1>; 528 interrupt-names = "host-wake"; 529 interrupt-parent = <&gpa2>; 530 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 531 532 reset-gpios = <&gpd3 6 GPIO_ACTIVE_LOW>; 533 }; 534}; 535 536&mmc2 { 537 pinctrl-names = "default"; 538 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4 &dwmmc2_irq>; 539 540 vmmc-supply = <&vdd_fixed_mmc2>; 541 vqmmc-supply = <&vdd_ldo2>; 542 543 bus-width = <4>; 544 card-detect-delay = <200>; 545 fifo-depth = <64>; 546 samsung,dw-mshc-ciu-div = <3>; 547 samsung,dw-mshc-sdr-timing = <0 3>; 548 samsung,dw-mshc-ddr-timing = <1 2>; 549 sd-uhs-sdr50; 550 sd-uhs-sdr104; 551 broken-cd; 552 disable-wp; 553 554 status = "okay"; 555}; 556 557&oscclk { 558 clock-frequency = <26000000>; 559}; 560 561&pinctrl_alive { 562 accel_irq: accel-irq-pins { 563 samsung,pins = "gpa2-3"; 564 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 565 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 566 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 567 }; 568 569 dwmmc2_irq: dwmmc2-irq-pins { 570 samsung,pins = "gpa0-1"; 571 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 572 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 573 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 574 }; 575 576 fuel_irq: fuel-irq-pins { 577 samsung,pins = "gpa0-3"; 578 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 579 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 580 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 581 }; 582 583 key_home: key-home-pins { 584 samsung,pins = "gpa1-7"; 585 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 586 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 587 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 588 }; 589 590 key_power: key-power-pins { 591 samsung,pins = "gpa0-0"; 592 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 593 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 594 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 595 }; 596 597 key_voldown: key-voldown-pins { 598 samsung,pins = "gpa2-1"; 599 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 600 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 601 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 602 }; 603 604 key_volup: key-volup-pins { 605 samsung,pins = "gpa2-0"; 606 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 607 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 608 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 609 }; 610 611 pmic_irq: pmic-irq-pins { 612 samsung,pins = "gpa0-2"; 613 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; 614 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>; 615 }; 616 617 proxm_irq: proxm-irq-pins { 618 samsung,pins = "gpa0-5"; 619 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 620 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 621 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 622 }; 623 624 tkey_irq: tkey-irq-pins { 625 samsung,pins = "gpa1-4"; 626 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 627 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 628 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 629 }; 630 631 wlan_hostwake: wlan-hostwake-pins { 632 samsung,pins = "gpa2-2"; 633 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 634 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; 635 }; 636}; 637 638&pinctrl_top { 639 bt_enable: bt-enable-pins { 640 samsung,pins = "gpd4-1"; 641 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 642 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_PREV>; 643 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>; 644 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; 645 }; 646 647 wlan_enable: wlan-enable-pins { 648 samsung,pins = "gpd3-6"; 649 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 650 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_PREV>; 651 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>; 652 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 653 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>; 654 samsung,pin-val = <0>; 655 }; 656}; 657 658&pinctrl_touch { 659 touch_irq: touch-irq-pins { 660 samsung,pins = "gpc3-2"; 661 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 662 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 663 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 664 }; 665}; 666 667&serial1 { 668 status = "okay"; 669 670 bluetooth { 671 compatible = "brcm,bcm43430a1-bt"; 672 673 pinctrl-names = "default"; 674 pinctrl-0 = <&bt_btwake &bt_hostwake &bt_enable>; 675 676 device-wakeup-gpios = <&gpa1 2 GPIO_ACTIVE_HIGH>; 677 host-wakeup-gpios = <&gpa1 6 GPIO_ACTIVE_HIGH>; 678 shutdown-gpios = <&gpd4 1 GPIO_ACTIVE_HIGH>; 679 680 max-speed = <3000000>; 681 }; 682}; 683 684&serial2 { 685 status = "okay"; 686}; 687 688&usbdrd { 689 vdd33-supply = <&vdd_ldo8>; 690 691 status = "okay"; 692}; 693