Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v5.17 655 lines 16 kB view raw
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Devicetree for the Samsung XCover 2 GT-S7710 also known as Skomer. 4 */ 5 6/dts-v1/; 7#include "ste-db8500.dtsi" 8#include "ste-ab8505.dtsi" 9#include "ste-dbx5x0-pinctrl.dtsi" 10#include <dt-bindings/gpio/gpio.h> 11#include <dt-bindings/leds/common.h> 12#include <dt-bindings/input/input.h> 13#include <dt-bindings/interrupt-controller/irq.h> 14 15/ { 16 model = "Samsung XCover 2 (GT-S7710)"; 17 compatible = "samsung,skomer", "st-ericsson,u8500"; 18 19 chosen { 20 stdout-path = &serial2; 21 }; 22 23 battery: battery { 24 compatible = "samsung,eb485159lu"; 25 }; 26 27 /* TI TXS0206 level translator for 2.9 V */ 28 sd_level_translator: regulator-gpio { 29 compatible = "regulator-fixed"; 30 31 /* GPIO87 EN */ 32 gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>; 33 enable-active-high; 34 35 regulator-name = "sd-level-translator"; 36 regulator-min-microvolt = <2900000>; 37 regulator-max-microvolt = <2900000>; 38 regulator-type = "voltage"; 39 40 startup-delay-us = <200>; 41 42 pinctrl-names = "default"; 43 pinctrl-0 = <&sd_level_translator_default>; 44 }; 45 46 /* External LDO MIC5366-3.3YMT for eMMC */ 47 ldo_3v3_reg: regulator-gpio-ldo-3v3 { 48 compatible = "regulator-fixed"; 49 regulator-name = "en-3v3-fixed-supply"; 50 regulator-min-microvolt = <3300000>; 51 regulator-max-microvolt = <3300000>; 52 gpio = <&gpio6 31 GPIO_ACTIVE_HIGH>; 53 startup-delay-us = <5000>; 54 enable-active-high; 55 pinctrl-names = "default"; 56 pinctrl-0 = <&emmc_ldo_en_default_mode>; 57 }; 58 59 wlan_en: regulator-gpio-wlan-en { 60 compatible = "regulator-fixed"; 61 regulator-name = "wl-reg-on"; 62 regulator-min-microvolt = <3000000>; 63 regulator-max-microvolt = <3000000>; 64 startup-delay-us = <200000>; 65 /* GPIO215 WLAN_EN */ 66 gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>; 67 enable-active-high; 68 pinctrl-names = "default"; 69 pinctrl-0 = <&wlan_en_default_mode>; 70 }; 71 72 vibrator { 73 compatible = "gpio-vibrator"; 74 enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; 75 pinctrl-names = "default"; 76 pinctrl-0 = <&vibrator_default>; 77 }; 78 79 gpio-keys { 80 compatible = "gpio-keys"; 81 pinctrl-names = "default"; 82 pinctrl-0 = <&gpio_keys_default_mode>; 83 84 button-home { 85 linux,code = <KEY_HOME>; 86 label = "HOME"; 87 /* GPIO91 */ 88 gpios = <&gpio2 27 GPIO_ACTIVE_LOW>; 89 }; 90 button-volup { 91 linux,code = <KEY_VOLUMEUP>; 92 label = "VOL+"; 93 /* GPIO67 */ 94 gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; 95 }; 96 button-voldown { 97 linux,code = <KEY_VOLUMEDOWN>; 98 label = "VOL-"; 99 /* GPIO92 */ 100 gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; 101 }; 102 button-menu { 103 linux,code = <KEY_MENU>; 104 label = "MENU"; 105 /* GPIO204 */ 106 gpios = <&gpio6 12 GPIO_ACTIVE_LOW>; 107 }; 108 button-back { 109 linux,code = <KEY_BACK>; 110 label = "BACK"; 111 /* GPIO205 */ 112 gpios = <&gpio6 13 GPIO_ACTIVE_LOW>; 113 }; 114 }; 115 116 ktd253: backlight { 117 compatible = "kinetic,ktd253"; 118 /* GPIO 69 */ 119 enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; 120 /* Default to 13/32 brightness */ 121 default-brightness = <13>; 122 pinctrl-names = "default"; 123 pinctrl-0 = <&gpio_backlight_default_mode>; 124 }; 125 126 /* Richtek RT8515GQW Flash LED Driver IC */ 127 flash { 128 compatible = "richtek,rt8515"; 129 /* GPIO 140 */ 130 enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>; 131 /* GPIO 141 */ 132 ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>; 133 /* 134 * RFS is 16 kOhm and RTS is 100 kOhm giving 135 * the flash max current 343mA and torch max 136 * current 55 mA. 137 */ 138 richtek,rfs-ohms = <16000>; 139 richtek,rts-ohms = <100000>; 140 pinctrl-names = "default"; 141 pinctrl-0 = <&gpio_flash_default_mode>; 142 143 led { 144 function = LED_FUNCTION_FLASH; 145 color = <LED_COLOR_ID_WHITE>; 146 flash-max-timeout-us = <250000>; 147 flash-max-microamp = <343750>; 148 led-max-microamp = <55000>; 149 }; 150 }; 151 152 i2c-gpio-0 { 153 compatible = "i2c-gpio"; 154 sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 155 scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 156 pinctrl-names = "default"; 157 pinctrl-0 = <&i2c_gpio_0_default>; 158 #address-cells = <1>; 159 #size-cells = <0>; 160 /* TODO: this should be used by the NCP6914 Camera power management unit */ 161 }; 162 163 i2c-gpio-1 { 164 compatible = "i2c-gpio"; 165 sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 166 scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 167 pinctrl-names = "default"; 168 pinctrl-0 = <&i2c_gpio_1_default>; 169 #address-cells = <1>; 170 #size-cells = <0>; 171 magnetometer@c { 172 compatible = "alps,hscdtd008a"; 173 reg = <0x0c>; 174 avdd-supply = <&ab8500_ldo_aux1_reg>; 175 dvdd-supply = <&ab8500_ldo_aux8_reg>; 176 }; 177 }; 178 179 soc { 180 // External Micro SD slot 181 mmc@80126000 { 182 arm,primecell-periphid = <0x10480180>; 183 max-frequency = <100000000>; 184 bus-width = <4>; 185 cap-sd-highspeed; 186 cap-mmc-highspeed; 187 /* All direction control is used */ 188 st,sig-pin-fbclk; 189 full-pwr-cycle; 190 vmmc-supply = <&ab8500_ldo_aux3_reg>; 191 vqmmc-supply = <&sd_level_translator>; 192 pinctrl-names = "default", "sleep"; 193 pinctrl-0 = <&mc0_a_1_default>; 194 pinctrl-1 = <&mc0_a_1_sleep>; 195 status = "okay"; 196 }; 197 198 // WLAN SDIO channel 199 mmc@80118000 { 200 arm,primecell-periphid = <0x10480180>; 201 max-frequency = <50000000>; 202 bus-width = <4>; 203 non-removable; 204 cap-sd-highspeed; 205 vmmc-supply = <&wlan_en>; 206 pinctrl-names = "default", "sleep"; 207 pinctrl-0 = <&mc1_a_2_default>; 208 pinctrl-1 = <&mc1_a_2_sleep>; 209 status = "okay"; 210 #address-cells = <1>; 211 #size-cells = <0>; 212 213 wifi@1 { 214 compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac"; 215 reg = <1>; 216 /* GPIO216 WL_HOST_WAKE */ 217 interrupt-parent = <&gpio6>; 218 interrupts = <24 IRQ_TYPE_EDGE_FALLING>; 219 interrupt-names = "host-wake"; 220 pinctrl-names = "default"; 221 pinctrl-0 = <&wlan_default_mode>; 222 }; 223 }; 224 225 /* 226 * eMMC seems to be mostly Samsung KLM4G1YE4C "4YMD1R" 227 */ 228 mmc@80005000 { 229 arm,primecell-periphid = <0x10480180>; 230 max-frequency = <100000000>; 231 bus-width = <8>; 232 non-removable; 233 cap-mmc-highspeed; 234 mmc-ddr-1_8v; 235 no-sdio; 236 no-sd; 237 /* From datasheet page 26 figure 9: 300 ms set-up time for 4GB */ 238 post-power-on-delay-ms = <300>; 239 vmmc-supply = <&ldo_3v3_reg>; 240 pinctrl-names = "default", "sleep"; 241 pinctrl-0 = <&mc2_a_1_default>; 242 pinctrl-1 = <&mc2_a_1_sleep>; 243 244 status = "okay"; 245 }; 246 247 /* GBF (Bluetooth) UART */ 248 uart@80120000 { 249 pinctrl-names = "default", "sleep"; 250 pinctrl-0 = <&u0_a_1_default>; 251 pinctrl-1 = <&u0_a_1_sleep>; 252 status = "okay"; 253 254 /* FIXME: not quite working yet, probably needs regulators */ 255 bluetooth { 256 /* BCM4334B0 actually */ 257 compatible = "brcm,bcm4330-bt"; 258 shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>; 259 device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 260 host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>; 261 pinctrl-names = "default"; 262 pinctrl-0 = <&bluetooth_default_mode>; 263 }; 264 }; 265 266 /* GPF UART */ 267 uart@80121000 { 268 status = "okay"; 269 pinctrl-names = "default", "sleep"; 270 pinctrl-0 = <&u1rxtx_a_1_default &u1ctsrts_a_1_default>; 271 pinctrl-1 = <&u1rxtx_a_1_sleep &u1ctsrts_a_1_sleep>; 272 }; 273 274 /* Debugging console UART connected to AB8505 USB */ 275 uart@80007000 { 276 status = "okay"; 277 pinctrl-names = "default", "sleep"; 278 pinctrl-0 = <&u2rxtx_c_1_default>; 279 pinctrl-1 = <&u2rxtx_c_1_sleep>; 280 }; 281 282 prcmu@80157000 { 283 ab8505 { 284 ab8500_usb { 285 pinctrl-names = "default", "sleep"; 286 pinctrl-0 = <&usb_a_1_default>; 287 pinctrl-1 = <&usb_a_1_sleep>; 288 }; 289 290 ab8505-regulators { 291 ab8500_ldo_aux1 { 292 /* Used for VDD for sensors */ 293 regulator-name = "AUX1"; 294 regulator-min-microvolt = <3000000>; 295 regulator-max-microvolt = <3300000>; 296 }; 297 298 ab8500_ldo_aux2 { 299 /* Supplies the Cypress TMA140 touchscreen only with 3.0V */ 300 regulator-name = "AUX2"; 301 regulator-min-microvolt = <3000000>; 302 regulator-max-microvolt = <3000000>; 303 }; 304 305 ab8500_ldo_aux3 { 306 /* Used for voltage for external MMC/SD card */ 307 regulator-name = "AUX3"; 308 regulator-min-microvolt = <1100000>; 309 regulator-max-microvolt = <3300000>; 310 }; 311 312 ab8500_ldo_aux4 { 313 regulator-name = "AUX4"; 314 /* Hammer to 3.0V for the display */ 315 regulator-min-microvolt = <3000000>; 316 regulator-max-microvolt = <3000000>; 317 }; 318 319 ab8500_ldo_aux5 { 320 regulator-name = "AUX5"; 321 /* Intended for 1V8 for touchscreen but actually left unused */ 322 regulator-min-microvolt = <1050000>; 323 regulator-max-microvolt = <2790000>; 324 }; 325 326 ab8500_ldo_aux6 { 327 regulator-name = "AUX6"; 328 /* Hammer to 1.8V for the display */ 329 regulator-min-microvolt = <1800000>; 330 regulator-max-microvolt = <1800000>; 331 }; 332 333 ab8500_ldo_aux8 { 334 /* Mostly VIO for sensors */ 335 regulator-name = "AUX8"; 336 }; 337 }; 338 }; 339 }; 340 341 /* I2C0 */ 342 i2c@80004000 { 343 status = "okay"; 344 345 pinctrl-names = "default", "sleep"; 346 pinctrl-0 = <&i2c0_a_1_default>; 347 pinctrl-1 = <&i2c0_a_1_sleep>; 348 349 proximity@44 { 350 compatible = "sharp,gp2ap002s00f"; 351 clock-frequency = <400000>; 352 reg = <0x44>; 353 354 interrupt-parent = <&gpio4>; 355 interrupts = <18 IRQ_TYPE_EDGE_FALLING>; 356 vdd-supply = <&ab8500_ldo_aux1_reg>; 357 vio-supply = <&ab8500_ldo_aux8_reg>; 358 pinctrl-names = "default"; 359 pinctrl-0 = <&gp2ap002_skomer_default>; 360 sharp,proximity-far-hysteresis = /bits/ 8 <0x2f>; 361 sharp,proximity-close-hysteresis = /bits/ 8 <0x0f>; 362 }; 363 }; 364 365 366 /* I2C2 */ 367 i2c@80128000 { 368 status = "okay"; 369 370 pinctrl-names = "default", "sleep"; 371 pinctrl-0 = <&i2c2_b_2_default>; 372 pinctrl-1 = <&i2c2_b_2_sleep>; 373 374 accel@18 { 375 compatible = "bosch,bma254"; 376 clock-frequency = <400000>; 377 reg = <0x18>; 378 379 /* GPIO224 used as "smart alert" interrupt */ 380 interrupt-parent = <&gpio7>; 381 interrupts = <0 IRQ_TYPE_EDGE_RISING>; 382 383 mount-matrix = "0", "-1", "0", 384 "1", "0", "0", 385 "0", "0", "1"; 386 vdd-supply = <&ab8500_ldo_aux1_reg>; 387 vddio-supply = <&ab8500_ldo_aux8_reg>; 388 pinctrl-names = "default"; 389 pinctrl-0 = <&bma254_skomer_default>; 390 }; 391 }; 392 393 /* I2C3 */ 394 i2c@80110000 { 395 status = "okay"; 396 397 pinctrl-names = "default", "sleep"; 398 pinctrl-0 = <&i2c3_c_2_default>; 399 pinctrl-1 = <&i2c3_c_2_sleep>; 400 401 /* Cypress CY8CTMA140 touchscreen */ 402 touchscreen@20 { 403 compatible = "cypress,cy8ctma140"; 404 clock-frequency = <400000>; 405 reg = <0x20>; 406 407 touchscreen-size-x = <480>; 408 touchscreen-size-y = <800>; 409 touchscreen-max-pressure = <255>; 410 411 /* GPIO218 for IRQ */ 412 interrupt-parent = <&gpio6>; 413 interrupts = <26 IRQ_TYPE_EDGE_FALLING>; 414 415 /* VDD is "digital supply" nominally 1.71-3.6V */ 416 vdd-supply = <&ab8500_ldo_aux2_reg>; 417 /* VCPIN is "analog supply", 2.7-3.6 V */ 418 vcpin-supply = <&ab8500_ldo_aux2_reg>; 419 420 pinctrl-names = "default"; 421 pinctrl-0 = <&tma140_skomer_default>; 422 }; 423 }; 424 425 mcde@a0350000 { 426 status = "okay"; 427 pinctrl-names = "default"; 428 pinctrl-0 = <&dsi_default_mode>; 429 430 dsi@a0351000 { 431 panel { 432 /* NT35510-based Hydis HVA40WV1 */ 433 compatible = "hydis,hva40wv1", "novatek,nt35510"; 434 reg = <0>; 435 /* v_lcd_3v0 2.3-4.8V */ 436 vdd-supply = <&ab8500_ldo_aux4_reg>; 437 /* v_lcd_1v8 1.65-3.3V */ 438 vddi-supply = <&ab8500_ldo_aux6_reg>; 439 /* GPIO 139 */ 440 reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; 441 pinctrl-names = "default"; 442 pinctrl-0 = <&display_default_mode>; 443 backlight = <&ktd253>; 444 }; 445 }; 446 }; 447 }; 448}; 449 450&pinctrl { 451 sdi0 { 452 mc0_a_1_default { 453 default_cfg1 { 454 /* GPIO18, 19 & 20 unused so pull down */ 455 ste,config = <&gpio_in_pd>; 456 }; 457 }; 458 }; 459 460 /* This is a reset line for the eMMC */ 461 sdi2 { 462 mc2_a_1_default { 463 default_cfg2 { 464 pins = "GPIO130_C8"; /* FBCLK */ 465 ste,config = <&gpio_in_pd>; 466 }; 467 }; 468 }; 469 470 mcde { 471 dsi_default_mode: dsi_default { 472 default_mux1 { 473 /* Mux in VSI0 used for DSI TE */ 474 function = "lcd"; 475 groups = "lcdvsi0_a_1"; /* VSI0 for LCD */ 476 }; 477 default_cfg1 { 478 pins = "GPIO68_E1"; /* VSI0 */ 479 ste,config = <&in_nopull>; 480 }; 481 }; 482 }; 483 484 /* Two GPIO lines used by the display */ 485 display { 486 display_default_mode: display_default { 487 skomer_cfg1 { 488 /* 489 * OLED DETECT or check_pba, this appears to be high 490 * on "PBA" which I guess is "prototype board A". 491 */ 492 pins = "GPIO93_B7"; 493 ste,config = <&gpio_in_nopull>; 494 }; 495 skomer_cfg2 { 496 pins = "GPIO139_C9"; 497 /* 498 * MIPI_DSI0_RESET_N resets the display, leave high 499 * (de-asserted) so we only assert reset explicitly 500 * from the display driver. 501 */ 502 ste,config = <&gpio_out_hi>; 503 }; 504 }; 505 }; 506 backlight { 507 gpio_backlight_default_mode: backlight_default { 508 skomer_cfg1 { 509 pins = "GPIO69_E2"; /* LCD_BL_CTRL */ 510 ste,config = <&gpio_out_lo>; 511 }; 512 }; 513 }; 514 flash { 515 gpio_flash_default_mode: flash_default { 516 skomer_cfg1 { 517 pins = "GPIO140_B11", "GPIO141_C12"; 518 ste,config = <&gpio_out_lo>; 519 }; 520 }; 521 }; 522 /* GPIO that enables the 2.9V SD card level translator */ 523 sd-level-translator { 524 sd_level_translator_default: sd_level_translator_default { 525 /* level shifter on GPIO87 */ 526 skomer_cfg1 { 527 pins = "GPIO87_B3"; 528 ste,config = <&gpio_out_hi>; 529 }; 530 }; 531 }; 532 /* GPIO that enables the LDO regulator for the eMMC */ 533 emmc-ldo { 534 emmc_ldo_en_default_mode: emmc_ldo_default { 535 /* LDO enable on GPIO223 */ 536 skomer_cfg1 { 537 pins = "GPIO223_AH9"; 538 ste,config = <&gpio_out_hi>; 539 }; 540 }; 541 }; 542 /* GPIO keys */ 543 gpio-keys { 544 gpio_keys_default_mode: gpio_keys_default { 545 skomer_cfg1 { 546 pins = "GPIO67_G2", /* VOL UP */ 547 "GPIO91_B6", /* HOME */ 548 "GPIO92_D6", /* VOL DOWN */ 549 "GPIO204_AF23", /* MENU */ 550 "GPIO205_AG23"; /* BACK */ 551 ste,config = <&gpio_in_pu>; 552 }; 553 }; 554 }; 555 /* Interrupt line for BMA254 */ 556 bma254 { 557 bma254_skomer_default: bma254_skomer { 558 skomer_cfg1 { 559 pins = "GPIO224_AG9"; 560 ste,config = <&gpio_in_pd>; 561 }; 562 }; 563 }; 564 /* Interrupt line for light/proximity sensor GP2AP002 */ 565 gp2ap002 { 566 gp2ap002_skomer_default: gp2ap002_skomer { 567 skomer_cfg1 { 568 pins = "GPIO146_D13"; 569 ste,config = <&gpio_in_nopull>; 570 }; 571 }; 572 }; 573 /* GPIO-based I2C bus for NCP6914 */ 574 i2c-gpio-0 { 575 i2c_gpio_0_default: i2c_gpio_0 { 576 skomer_cfg1 { 577 pins = "GPIO143_D12", "GPIO144_B13"; 578 ste,config = <&gpio_in_nopull>; 579 }; 580 }; 581 }; 582 /* GPIO-based I2C bus for ALPS HSCD compass */ 583 i2c-gpio-1 { 584 i2c_gpio_1_default: i2c_gpio_1 { 585 skomer_cfg1 { 586 pins = "GPIO151_B17", "GPIO152_D16"; 587 ste,config = <&gpio_in_nopull>; 588 }; 589 }; 590 }; 591 wlan { 592 wlan_default_mode: wlan_default { 593 skomer_cfg1 { 594 pins = "GPIO216_AG12"; 595 ste,config = <&gpio_in_pd>; 596 }; 597 }; 598 wlan_en_default_mode: wlan_en_default { 599 skomer_cfg2 { 600 pins = "GPIO215_AH13"; 601 ste,config = <&gpio_out_lo>; 602 }; 603 }; 604 }; 605 bluetooth { 606 bluetooth_default_mode: bluetooth_default { 607 skomer_cfg1 { 608 pins = "GPIO199_AH23", "GPIO222_AJ9"; 609 ste,config = <&gpio_out_lo>; 610 }; 611 skomer_cfg2 { 612 pins = "GPIO97_D9"; 613 ste,config = <&gpio_in_nopull>; 614 }; 615 }; 616 }; 617 vibrator { 618 vibrator_default: vibrator_default { 619 skomer_cfg1 { 620 pins = "GPIO195_AG28"; /* MOT_EN */ 621 ste,config = <&gpio_out_lo>; 622 }; 623 }; 624 }; 625 /* Interrupt line for the Cypress TMA140 touchscreen */ 626 touchscreen { 627 tma140_skomer_default: tma140_skomer { 628 skomer_cfg1 { 629 pins = "GPIO218_AH11"; 630 ste,config = <&gpio_in_nopull>; 631 }; 632 }; 633 }; 634}; 635 636&ab8505_gpio { 637 /* Hog a few default settings */ 638 pinctrl-names = "default"; 639 pinctrl-0 = <&gpio_default>; 640 641 gpio { 642 gpio_default: gpio_default { 643 skomer_mux { 644 /* Change unused pins to GPIO mode */ 645 function = "gpio"; 646 groups = "gpio3_a_1", /* default: SysClkReq4 */ 647 "gpio14_a_1"; /* default: PWMOut1 */ 648 }; 649 skomer_cfg1 { 650 pins = "GPIO11_B17", "GPIO13_D17", "GPIO50_L4"; 651 bias-disable; 652 }; 653 }; 654 }; 655};