1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * Devicetree for the Samsung Galaxy Exhibit S 4 * the "TMO" shall be read "T-Mobile" as this 5 * for T-Mobile in the United States. 6 * 7 * This phone is closely related to the Codina 8 * - No CPU speed cap, full ~1GHz rate 9 * - Different power management IC, AB8505 10 * - As AB8505 has a micro USB phy, no TI TSU6 11 * - Different power routing such as the remov 12 * touchscreen in favor of using the AB8505 13 * - Using a regulator for the key backlight L 14 * - Using the Samsung S6D27A1 panel by defaul 15 * - The panel is using one of the ordinary AB 16 * - WiFi/Bluetooth combi chip upgraded to BCM 17 * - GPIO for backlight control moved from 68 18 */ 19 20 /dts-v1/; 21 #include "ste-db8500.dtsi" 22 #include "ste-ab8505.dtsi" 23 #include "ste-dbx5x0-pinctrl.dtsi" 24 #include <dt-bindings/gpio/gpio.h> 25 #include <dt-bindings/leds/common.h> 26 #include <dt-bindings/input/input.h> 27 #include <dt-bindings/interrupt-controller/irq 28 29 / { 30 model = "Samsung Galaxy Exhibit (SGH-T 31 compatible = "samsung,codina-tmo", "st 32 33 chosen { 34 stdout-path = &serial2; 35 }; 36 37 battery: battery { 38 compatible = "samsung,eb425161 39 }; 40 41 thermal-zones { 42 battery-thermal { 43 /* This zone will be p 44 polling-delay = <0>; 45 polling-delay-passive 46 thermal-sensors = <&ba 47 48 trips { 49 battery-crit-h 50 temper 51 hyster 52 type = 53 }; 54 }; 55 }; 56 }; 57 58 bat_therm: thermistor { 59 compatible = "samsung,1404-001 60 io-channels = <&gpadc 0x02>; / 61 pullup-uv = <1800000>; 62 pullup-ohm = <230000>; 63 pulldown-ohm = <0>; 64 #thermal-sensor-cells = <0>; 65 }; 66 67 /* TI TXS0206 level translator for 2.9 68 sd_level_translator: regulator-gpio { 69 compatible = "regulator-fixed" 70 71 /* GPIO87 EN */ 72 gpios = <&gpio2 23 GPIO_ACTIVE 73 enable-active-high; 74 75 regulator-name = "sd-level-tra 76 regulator-min-microvolt = <290 77 regulator-max-microvolt = <290 78 regulator-type = "voltage"; 79 80 startup-delay-us = <200>; 81 82 pinctrl-names = "default"; 83 pinctrl-0 = <&sd_level_transla 84 }; 85 86 /* External LDO MIC5366-3.3YMT for eMM 87 ldo_3v3_reg: regulator-gpio-ldo-3v3 { 88 compatible = "regulator-fixed" 89 /* Supplied in turn by VBAT */ 90 regulator-name = "VMEM_3V3"; 91 regulator-min-microvolt = <330 92 regulator-max-microvolt = <330 93 gpios = <&gpio6 31 GPIO_ACTIVE 94 startup-delay-us = <5000>; 95 enable-active-high; 96 pinctrl-names = "default"; 97 pinctrl-0 = <&emmc_ldo_en_defa 98 }; 99 100 /* 101 * External Ricoh RP152L010B-TR LCD LD 102 * LCD_PWR_EN controls both the 3.0V o 103 */ 104 lcd_3v0_reg: regulator-gpio-lcd-3v0 { 105 compatible = "regulator-fixed" 106 /* Supplied in turn by VBAT */ 107 regulator-name = "VREG_LCD_3.0 108 regulator-min-microvolt = <300 109 regulator-max-microvolt = <300 110 /* GPIO219 controls this regul 111 gpio = <&gpio6 27 GPIO_ACTIVE_ 112 enable-active-high; 113 pinctrl-names = "default"; 114 pinctrl-0 = <&lcd_pwr_en_defau 115 }; 116 117 /* 118 * This regulator is a GPIO line that 119 * line WL_REG_ON high and enables the 120 * inside the chip. Unfortunatley it i 121 * WLAN_RST_N on the schematic but it 122 * 123 * The voltage specified here is only 124 * the for the SDIO connector, the chi 125 * directly to VBAT. 126 */ 127 wl_reg: regulator-gpio-wlan { 128 compatible = "regulator-fixed" 129 regulator-name = "WL_REG_ON"; 130 regulator-min-microvolt = <300 131 regulator-max-microvolt = <300 132 startup-delay-us = <100000>; 133 /* GPIO215 (WLAN_RST_N to WL_R 134 gpio = <&gpio6 23 GPIO_ACTIVE_ 135 enable-active-high; 136 pinctrl-names = "default"; 137 pinctrl-0 = <&wlan_ldo_en_defa 138 }; 139 140 vibrator { 141 compatible = "gpio-vibrator"; 142 /* GPIO195 "MOT_EN" */ 143 enable-gpios = <&gpio6 3 GPIO_ 144 pinctrl-names = "default"; 145 pinctrl-0 = <&vibrator_default 146 }; 147 148 gpio-keys { 149 compatible = "gpio-keys"; 150 pinctrl-names = "default"; 151 pinctrl-0 = <&gpio_keys_defaul 152 153 button-home { 154 linux,code = <KEY_HOME 155 label = "HOME"; 156 /* GPIO91 */ 157 gpios = <&gpio2 27 GPI 158 }; 159 button-volup { 160 linux,code = <KEY_VOLU 161 label = "VOL+"; 162 /* GPIO67 */ 163 gpios = <&gpio2 3 GPIO 164 }; 165 button-voldown { 166 linux,code = <KEY_VOLU 167 label = "VOL-"; 168 /* GPIO92 */ 169 gpios = <&gpio2 28 GPI 170 }; 171 }; 172 173 led-touchkeys { 174 compatible = "regulator-led"; 175 vled-supply = <&ab8500_ldo_aux 176 default-state = "on"; 177 function = LED_FUNCTION_KBD_BA 178 color = <LED_COLOR_ID_WHITE>; 179 }; 180 181 ktd253: backlight { 182 compatible = "kinetic,ktd253"; 183 /* GPIO69 is used on Codina R0 184 enable-gpios = <&gpio2 5 GPIO_ 185 /* Default to 13/32 brightness 186 default-brightness = <13>; 187 pinctrl-names = "default"; 188 pinctrl-0 = <&ktd253_backlight 189 }; 190 191 /* Richtek RT8515GQW Flash LED Driver 192 flash { 193 compatible = "richtek,rt8515"; 194 /* GPIO 140 */ 195 enf-gpios = <&gpio4 12 GPIO_AC 196 /* GPIO 141 */ 197 ent-gpios = <&gpio4 13 GPIO_AC 198 /* 199 * RFS is 16 kOhm and RTS is 1 200 * the flash max current 343mA 201 * current 55 mA. 202 */ 203 richtek,rfs-ohms = <16000>; 204 richtek,rts-ohms = <100000>; 205 pinctrl-names = "default"; 206 pinctrl-0 = <&gpio_flash_defau 207 208 led { 209 function = LED_FUNCTIO 210 color = <LED_COLOR_ID_ 211 flash-max-timeout-us = 212 flash-max-microamp = < 213 led-max-microamp = <55 214 }; 215 }; 216 217 /* Bit-banged I2C on GPIO143 and GPIO1 218 i2c-gpio-0 { 219 compatible = "i2c-gpio"; 220 sda-gpios = <&gpio4 16 (GPIO_A 221 scl-gpios = <&gpio4 15 (GPIO_A 222 pinctrl-names = "default"; 223 pinctrl-0 = <&i2c_gpio_0_defau 224 #address-cells = <1>; 225 #size-cells = <0>; 226 227 /* TODO: this should also be u 228 }; 229 230 /* Bit-banged I2C on GPIO151 and GPIO1 231 i2c-gpio-1 { 232 compatible = "i2c-gpio"; 233 sda-gpios = <&gpio4 24 (GPIO_A 234 scl-gpios = <&gpio4 23 (GPIO_A 235 pinctrl-names = "default"; 236 pinctrl-0 = <&i2c_gpio_1_defau 237 #address-cells = <1>; 238 #size-cells = <0>; 239 240 magnetometer@c { 241 compatible = "alps,hsc 242 reg = <0x0c>; 243 clock-frequency = <400 244 245 avdd-supply = <&ab8500 246 dvdd-supply = <&ab8500 247 }; 248 }; 249 250 spi { 251 compatible = "spi-gpio"; 252 /* Clock on GPIO220, pin SCL * 253 sck-gpios = <&gpio6 28 GPIO_AC 254 /* MOSI on GPIO224, pin SDI "s 255 mosi-gpios = <&gpio7 0 GPIO_AC 256 /* MISO on GPIO225, pin SDO "s 257 miso-gpios = <&gpio7 1 GPIO_AC 258 /* Chip select on GPIO201 */ 259 cs-gpios = <&gpio6 9 GPIO_ACTI 260 num-chipselects = <1>; 261 262 pinctrl-names = "default"; 263 pinctrl-0 = <&spi_gpio_0_defau 264 #address-cells = <1>; 265 #size-cells = <0>; 266 267 panel@0 { 268 compatible = "samsung, 269 spi-max-frequency = <1 270 /* TYPE 3: inverse clo 271 spi-cpha; 272 spi-cpol; 273 274 reg = <0>; 275 vci-supply = <&lcd_3v0 276 vccio-supply = <&ab850 277 278 /* Reset on GPIO139 */ 279 reset-gpios = <&gpio4 280 /* LCD_VGH/LCD_DETECT, 281 interrupt-parent = <&g 282 interrupts = <29 IRQ_T 283 284 pinctrl-names = "defau 285 pinctrl-0 = <&panel_de 286 backlight = <&ktd253>; 287 288 port { 289 panel_in: endp 290 remote 291 }; 292 }; 293 }; 294 }; 295 296 soc { 297 /* External Micro SD slot */ 298 mmc@80126000 { 299 arm,primecell-periphid 300 max-frequency = <10000 301 bus-width = <4>; 302 cap-sd-highspeed; 303 cap-mmc-highspeed; 304 st,sig-pin-fbclk; 305 full-pwr-cycle; 306 /* MMC is powered by A 307 vmmc-supply = <&ab8500 308 /* 2.9 V level transla 309 vqmmc-supply = <&sd_le 310 pinctrl-names = "defau 311 pinctrl-0 = <&mc0_a_2_ 312 pinctrl-1 = <&mc0_a_2_ 313 cd-gpios = <&gpio6 25 314 status = "okay"; 315 }; 316 317 /* WLAN SDIO channel */ 318 mmc@80118000 { 319 arm,primecell-periphid 320 max-frequency = <50000 321 bus-width = <4>; 322 non-removable; 323 cap-sd-highspeed; 324 pinctrl-names = "defau 325 pinctrl-0 = <&mc1_a_2_ 326 pinctrl-1 = <&mc1_a_2_ 327 /* 328 * GPIO-controlled vol 329 * the WL_REG_ON line 330 * Represented as regu 331 */ 332 vmmc-supply = <&wl_reg 333 334 #address-cells = <1>; 335 #size-cells = <0>; 336 status = "okay"; 337 338 wifi@1 { 339 compatible = " 340 reg = <1>; 341 /* GPIO216 WL_ 342 interrupt-pare 343 interrupts = < 344 interrupt-name 345 pinctrl-names 346 pinctrl-0 = <& 347 }; 348 }; 349 350 /* eMMC */ 351 mmc@80005000 { 352 arm,primecell-periphid 353 max-frequency = <10000 354 bus-width = <8>; 355 non-removable; 356 cap-mmc-highspeed; 357 mmc-ddr-1_8v; 358 no-sdio; 359 no-sd; 360 vmmc-supply = <&ldo_3v 361 pinctrl-names = "defau 362 /* 363 * GPIO130 will be set 364 * pulling the reset h 365 */ 366 pinctrl-0 = <&mc2_a_1_ 367 pinctrl-1 = <&mc2_a_1_ 368 status = "okay"; 369 }; 370 371 /* GBF (Bluetooth) UART */ 372 serial@80120000 { 373 pinctrl-names = "defau 374 pinctrl-0 = <&u0_a_1_d 375 pinctrl-1 = <&u0_a_1_s 376 status = "okay"; 377 378 bluetooth { 379 /* BCM4334B0 a 380 compatible = " 381 /* GPIO222 rai 382 shutdown-gpios 383 /* BT_WAKE on 384 device-wakeup- 385 /* BT_HOST_WAK 386 /* FIXME: conv 387 host-wakeup-gp 388 /* BT_RST_N on 389 reset-gpios = 390 pinctrl-names 391 pinctrl-0 = <& 392 }; 393 }; 394 395 /* GPS UART */ 396 serial@80121000 { 397 status = "okay"; 398 pinctrl-names = "defau 399 /* CTS/RTS is not used 400 pinctrl-0 = <&u1rxtx_a 401 pinctrl-1 = <&u1rxtx_a 402 /* FIXME: add a device 403 }; 404 405 /* Debugging console UART conn 406 serial@80007000 { 407 status = "okay"; 408 pinctrl-names = "defau 409 pinctrl-0 = <&u2rxtx_c 410 pinctrl-1 = <&u2rxtx_c 411 }; 412 413 prcmu@80157000 { 414 ab8505 { 415 phy { 416 pinctr 417 pinctr 418 pinctr 419 }; 420 421 ab8500_fg { 422 line-i 423 }; 424 425 /* This is mos 426 regulator { 427 ab8500 428 429 430 431 }; 432 433 ab8500 434 435 436 437 }; 438 439 ab8500 440 441 }; 442 443 ab8500 444 445 446 447 448 449 450 451 }; 452 453 ab8500 454 455 456 457 }; 458 459 ab8500 460 461 462 463 464 }; 465 466 ab8500 467 468 }; 469 }; 470 }; 471 }; 472 473 /* I2C0 also known as "AGC I2C 474 i2c@80004000 { 475 status = "okay"; 476 pinctrl-names = "defau 477 pinctrl-0 = <&i2c0_a_1 478 pinctrl-1 = <&i2c0_a_1 479 480 proximity@39 { 481 /* Codina has 482 compatible = " 483 clock-frequenc 484 reg = <0x39>; 485 486 /* IRQ on GPIO 487 interrupt-pare 488 interrupts = < 489 vdd-supply = < 490 vddio-supply = 491 pinctrl-names 492 pinctrl-0 = <& 493 }; 494 }; 495 496 /* I2C2 on GPIO10 and GPIO11 a 497 i2c@80128000 { 498 status = "okay"; 499 pinctrl-names = "defau 500 pinctrl-0 = <&i2c2_b_2 501 pinctrl-1 = <&i2c2_b_2 502 503 /* Bosch BMA254 accele 504 accelerometer@18 { 505 compatible = " 506 reg = <0x18>; 507 mount-matrix = 508 509 510 vddio-supply = 511 vdd-supply = < 512 }; 513 }; 514 515 /* I2C3 */ 516 i2c@80110000 { 517 status = "okay"; 518 519 pinctrl-names = "defau 520 pinctrl-0 = <&i2c3_c_2 521 pinctrl-1 = <&i2c3_c_2 522 523 /* TODO: write binding 524 525 /* Zinitix BT404 ISP p 526 isp@50 { 527 compatible = " 528 reg = <0x50>; 529 pinctrl-names 530 pinctrl-0 = <& 531 }; 532 533 /* Zinitix BT404 touch 534 touchscreen@20 { 535 compatible = " 536 reg = <0x20>; 537 /* GPIO218 (TS 538 interrupt-pare 539 interrupts = < 540 vcca-supply = 541 vdd-supply = < 542 zinitix,mode = 543 touchscreen-si 544 touchscreen-si 545 pinctrl-names 546 pinctrl-0 = <& 547 }; 548 }; 549 550 mcde@a0350000 { 551 status = "okay"; 552 pinctrl-names = "defau 553 pinctrl-0 = <&dpi_defa 554 555 port { 556 display_out: e 557 remote 558 }; 559 }; 560 }; 561 }; 562 }; 563 564 &pinctrl { 565 /* 566 * This extends the MC0_A_2 default co 567 * the card detect GPIO217 line. 568 */ 569 sdi0 { 570 mc0_a_2_default { 571 default_cfg4 { 572 pins = "GPIO21 573 ste,config = < 574 }; 575 }; 576 }; 577 sdi2 { 578 /* 579 * GPIO130 should be set in GP 580 * pulled down. (Not connected 581 */ 582 mc2_a_1_default { 583 default_cfg2 { 584 pins = "GPIO13 585 ste,config = < 586 }; 587 }; 588 }; 589 /* GPIO that enables the 2.9V SD card 590 sd-level-translator { 591 sd_level_translator_default: s 592 /* level shifter on GP 593 codina_cfg1 { 594 pins = "GPIO87 595 ste,config = < 596 }; 597 }; 598 }; 599 /* GPIO that enables the LDO regulator 600 emmc-ldo { 601 emmc_ldo_en_default_mode: emmc 602 /* LDO enable on GPIO2 603 codina_cfg1 { 604 pins = "GPIO22 605 ste,config = < 606 }; 607 }; 608 }; 609 /* GPIOs for panel control */ 610 panel { 611 panel_default_mode: panel_defa 612 codina_cfg1 { 613 /* Reset line 614 pins = "GPIO13 615 ste,config = < 616 }; 617 codina_cfg2 { 618 /* ESD IRQ lin 619 pins = "GPIO93 620 ste,config = < 621 }; 622 }; 623 }; 624 /* GPIO that enables the LDO regulator 625 lcd-ldo { 626 lcd_pwr_en_default_mode: lcd_p 627 /* LCD_PWR_EN on GPIO2 628 codina_cfg1 { 629 pins = "GPIO21 630 ste,config = < 631 }; 632 }; 633 }; 634 /* GPIO that enables the WLAN internal 635 wlan-ldo { 636 wlan_ldo_en_default: wlan_ldo_ 637 /* GPIO215 named WLAN_ 638 codina_cfg1 { 639 pins = "GPIO21 640 ste,config = < 641 }; 642 }; 643 }; 644 /* Backlight GPIO */ 645 backlight { 646 ktd253_backlight_default_mode: 647 skomer_cfg1 { 648 pins = "GPIO69 649 ste,config = < 650 }; 651 }; 652 }; 653 /* Flash and torch */ 654 flash { 655 gpio_flash_default_mode: flash 656 codina_cfg1 { 657 pins = "GPIO14 658 ste,config = < 659 }; 660 }; 661 }; 662 /* GPIO keys */ 663 gpio-keys { 664 gpio_keys_default_mode: gpio_k 665 skomer_cfg1 { 666 pins = "GPIO67 667 "GPIO91 668 "GPIO92 669 ste,config = < 670 }; 671 }; 672 }; 673 /* Interrupt line for the Zinitix BT40 674 tsp { 675 tsp_default: tsp_default { 676 codina_cfg1 { 677 pins = "GPIO21 678 ste,config = < 679 }; 680 }; 681 }; 682 /* Interrupt line for light/proximity 683 tmd2672 { 684 tmd2672_codina_default: tmd267 685 codina_cfg1 { 686 pins = "GPIO14 687 ste,config = < 688 }; 689 }; 690 }; 691 /* GPIO-based I2C bus for subpmu */ 692 i2c-gpio-0 { 693 i2c_gpio_0_default: i2c_gpio_0 694 codina_cfg1 { 695 pins = "GPIO14 696 ste,config = < 697 }; 698 }; 699 }; 700 /* GPIO-based I2C bus for the NFC */ 701 i2c-gpio-1 { 702 i2c_gpio_1_default: i2c_gpio_1 703 codina_cfg1 { 704 pins = "GPIO15 705 ste,config = < 706 }; 707 }; 708 }; 709 /* GPIO-based SPI bus for the display 710 spi-gpio-0 { 711 spi_gpio_0_default: spi_gpio_0 712 codina_cfg1 { 713 pins = "GPIO22 714 ste,config = < 715 }; 716 codina_cfg2 { 717 pins = "GPIO22 718 /* Needs pull 719 ste,config = < 720 }; 721 }; 722 spi_gpio_0_sleep: spi_gpio_0_s 723 codina_cfg1 { 724 pins = "GPIO22 725 "GPIO22 726 ste,config = < 727 }; 728 }; 729 }; 730 wlan { 731 wlan_default_mode: wlan_defaul 732 /* GPIO216 for WL_HOST 733 codina_cfg2 { 734 pins = "GPIO21 735 ste,config = < 736 }; 737 }; 738 }; 739 bluetooth { 740 bluetooth_default_mode: blueto 741 /* GPIO199 BT_WAKE and 742 codina_cfg1 { 743 pins = "GPIO19 744 ste,config = < 745 }; 746 /* GPIO97 BT_HOST_WAKE 747 codina_cfg2 { 748 pins = "GPIO97 749 ste,config = < 750 }; 751 /* GPIO209 BT_RST_N */ 752 codina_cfg3 { 753 pins = "GPIO20 754 ste,config = < 755 }; 756 }; 757 }; 758 vibrator { 759 vibrator_default: vibrator_def 760 codina_cfg1 { 761 pins = "GPIO19 762 ste,config = < 763 }; 764 }; 765 }; 766 mcde { 767 dpi_default_mode: dpi_default 768 default_mux1 { 769 /* Mux in all 770 function = "lc 771 groups = 772 /* Dat 773 "lcd_d 774 /* Dat 775 "lcd_d 776 /* Dat 777 "lcd_d 778 /* Dat 779 "lcd_d 780 }; 781 default_mux2 { 782 function = "lc 783 /* Clock line 784 groups = "lcda 785 }; 786 /* Input, no pull-up i 787 default_cfg1 { 788 pins = "GPIO15 789 ste,config = < 790 }; 791 }; 792 }; 793 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.