1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2022, Matti Lehtimäki <matti.lehtimaki@gmail.com> 4 * Copyright (c) 2023, Bryant Mairs <bryant@mai.rs> 5 */ 6 7/dts-v1/; 8 9#include <dt-bindings/input/input.h> 10#include <dt-bindings/power/summit,smb347-charger.h> 11#include "qcom-msm8226.dtsi" 12#include "pm8226.dtsi" 13 14/delete-node/ &adsp_region; 15/delete-node/ &smem_region; 16 17/ { 18 model = "Samsung Galaxy Tab 4 8.0 Wi-Fi"; 19 compatible = "samsung,milletwifi", "qcom,apq8026"; 20 chassis-type = "tablet"; 21 22 aliases { 23 display0 = &framebuffer0; 24 mmc0 = &sdhc_1; /* SDC1 eMMC slot */ 25 mmc1 = &sdhc_2; /* SDC2 SD card slot */ 26 }; 27 28 chosen { 29 #address-cells = <1>; 30 #size-cells = <1>; 31 ranges; 32 33 stdout-path = "display0"; 34 35 framebuffer0: framebuffer@3200000 { 36 compatible = "simple-framebuffer"; 37 reg = <0x03200000 0x800000>; 38 width = <800>; 39 height = <1280>; 40 stride = <(800 * 3)>; 41 format = "r8g8b8"; 42 }; 43 }; 44 45 gpio-hall-sensor { 46 compatible = "gpio-keys"; 47 48 event-hall-sensor { 49 label = "Cover"; 50 gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; 51 linux,input-type = <EV_SW>; 52 linux,code = <SW_LID>; 53 debounce-interval = <15>; 54 linux,can-disable; 55 wakeup-source; 56 }; 57 }; 58 59 gpio-keys { 60 compatible = "gpio-keys"; 61 autorepeat; 62 63 key-home { 64 label = "Home"; 65 gpios = <&tlmm 108 GPIO_ACTIVE_LOW>; 66 linux,code = <KEY_HOMEPAGE>; 67 debounce-interval = <15>; 68 }; 69 70 key-volume-down { 71 label = "Volume Down"; 72 gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; 73 linux,code = <KEY_VOLUMEDOWN>; 74 debounce-interval = <15>; 75 }; 76 77 key-volume-up { 78 label = "Volume Up"; 79 gpios = <&tlmm 106 GPIO_ACTIVE_LOW>; 80 linux,code = <KEY_VOLUMEUP>; 81 debounce-interval = <15>; 82 }; 83 }; 84 85 i2c-backlight { 86 compatible = "i2c-gpio"; 87 sda-gpios = <&tlmm 20 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 88 scl-gpios = <&tlmm 21 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 89 90 pinctrl-0 = <&backlight_i2c_default_state>; 91 pinctrl-names = "default"; 92 93 i2c-gpio,delay-us = <4>; 94 95 #address-cells = <1>; 96 #size-cells = <0>; 97 98 backlight@2c { 99 compatible = "ti,lp8556"; 100 reg = <0x2c>; 101 enable-supply = <®_backlight_vddio>; 102 103 dev-ctrl = /bits/ 8 <0x80>; 104 init-brt = /bits/ 8 <0x3f>; 105 106 /* 107 * Change transition duration: 200ms, Change 108 * transition strength: heavy, PWM hysteresis: 109 * 1-bit w/ 8-bit resolution 110 */ 111 rom-a3h { 112 rom-addr = /bits/ 8 <0xa3>; 113 rom-val = /bits/ 8 <0x5e>; 114 }; 115 116 /* 117 * PWM phase configuration: 3-phase/3 drivers 118 * (0, 120deg, 240deg, -, -, -), 119 * PWM frequency: 9616Hz (10-bit) 120 */ 121 rom-a5h { 122 rom-addr = /bits/ 8 <0xa5>; 123 rom-val = /bits/ 8 <0x34>; 124 }; 125 126 /* 127 * Enable LED drivers 2 & 3, Boot inductor 128 * current limit: 1.5A/2.6A 129 */ 130 rom-a7h { 131 rom-addr = /bits/ 8 <0xa7>; 132 rom-val = /bits/ 8 <0xfa>; 133 }; 134 }; 135 }; 136 137 reg_backlight_vddio: regulator-backlight-vddio { 138 compatible = "regulator-fixed"; 139 regulator-name = "backlight_vddio"; 140 regulator-min-microvolt = <1800000>; 141 regulator-max-microvolt = <1800000>; 142 143 gpio = <&tlmm 74 GPIO_ACTIVE_HIGH>; 144 enable-active-high; 145 146 pinctrl-0 = <&backlight_vddio_default_state>; 147 pinctrl-names = "default"; 148 }; 149 150 reg_tsp_1p8v: regulator-tsp-1p8v { 151 compatible = "regulator-fixed"; 152 regulator-name = "tsp_1p8v"; 153 regulator-min-microvolt = <1800000>; 154 regulator-max-microvolt = <1800000>; 155 156 gpio = <&tlmm 114 GPIO_ACTIVE_HIGH>; 157 enable-active-high; 158 159 pinctrl-0 = <&tsp_en1_default_state>; 160 pinctrl-names = "default"; 161 }; 162 163 reg_tsp_3p3v: regulator-tsp-3p3v { 164 compatible = "regulator-fixed"; 165 regulator-name = "tsp_3p3v"; 166 regulator-min-microvolt = <3300000>; 167 regulator-max-microvolt = <3300000>; 168 169 gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>; 170 enable-active-high; 171 172 pinctrl-0 = <&tsp_en_default_state>; 173 pinctrl-names = "default"; 174 }; 175 176 reserved-memory { 177 #address-cells = <1>; 178 #size-cells = <1>; 179 ranges; 180 181 framebuffer@3200000 { 182 reg = <0x03200000 0x800000>; 183 no-map; 184 }; 185 186 mpss_region: mpss@8400000 { 187 reg = <0x08400000 0x1f00000>; 188 no-map; 189 }; 190 191 mba_region: mba@a300000 { 192 reg = <0x0a300000 0x100000>; 193 no-map; 194 }; 195 196 reserved@cb00000 { 197 reg = <0x0cb00000 0x700000>; 198 no-map; 199 }; 200 201 wcnss_region: wcnss@d200000 { 202 reg = <0x0d200000 0x700000>; 203 no-map; 204 }; 205 206 adsp_region: adsp@d900000 { 207 reg = <0x0d900000 0x1800000>; 208 no-map; 209 }; 210 211 venus@f100000 { 212 reg = <0x0f100000 0x500000>; 213 no-map; 214 }; 215 216 smem_region: smem@fa00000 { 217 reg = <0x0fa00000 0x100000>; 218 no-map; 219 }; 220 221 reserved@fb00000 { 222 reg = <0x0fb00000 0x260000>; 223 no-map; 224 }; 225 226 rfsa@fd60000 { 227 reg = <0x0fd60000 0x20000>; 228 no-map; 229 }; 230 231 rmtfs@fd80000 { 232 compatible = "qcom,rmtfs-mem"; 233 reg = <0x0fd80000 0x180000>; 234 no-map; 235 236 qcom,client-id = <1>; 237 }; 238 }; 239}; 240 241&blsp1_i2c2 { 242 status = "okay"; 243 244 accelerometer@1d { 245 compatible = "st,lis2hh12"; 246 reg = <0x1d>; 247 248 interrupts-extended = <&tlmm 54 IRQ_TYPE_LEVEL_HIGH>; 249 250 pinctrl-0 = <&accel_int_default_state>; 251 pinctrl-names = "default"; 252 253 vdd-supply = <&pm8226_l19>; 254 vddio-supply = <&pm8226_lvs1>; 255 256 mount-matrix = "0", "1", "0", 257 "-1", "0", "0", 258 "0", "0", "1"; 259 260 st,drdy-int-pin = <1>; 261 }; 262}; 263 264&blsp1_i2c3 { 265 status = "okay"; 266 267 charger@6a { 268 compatible = "summit,smb358"; 269 reg = <0x6a>; 270 271 interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_FALLING>; 272 273 pinctrl-0 = <&charger_int_default_state>; 274 pinctrl-names = "default"; 275 276 summit,enable-usb-charging; 277 summit,enable-charge-control = <SMB3XX_CHG_ENABLE_SW>; 278 summit,fast-voltage-threshold-microvolt = <3000000>; 279 summit,chip-temperature-threshold-celsius = <130>; 280 summit,usb-current-limit-microamp = <1500000>; 281 }; 282}; 283 284&blsp1_i2c4 { 285 status = "okay"; 286 287 muic: usb-switch@25 { 288 compatible = "siliconmitus,sm5502-muic"; 289 reg = <0x25>; 290 291 interrupts-extended = <&tlmm 67 IRQ_TYPE_EDGE_FALLING>; 292 293 pinctrl-0 = <&muic_int_default_state>; 294 pinctrl-names = "default"; 295 }; 296}; 297 298&blsp1_i2c5 { 299 status = "okay"; 300 301 touchscreen@48 { 302 compatible = "melfas,mms252", "melfas,mms114"; 303 reg = <0x48>; 304 interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>; 305 touchscreen-size-x = <800>; 306 touchscreen-size-y = <1280>; 307 avdd-supply = <®_tsp_3p3v>; 308 vdd-supply = <®_tsp_1p8v>; 309 linux,keycodes = <KEY_APPSELECT KEY_BACK>; 310 311 pinctrl-0 = <&tsp_int_rst_default_state>; 312 pinctrl-names = "default"; 313 }; 314}; 315 316&rpm_requests { 317 regulators { 318 compatible = "qcom,rpm-pm8226-regulators"; 319 320 pm8226_s3: s3 { 321 regulator-min-microvolt = <1200000>; 322 regulator-max-microvolt = <1300000>; 323 }; 324 325 pm8226_s4: s4 { 326 regulator-min-microvolt = <1800000>; 327 regulator-max-microvolt = <1800000>; 328 }; 329 330 pm8226_s5: s5 { 331 regulator-min-microvolt = <1150000>; 332 regulator-max-microvolt = <1150000>; 333 }; 334 335 pm8226_l1: l1 { 336 regulator-min-microvolt = <1225000>; 337 regulator-max-microvolt = <1225000>; 338 }; 339 340 pm8226_l2: l2 { 341 regulator-min-microvolt = <1200000>; 342 regulator-max-microvolt = <1200000>; 343 }; 344 345 pm8226_l3: l3 { 346 regulator-min-microvolt = <750000>; 347 regulator-max-microvolt = <1337500>; 348 regulator-always-on; 349 }; 350 351 pm8226_l4: l4 { 352 regulator-min-microvolt = <1200000>; 353 regulator-max-microvolt = <1200000>; 354 }; 355 356 pm8226_l5: l5 { 357 regulator-min-microvolt = <1200000>; 358 regulator-max-microvolt = <1200000>; 359 }; 360 361 pm8226_l6: l6 { 362 regulator-min-microvolt = <1800000>; 363 regulator-max-microvolt = <1800000>; 364 regulator-always-on; 365 }; 366 367 pm8226_l7: l7 { 368 regulator-min-microvolt = <1850000>; 369 regulator-max-microvolt = <1850000>; 370 }; 371 372 pm8226_l8: l8 { 373 regulator-min-microvolt = <1800000>; 374 regulator-max-microvolt = <1800000>; 375 regulator-always-on; 376 }; 377 378 pm8226_l9: l9 { 379 regulator-min-microvolt = <2050000>; 380 regulator-max-microvolt = <2050000>; 381 }; 382 383 pm8226_l10: l10 { 384 regulator-min-microvolt = <1800000>; 385 regulator-max-microvolt = <1800000>; 386 }; 387 388 pm8226_l12: l12 { 389 regulator-min-microvolt = <1800000>; 390 regulator-max-microvolt = <1800000>; 391 }; 392 393 pm8226_l14: l14 { 394 regulator-min-microvolt = <2750000>; 395 regulator-max-microvolt = <2750000>; 396 }; 397 398 pm8226_l15: l15 { 399 regulator-min-microvolt = <1800000>; 400 regulator-max-microvolt = <3300000>; 401 }; 402 403 pm8226_l16: l16 { 404 regulator-min-microvolt = <3000000>; 405 regulator-max-microvolt = <3350000>; 406 }; 407 408 pm8226_l17: l17 { 409 regulator-min-microvolt = <2950000>; 410 regulator-max-microvolt = <2950000>; 411 412 regulator-system-load = <200000>; 413 regulator-allow-set-load; 414 regulator-always-on; 415 }; 416 417 pm8226_l18: l18 { 418 regulator-min-microvolt = <2950000>; 419 regulator-max-microvolt = <2950000>; 420 }; 421 422 pm8226_l19: l19 { 423 regulator-min-microvolt = <2850000>; 424 regulator-max-microvolt = <3000000>; 425 }; 426 427 pm8226_l20: l20 { 428 regulator-min-microvolt = <3075000>; 429 regulator-max-microvolt = <3075000>; 430 }; 431 432 pm8226_l21: l21 { 433 regulator-min-microvolt = <1800000>; 434 regulator-max-microvolt = <2950000>; 435 }; 436 437 pm8226_l22: l22 { 438 regulator-min-microvolt = <1800000>; 439 regulator-max-microvolt = <3000000>; 440 }; 441 442 pm8226_l23: l23 { 443 regulator-min-microvolt = <1800000>; 444 regulator-max-microvolt = <3300000>; 445 }; 446 447 pm8226_l24: l24 { 448 regulator-min-microvolt = <1300000>; 449 regulator-max-microvolt = <1350000>; 450 }; 451 452 pm8226_l25: l25 { 453 regulator-min-microvolt = <1775000>; 454 regulator-max-microvolt = <2125000>; 455 }; 456 457 pm8226_l26: l26 { 458 regulator-min-microvolt = <1225000>; 459 regulator-max-microvolt = <1300000>; 460 }; 461 462 pm8226_l27: l27 { 463 regulator-min-microvolt = <1800000>; 464 regulator-max-microvolt = <1800000>; 465 }; 466 467 pm8226_l28: l28 { 468 regulator-min-microvolt = <1800000>; 469 regulator-max-microvolt = <2950000>; 470 }; 471 472 pm8226_lvs1: lvs1 {}; 473 }; 474}; 475 476&sdhc_1 { 477 vmmc-supply = <&pm8226_l17>; 478 vqmmc-supply = <&pm8226_l6>; 479 480 bus-width = <8>; 481 non-removable; 482 483 status = "okay"; 484}; 485 486&sdhc_2 { 487 vmmc-supply = <&pm8226_l18>; 488 vqmmc-supply = <&pm8226_l21>; 489 490 bus-width = <4>; 491 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 492 493 pinctrl-0 = <&sdhc2_default_state>, <&sdc2_cd_default_state>; 494 pinctrl-names = "default"; 495 496 status = "okay"; 497}; 498 499&tlmm { 500 accel_int_default_state: accel-int-default-state { 501 pins = "gpio54"; 502 function = "gpio"; 503 drive-strength = <2>; 504 bias-disable; 505 }; 506 507 backlight_i2c_default_state: backlight-i2c-default-state { 508 pins = "gpio20", "gpio21"; 509 function = "gpio"; 510 drive-strength = <2>; 511 bias-disable; 512 }; 513 514 backlight_vddio_default_state: backlight-vddio-default-state { 515 pins = "gpio74"; 516 function = "gpio"; 517 drive-strength = <2>; 518 bias-disable; 519 }; 520 521 charger_int_default_state: charger-int-default-state { 522 pins = "gpio115"; 523 function = "gpio"; 524 drive-strength = <2>; 525 bias-disable; 526 }; 527 528 muic_int_default_state: muic-int-default-state { 529 pins = "gpio67"; 530 function = "gpio"; 531 drive-strength = <2>; 532 bias-disable; 533 }; 534 535 sdc2_cd_default_state: sdc2-cd-default-state { 536 pins = "gpio38"; 537 function = "gpio"; 538 drive-strength = <2>; 539 bias-disable; 540 }; 541 542 tsp_en_default_state: tsp-en-default-state { 543 pins = "gpio31"; 544 function = "gpio"; 545 drive-strength = <2>; 546 bias-disable; 547 }; 548 549 tsp_en1_default_state: tsp-en1-default-state { 550 pins = "gpio114"; 551 function = "gpio"; 552 drive-strength = <2>; 553 bias-disable; 554 }; 555 556 tsp_int_rst_default_state: tsp-int-rst-default-state { 557 pins = "gpio17"; 558 function = "gpio"; 559 drive-strength = <10>; 560 bias-pull-up; 561 }; 562}; 563 564&usb { 565 extcon = <&muic>, <&muic>; 566 status = "okay"; 567}; 568 569&usb_hs_phy { 570 extcon = <&muic>; 571 v1p8-supply = <&pm8226_l10>; 572 v3p3-supply = <&pm8226_l20>; 573}; 574