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