1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Samsung Galaxy J7 (2016) (j7xelte) device tree source 4 * 5 * Copyright (c) 2025 Rayan Marzouk <rayanmarzouk743@gmail.com> 6 */ 7 8/dts-v1/; 9#include "exynos7870.dtsi" 10#include <dt-bindings/gpio/gpio.h> 11#include <dt-bindings/input/input.h> 12#include <dt-bindings/interrupt-controller/irq.h> 13 14/ { 15 model = "Samsung Galaxy J7 (2016)"; 16 compatible = "samsung,j7xelte", "samsung,exynos7870"; 17 chassis-type = "handset"; 18 19 aliases { 20 mmc0 = &mmc0; 21 mmc1 = &mmc1; 22 mmc2 = &mmc2; 23 serial0 = &serial0; 24 serial1 = &serial1; 25 serial2 = &serial2; 26 }; 27 28 chosen { 29 #address-cells = <2>; 30 #size-cells = <1>; 31 ranges; 32 33 stdout-path = &serial2; 34 35 framebuffer@67000000 { 36 compatible = "simple-framebuffer"; 37 reg = <0x0 0x67000000 (720 * 1280 * 4)>; 38 width = <720>; 39 height = <1280>; 40 stride = <(720 * 4)>; 41 format = "a8r8g8b8"; 42 }; 43 }; 44 45 gpio-keys { 46 compatible = "gpio-keys"; 47 label = "GPIO Keys"; 48 49 pinctrl-names = "default"; 50 pinctrl-0 = <&key_home &key_power &key_voldown &key_volup>; 51 52 key-home { 53 label = "Home Key"; 54 gpios = <&gpa1 7 GPIO_ACTIVE_LOW>; 55 linux,code = <KEY_HOMEPAGE>; 56 }; 57 58 key-power { 59 label = "Power Key"; 60 gpios = <&gpa0 0 GPIO_ACTIVE_LOW>; 61 linux,code = <KEY_POWER>; 62 }; 63 64 key-voldown { 65 label = "Volume Down Key"; 66 gpios = <&gpa2 1 GPIO_ACTIVE_LOW>; 67 linux,code = <KEY_VOLUMEDOWN>; 68 }; 69 70 key-volup { 71 label = "Volume Up Key"; 72 gpios = <&gpa2 0 GPIO_ACTIVE_LOW>; 73 linux,code = <KEY_VOLUMEUP>; 74 }; 75 }; 76 77 memory@40000000 { 78 device_type = "memory"; 79 reg = <0x0 0x40000000 0x3e400000>, 80 <0x0 0x80000000 0x40000000>; 81 }; 82 83 pwrseq_mmc1: pwrseq-mmc1 { 84 compatible = "mmc-pwrseq-simple"; 85 reset-gpios = <&gpd3 6 GPIO_ACTIVE_LOW>; 86 }; 87 88 reserved-memory { 89 #address-cells = <2>; 90 #size-cells = <1>; 91 ranges; 92 93 ramoops@46e00000 { 94 compatible = "ramoops"; 95 reg = <0x0 0x46e00000 0x8000>; 96 console-size = <0x4000>; 97 pmsg-size = <0x4000>; 98 }; 99 100 cont_splash_mem: framebuffer@67000000 { 101 reg = <0x0 0x67000000 0x00384000>; 102 no-map; 103 }; 104 }; 105 106 vdd_fixed_mmc2: regulator-fixed-mmc2 { 107 compatible = "regulator-fixed"; 108 regulator-name = "vdd_fixed_mmc2"; 109 regulator-max-microvolt = <2800000>; 110 regulator-min-microvolt = <2800000>; 111 gpio = <&gpc0 0 GPIO_ACTIVE_HIGH>; 112 enable-active-high; 113 }; 114 115 vibrator { 116 compatible = "regulator-haptic"; 117 haptic-supply = <&vdd_ldo32>; 118 min-microvolt = <3300000>; 119 max-microvolt = <3300000>; 120 }; 121}; 122 123&gpu { 124 status = "okay"; 125}; 126 127&hsi2c0 { 128 #address-cells = <1>; 129 #size-cells = <0>; 130 131 status = "okay"; 132 133 pmic@66 { 134 compatible = "samsung,s2mpu05-pmic"; 135 reg = <0x66>; 136 interrupt-parent = <&gpa0>; 137 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 138 139 pinctrl-names = "default"; 140 pinctrl-0 = <&pmic_irq>; 141 142 regulators { 143 vdd_buck1: buck1 { 144 regulator-name = "vdd_buck1"; 145 regulator-min-microvolt = <500000>; 146 regulator-max-microvolt = <1300000>; 147 regulator-always-on; 148 regulator-boot-on; 149 }; 150 151 vdd_buck2: buck2 { 152 regulator-name = "vdd_buck2"; 153 regulator-min-microvolt = <500000>; 154 regulator-max-microvolt = <1300000>; 155 regulator-always-on; 156 regulator-boot-on; 157 }; 158 159 vdd_buck3: buck3 { 160 regulator-name = "vdd_buck3"; 161 regulator-min-microvolt = <500000>; 162 regulator-max-microvolt = <1300000>; 163 regulator-always-on; 164 regulator-boot-on; 165 }; 166 167 vdd_buck4: buck4 { 168 regulator-name = "vdd_buck4"; 169 regulator-min-microvolt = <1200000>; 170 regulator-max-microvolt = <1500000>; 171 regulator-always-on; 172 regulator-boot-on; 173 }; 174 175 vdd_buck5: buck5 { 176 regulator-name = "vdd_buck5"; 177 regulator-min-microvolt = <1800000>; 178 regulator-max-microvolt = <2100000>; 179 regulator-always-on; 180 regulator-boot-on; 181 }; 182 183 vdd_ldo1: ldo1 { 184 regulator-name = "vdd_ldo1"; 185 regulator-min-microvolt = <650000>; 186 regulator-max-microvolt = <1350000>; 187 regulator-always-on; 188 regulator-boot-on; 189 }; 190 191 vdd_ldo2: ldo2 { 192 regulator-name = "vdd_ldo2"; 193 regulator-min-microvolt = <1800000>; 194 regulator-max-microvolt = <2800000>; 195 }; 196 197 vdd_ldo3: ldo3 { 198 regulator-name = "vdd_ldo3"; 199 regulator-min-microvolt = <800000>; 200 regulator-max-microvolt = <2375000>; 201 regulator-always-on; 202 regulator-boot-on; 203 }; 204 205 vdd_ldo4: ldo4 { 206 regulator-name = "vdd_ldo4"; 207 regulator-min-microvolt = <800000>; 208 regulator-max-microvolt = <1350000>; 209 regulator-always-on; 210 regulator-boot-on; 211 }; 212 213 vdd_ldo5: ldo5 { 214 regulator-name = "vdd_ldo5"; 215 regulator-min-microvolt = <800000>; 216 regulator-max-microvolt = <1350000>; 217 regulator-always-on; 218 regulator-boot-on; 219 }; 220 221 vdd_ldo6: ldo6 { 222 regulator-name = "vdd_ldo6"; 223 regulator-min-microvolt = <800000>; 224 regulator-max-microvolt = <1350000>; 225 regulator-always-on; 226 regulator-boot-on; 227 }; 228 229 vdd_ldo7: ldo7 { 230 regulator-name = "vdd_ldo7"; 231 regulator-min-microvolt = <800000>; 232 regulator-max-microvolt = <2375000>; 233 regulator-always-on; 234 regulator-boot-on; 235 }; 236 237 vdd_ldo8: ldo8 { 238 regulator-name = "vdd_ldo8"; 239 regulator-min-microvolt = <3300000>; 240 regulator-max-microvolt = <3300000>; 241 }; 242 243 vdd_ldo9: ldo9 { 244 regulator-name = "vdd_ldo9"; 245 regulator-min-microvolt = <650000>; 246 regulator-max-microvolt = <1350000>; 247 regulator-always-on; 248 regulator-boot-on; 249 }; 250 251 vdd_ldo10: ldo10 { 252 regulator-name = "vdd_ldo10"; 253 regulator-min-microvolt = <650000>; 254 regulator-max-microvolt = <1350000>; 255 regulator-always-on; 256 regulator-boot-on; 257 }; 258 259 vdd_ldo25: ldo25 { 260 regulator-name = "vdd_ldo25"; 261 regulator-min-microvolt = <800000>; 262 regulator-max-microvolt = <2375000>; 263 regulator-always-on; 264 regulator-boot-on; 265 }; 266 267 vdd_ldo26: ldo26 { 268 regulator-name = "vdd_ldo26"; 269 regulator-min-microvolt = <1800000>; 270 regulator-max-microvolt = <3375000>; 271 }; 272 273 vdd_ldo27: ldo27 { 274 regulator-name = "vdd_ldo27"; 275 regulator-min-microvolt = <800000>; 276 regulator-max-microvolt = <2375000>; 277 }; 278 279 vdd_ldo29: ldo29 { 280 regulator-name = "vdd_ldo29"; 281 regulator-min-microvolt = <3000000>; 282 regulator-max-microvolt = <3000000>; 283 regulator-always-on; 284 regulator-boot-on; 285 }; 286 287 vdd_ldo30: ldo30 { 288 regulator-name = "vdd_ldo30"; 289 regulator-min-microvolt = <1800000>; 290 regulator-max-microvolt = <1800000>; 291 regulator-always-on; 292 regulator-boot-on; 293 }; 294 295 vdd_ldo31: ldo31 { 296 regulator-name = "vdd_ldo31"; 297 regulator-min-microvolt = <2800000>; 298 regulator-max-microvolt = <2800000>; 299 regulator-always-on; 300 regulator-boot-on; 301 }; 302 303 vdd_ldo32: ldo32 { 304 regulator-name = "vdd_ldo32"; 305 regulator-min-microvolt = <3300000>; 306 regulator-max-microvolt = <3300000>; 307 }; 308 309 vdd_ldo33: ldo33 { 310 regulator-name = "vdd_ldo33"; 311 regulator-min-microvolt = <3300000>; 312 regulator-max-microvolt = <3300000>; 313 regulator-always-on; 314 regulator-boot-on; 315 }; 316 317 vdd_ldo34: ldo34 { 318 regulator-name = "vdd_ldo34"; 319 regulator-min-microvolt = <3300000>; 320 regulator-max-microvolt = <3300000>; 321 regulator-always-on; 322 regulator-boot-on; 323 }; 324 325 vdd_ldo35: ldo35 { 326 regulator-name = "vdd_ldo35"; 327 regulator-min-microvolt = <2800000>; 328 regulator-max-microvolt = <2800000>; 329 regulator-always-on; 330 regulator-boot-on; 331 }; 332 }; 333 }; 334}; 335 336&i2c1 { 337 samsung,i2c-sda-delay = <100>; 338 samsung,i2c-max-bus-freq = <400000>; 339 340 status = "okay"; 341 342 touchscreen@48 { 343 compatible = "melfas,mip4_ts"; 344 reg = <0x48>; 345 346 interrupt-parent = <&gpc3>; 347 interrupts = <2 IRQ_TYPE_EDGE_FALLING>; 348 349 pinctrl-names = "default"; 350 pinctrl-0 = <&touch_irq>; 351 }; 352}; 353 354&mmc0 { 355 pinctrl-names = "default"; 356 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_rdqs &sd0_bus1 &sd0_bus4 &sd0_bus8>; 357 358 vmmc-supply = <&vdd_ldo26>; 359 vqmmc-supply = <&vdd_ldo27>; 360 361 fifo-depth = <64>; 362 samsung,dw-mshc-ciu-div = <3>; 363 samsung,dw-mshc-sdr-timing = <0 4>; 364 samsung,dw-mshc-ddr-timing = <2 4>; 365 non-removable; 366 367 status = "okay"; 368}; 369 370&mmc1 { 371 #address-cells = <1>; 372 #size-cells = <0>; 373 374 pinctrl-names = "default"; 375 pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus1 &sd1_bus4>; 376 377 mmc-pwrseq = <&pwrseq_mmc1>; 378 379 bus-width = <4>; 380 fifo-depth = <64>; 381 samsung,dw-mshc-ciu-div = <3>; 382 samsung,dw-mshc-sdr-timing = <0 3>; 383 samsung,dw-mshc-ddr-timing = <1 2>; 384 non-removable; 385 cap-sd-highspeed; 386 cap-sdio-irq; 387 388 status = "okay"; 389 390 wifi@1 { 391 compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac"; 392 reg = <0x1>; 393 394 interrupt-names = "host-wake"; 395 interrupt-parent = <&gpa2>; 396 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 397 398 reset-gpios = <&gpd3 6 GPIO_ACTIVE_LOW>; 399 }; 400}; 401 402&mmc2 { 403 pinctrl-names = "default"; 404 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4 &dwmmc2_irq>; 405 406 vmmc-supply = <&vdd_fixed_mmc2>; 407 vqmmc-supply = <&vdd_ldo2>; 408 409 bus-width = <4>; 410 card-detect-delay = <200>; 411 fifo-depth = <64>; 412 samsung,dw-mshc-ciu-div = <3>; 413 samsung,dw-mshc-sdr-timing = <0 3>; 414 samsung,dw-mshc-ddr-timing = <1 2>; 415 sd-uhs-sdr50; 416 sd-uhs-sdr104; 417 broken-cd; 418 disable-wp; 419 420 status = "okay"; 421}; 422 423&oscclk { 424 clock-frequency = <26000000>; 425}; 426 427&pinctrl_alive { 428 dwmmc2_irq: dwmmc2-irq-pins { 429 samsung,pins = "gpa0-1"; 430 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 431 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 432 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 433 }; 434 435 fuel_irq: fuel-irq-pins { 436 samsung,pins = "gpa0-3"; 437 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 438 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 439 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 440 }; 441 442 key_home: key-home-pins { 443 samsung,pins = "gpa1-7"; 444 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 445 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 446 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 447 }; 448 449 key_power: key-power-pins { 450 samsung,pins = "gpa0-0"; 451 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 452 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 453 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 454 }; 455 456 key_voldown: key-voldown-pins { 457 samsung,pins = "gpa2-1"; 458 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 459 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 460 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 461 }; 462 463 key_volup: key-volup-pins { 464 samsung,pins = "gpa2-0"; 465 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 466 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 467 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 468 }; 469 470 pmic_irq: pmic-irq-pins { 471 samsung,pins = "gpa0-2"; 472 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; 473 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR3>; 474 }; 475}; 476 477&pinctrl_touch { 478 touch_irq: touch-irq-pins { 479 samsung,pins = "gpc3-2"; 480 samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 481 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 482 samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; 483 }; 484}; 485 486&serial2 { 487 status = "okay"; 488}; 489 490&usbdrd { 491 vdd33-supply = <&vdd_ldo8>; 492 493 status = "okay"; 494}; 495