1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Devicetree for the Samsung Galaxy S Advance GT-I9070 also known as Janice. 4 */ 5 6/dts-v1/; 7#include "ste-db8500.dtsi" 8#include "ste-ab8500.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 Galaxy S Advance (GT-I9070)"; 17 compatible = "samsung,janice", "st-ericsson,u8500"; 18 19 chosen { 20 stdout-path = &serial2; 21 }; 22 23 /* External LDO for eMMC LDO VMEM_3V3 controlled by GPIO6 */ 24 ldo_3v3_reg: regulator-gpio-ldo-3v3 { 25 compatible = "regulator-fixed"; 26 /* Supplied in turn by VBAT */ 27 regulator-name = "VMEM_3V3"; 28 regulator-min-microvolt = <3300000>; 29 regulator-max-microvolt = <3300000>; 30 gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>; 31 startup-delay-us = <5000>; // FIXME 32 enable-active-high; 33 pinctrl-names = "default"; 34 pinctrl-0 = <&emmc_ldo_en_default_mode>; 35 }; 36 37 /* 38 * External Ricoh "TSP" regulator for the touchscreen. 39 * One GPIO line controls two voltages of 3.3V and 1.8V 40 * this line is known as "TSP_LDO_ON1" in the schematics. 41 */ 42 ldo_tsp_3v3_reg: regulator-gpio-tsp-ldo-3v3 { 43 compatible = "regulator-fixed"; 44 /* Supplied in turn by VBAT */ 45 regulator-name = "LDO_TSP_A3V3"; 46 regulator-min-microvolt = <3300000>; 47 regulator-max-microvolt = <3300000>; 48 /* GPIO94 controls this regulator */ 49 gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>; 50 /* 70 ms power-on delay */ 51 startup-delay-us = <70000>; 52 enable-active-high; 53 pinctrl-names = "default"; 54 pinctrl-0 = <&tsp_ldo_en_default_mode>; 55 }; 56 ldo_tsp_1v8_reg: regulator-gpio-tsp-ldo-1v8 { 57 compatible = "regulator-fixed"; 58 /* Supplied in turn by VBAT */ 59 regulator-name = "VREG_TSP_1V8"; 60 regulator-min-microvolt = <1800000>; 61 regulator-max-microvolt = <1800000>; 62 /* GPIO94 controls this regulator */ 63 gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>; 64 /* 70 ms power-on delay */ 65 startup-delay-us = <70000>; 66 enable-active-high; 67 pinctrl-names = "default"; 68 pinctrl-0 = <&tsp_ldo_en_default_mode>; 69 }; 70 71 /* 72 * External Ricoh "TSP" regulator for the touchkeys. 73 * Two GPIO lines controls two voltages of 3.3V and 1.8V 74 * TSP_LDO_ON2 controls VREG_TOUCHKEY_1V8 75 * EN_LED_LDO controls VREG_KLED_3V3 (key LED) 76 */ 77 ldo_kled_3v3_reg: regulator-gpio-vreg-kled-3v3 { 78 compatible = "regulator-fixed"; 79 /* Supplied in turn by VBAT */ 80 regulator-name = "VREG_KLED_3V3"; 81 regulator-min-microvolt = <3300000>; 82 regulator-max-microvolt = <3300000>; 83 /* GPIO68 controls this regulator */ 84 gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>; 85 /* 70 ms power-on delay */ 86 startup-delay-us = <70000>; 87 enable-active-high; 88 pinctrl-names = "default"; 89 pinctrl-0 = <&en_led_ldo_default_mode>; 90 }; 91 ldo_touchkey_1v8_reg: regulator-gpio-vreg-touchkey-1v8 { 92 compatible = "regulator-fixed"; 93 /* Supplied in turn by VBAT */ 94 regulator-name = "VREG_TOUCHKEY_1V8"; 95 regulator-min-microvolt = <1800000>; 96 regulator-max-microvolt = <1800000>; 97 /* GPIO89 controls this regulator */ 98 gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>; 99 /* 70 ms power-on delay */ 100 startup-delay-us = <70000>; 101 enable-active-high; 102 pinctrl-names = "default"; 103 pinctrl-0 = <&tsp_ldo_on2_default_mode>; 104 }; 105 106 107 /* 108 * External Ricoh RP152L010B-TR LCD LDO regulator for the display. 109 * LCD_PWR_EN controls a 3.0V and 1.8V output. 110 */ 111 lcd_3v0_reg: regulator-gpio-lcd-3v0 { 112 compatible = "regulator-fixed"; 113 /* Supplied in turn by VBAT */ 114 regulator-name = "VREG_LCD_3V0"; 115 regulator-min-microvolt = <3000000>; 116 regulator-max-microvolt = <3000000>; 117 /* GPIO219 controls this regulator */ 118 gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>; 119 enable-active-high; 120 pinctrl-names = "default"; 121 pinctrl-0 = <&lcd_pwr_en_default_mode>; 122 }; 123 lcd_1v8_reg: regulator-gpio-lcd-1v8 { 124 compatible = "regulator-fixed"; 125 /* Supplied in turn by VBAT */ 126 regulator-name = "VREG_LCD_1V8"; 127 regulator-min-microvolt = <1800000>; 128 regulator-max-microvolt = <1800000>; 129 /* GPIO219 controls this regulator */ 130 gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>; 131 enable-active-high; 132 pinctrl-names = "default"; 133 pinctrl-0 = <&lcd_pwr_en_default_mode>; 134 }; 135 136 /* 137 * This regulator is a GPIO line that drives the Broadcom WLAN 138 * line WL_REG_ON high and enables the internal regulators 139 * inside the chip. Unfortunatley it is erroneously named 140 * WLAN_RST_N on the schematic but it is not a reset line. 141 * 142 * The voltage specified here is only used to determine the OCR mask, 143 * the for the SDIO connector, the chip is actually connected 144 * directly to VBAT. 145 */ 146 wl_reg: regulator-gpio-wlan { 147 compatible = "regulator-fixed"; 148 regulator-name = "WL_REG_ON"; 149 regulator-min-microvolt = <3000000>; 150 regulator-max-microvolt = <3000000>; 151 startup-delay-us = <100000>; 152 /* GPIO215 (WLAN_RST_N to WL_REG_ON) */ 153 gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>; 154 enable-active-high; 155 pinctrl-names = "default"; 156 pinctrl-0 = <&wlan_ldo_en_default>; 157 }; 158 159 160 gpio-keys { 161 compatible = "gpio-keys"; 162 pinctrl-names = "default"; 163 pinctrl-0 = <&gpio_keys_default_mode>; 164 165 button-home { 166 linux,code = <KEY_HOME>; 167 label = "HOME"; 168 /* GPIO91 */ 169 gpios = <&gpio2 27 GPIO_ACTIVE_LOW>; 170 }; 171 button-volup { 172 linux,code = <KEY_VOLUMEUP>; 173 label = "VOL+"; 174 /* GPIO67 */ 175 gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; 176 }; 177 button-voldown { 178 linux,code = <KEY_VOLUMEDOWN>; 179 label = "VOL-"; 180 /* GPIO92 */ 181 gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; 182 }; 183 }; 184 185 /* Richtek RT8515GQW Flash LED Driver IC */ 186 flash { 187 compatible = "richtek,rt8515"; 188 /* GPIO 140 */ 189 enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>; 190 /* GPIO 141 */ 191 ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>; 192 /* 193 * RFS is 16 kOhm and RTS is 100 kOhm giving 194 * the flash max current 343mA and torch max 195 * current 55 mA. 196 */ 197 richtek,rfs-ohms = <16000>; 198 richtek,rts-ohms = <100000>; 199 pinctrl-names = "default"; 200 pinctrl-0 = <&gpio_flash_default_mode>; 201 202 led { 203 function = LED_FUNCTION_FLASH; 204 color = <LED_COLOR_ID_WHITE>; 205 flash-max-timeout-us = <250000>; 206 flash-max-microamp = <343750>; 207 led-max-microamp = <55000>; 208 }; 209 }; 210 211 /* Bit-banged I2C on GPIO143 and GPIO144 also called "SUBPMU I2C" */ 212 i2c-gpio-0 { 213 compatible = "i2c-gpio"; 214 sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 215 scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 216 pinctrl-names = "default"; 217 pinctrl-0 = <&i2c_gpio_0_default>; 218 #address-cells = <1>; 219 #size-cells = <0>; 220 221 /* Yamaha YAS530 magnetometer */ 222 magnetometer@2e { 223 compatible = "yamaha,yas530"; 224 reg = <0x2e>; 225 /* VDD 3V */ 226 vdd-supply = <&ab8500_ldo_aux1_reg>; 227 /* IOVDD 1.8V */ 228 iovdd-supply = <&ab8500_ldo_aux2_reg>; 229 /* GPIO204 COMPASS_RST_N */ 230 reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>; 231 pinctrl-names = "default"; 232 pinctrl-0 = <&yas529_default>; 233 }; 234 /* TODO: this should also be used by the NCP6914 Camera power management unit */ 235 }; 236 237 /* 238 * These pins do have an spi controller, however the controller on 239 * these pins is not the fully featured PL022 SSP/SPI block but the 240 * ST Micro diet "PL023" version. One of the lacking features in 241 * this derivative is 3wire support, so it cannot be used to drive 242 * this panel interface. We have to use GPIO bit-banging instead. 243 */ 244 spi-gpio-0 { 245 compatible = "spi-gpio"; 246 /* Clock on GPIO220 */ 247 sck-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>; 248 /* MISO/MOSI on GPIO224 (no separate MISO pin) */ 249 mosi-gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>; 250 /* Chip select on GPIO223 */ 251 cs-gpios = <&gpio6 31 GPIO_ACTIVE_LOW>; 252 num-chipselects = <1>; 253 254 pinctrl-names = "default"; 255 pinctrl-0 = <&spi_gpio_0_default>; 256 #address-cells = <1>; 257 #size-cells = <0>; 258 259 panel@0 { 260 compatible = "samsung,s6e63m0"; 261 reg = <0>; 262 vdd3-supply = <&lcd_3v0_reg>; 263 vci-supply = <&lcd_1v8_reg>; 264 /* Reset on GPIO139 */ 265 reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; 266 pinctrl-names = "default"; 267 pinctrl-0 = <&panel_default_mode>; 268 spi-3wire; 269 270 port { 271 panel_in: endpoint { 272 remote-endpoint = <&display_out>; 273 }; 274 }; 275 }; 276 }; 277 278 /* 279 * Current sense amplifier on the light sensor to convert current to 280 * voltage. We do not know if this is the actual configuration. The 281 * sense resistor value was found by calibrating in a room ambient 282 * light with a second mobile phone light sensor as reference. If you 283 * pry a Janice phone apart and inspect it you may figure this out. 284 */ 285 gp2a_shunt: current-sense-shunt { 286 compatible = "current-sense-shunt"; 287 io-channels = <&gpadc 0x07>; 288 shunt-resistor-micro-ohms = <15000000>; /* 15 ohms c:a */ 289 #io-channel-cells = <0>; 290 io-channel-ranges; 291 }; 292 293 /* Bit-banged I2C on GPIO196 and GPIO197 also called "TOUCHKEY_I2C" */ 294 i2c-gpio-1 { 295 compatible = "i2c-gpio"; 296 sda-gpios = <&gpio6 5 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 297 scl-gpios = <&gpio6 4 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 298 clock-frequency = <400000>; 299 pinctrl-names = "default"; 300 pinctrl-0 = <&i2c_gpio_1_default>; 301 #address-cells = <1>; 302 #size-cells = <0>; 303 304 touchkey@20 { 305 compatible = "coreriver,tc360-touchkey"; 306 reg = <0x20>; 307 vdd-supply = <&ldo_kled_3v3_reg>; 308 vcc-supply = <&ldo_touchkey_1v8_reg>; 309 vddio-supply = <&ldo_touchkey_1v8_reg>; 310 311 /* Interrupt on GPIO 198 */ 312 interrupt-parent = <&gpio6>; 313 interrupts = <6 IRQ_TYPE_EDGE_RISING>; 314 315 pinctrl-names = "default"; 316 pinctrl-0 = <&touchkey_default_mode>; 317 linux,keycodes = <KEY_MENU KEY_BACK>; 318 }; 319 }; 320 321 /* Bit-banged I2C on GPIO201 and GPIO202 also called "MOT_I2C" */ 322 i2c-gpio-2 { 323 compatible = "i2c-gpio"; 324 sda-gpios = <&gpio6 10 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 325 scl-gpios = <&gpio6 9 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 326 pinctrl-names = "default"; 327 pinctrl-0 = <&i2c_gpio_2_default>; 328 #address-cells = <1>; 329 #size-cells = <0>; 330 /* TODO: add the Immersion ISA1200 I2C device here */ 331 }; 332 333 /* Bit-banged I2C on GPIO151 and GPIO152 also called "NFC_I2C" */ 334 i2c-gpio-3 { 335 compatible = "i2c-gpio"; 336 sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 337 scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 338 pinctrl-names = "default"; 339 pinctrl-0 = <&i2c_gpio_3_default>; 340 #address-cells = <1>; 341 #size-cells = <0>; 342 343 nfc@30 { 344 compatible = "nxp,pn547", "nxp,nxp-nci-i2c"; 345 reg = <0x30>; 346 /* NFC IRQ on GPIO32 */ 347 interrupt-parent = <&gpio1>; 348 interrupts = <0 IRQ_TYPE_EDGE_FALLING>; 349 /* GPIO 31 */ 350 firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>; 351 /* GPIO88 */ 352 enable-gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>; 353 pinctrl-names = "default"; 354 pinctrl-0 = <&pn547_janice_default>; 355 }; 356 }; 357 358 soc { 359 /* External Micro SD slot */ 360 mmc@80126000 { 361 arm,primecell-periphid = <0x10480180>; 362 max-frequency = <50000000>; 363 bus-width = <4>; 364 cap-sd-highspeed; 365 cap-mmc-highspeed; 366 st,sig-dir-cmd; 367 st,sig-dir-dat0; 368 st,sig-dir-dat2; 369 st,sig-pin-fbclk; 370 full-pwr-cycle; 371 /* MMC is powered by AUX3 1.2V .. 2.91V */ 372 vmmc-supply = <&ab8500_ldo_aux3_reg>; 373 /* 2.9 V level translator is using AUX3 at 2.9 V as well */ 374 vqmmc-supply = <&ab8500_ldo_aux3_reg>; 375 pinctrl-names = "default", "sleep"; 376 pinctrl-0 = <&mc0_a_2_default>; 377 pinctrl-1 = <&mc0_a_2_sleep>; 378 cd-gpios = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217 379 status = "okay"; 380 }; 381 382 /* WLAN SDIO channel */ 383 mmc@80118000 { 384 arm,primecell-periphid = <0x10480180>; 385 max-frequency = <50000000>; 386 bus-width = <4>; 387 non-removable; 388 cap-sd-highspeed; 389 pinctrl-names = "default", "sleep"; 390 pinctrl-0 = <&mc1_a_2_default>; 391 pinctrl-1 = <&mc1_a_2_sleep>; 392 /* 393 * GPIO-controlled voltage enablement: this drives 394 * the WL_REG_ON line high when we use this device. 395 * Represented as regulator to fill OCR mask. 396 */ 397 vmmc-supply = <&wl_reg>; 398 399 #address-cells = <1>; 400 #size-cells = <0>; 401 status = "okay"; 402 403 wifi@1 { 404 /* Actually BRCM4330 */ 405 compatible = "brcm,bcm4329-fmac"; 406 reg = <1>; 407 /* GPIO216 WL_HOST_WAKE */ 408 interrupt-parent = <&gpio6>; 409 interrupts = <24 IRQ_TYPE_EDGE_FALLING>; 410 interrupt-names = "host-wake"; 411 pinctrl-names = "default"; 412 pinctrl-0 = <&wlan_default_mode>; 413 }; 414 }; 415 416 /* eMMC */ 417 mmc@80005000 { 418 arm,primecell-periphid = <0x10480180>; 419 max-frequency = <50000000>; 420 bus-width = <8>; 421 non-removable; 422 cap-mmc-highspeed; 423 mmc-ddr-1_8v; 424 vmmc-supply = <&ldo_3v3_reg>; 425 pinctrl-names = "default", "sleep"; 426 pinctrl-0 = <&mc2_a_1_default>; 427 pinctrl-1 = <&mc2_a_1_sleep>; 428 status = "okay"; 429 }; 430 431 /* GBF (Bluetooth) UART */ 432 uart@80120000 { 433 pinctrl-names = "default", "sleep"; 434 pinctrl-0 = <&u0_a_1_default>; 435 pinctrl-1 = <&u0_a_1_sleep>; 436 status = "okay"; 437 438 bluetooth { 439 compatible = "brcm,bcm4330-bt"; 440 /* GPIO222 rail BT_VREG_EN to BT_REG_ON */ 441 shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>; 442 /* BT_WAKE on GPIO199 */ 443 device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 444 /* BT_HOST_WAKE on GPIO97 */ 445 /* FIXME: convert to interrupt */ 446 host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>; 447 /* BT_RST_N on GPIO209 */ 448 reset-gpios = <&gpio6 17 GPIO_ACTIVE_LOW>; 449 pinctrl-names = "default"; 450 pinctrl-0 = <&bluetooth_default_mode>; 451 }; 452 }; 453 454 /* GPS UART */ 455 uart@80121000 { 456 status = "okay"; 457 pinctrl-names = "default", "sleep"; 458 /* CTS/RTS is not used, CTS is repurposed as GPIO */ 459 pinctrl-0 = <&u1rxtx_a_1_default>; 460 pinctrl-1 = <&u1rxtx_a_1_sleep>; 461 /* FIXME: add a device for the GPS here */ 462 }; 463 464 /* Debugging console UART connected to TSU6111RSVR (FSA880) */ 465 uart@80007000 { 466 status = "okay"; 467 pinctrl-names = "default", "sleep"; 468 pinctrl-0 = <&u2rxtx_c_1_default>; 469 pinctrl-1 = <&u2rxtx_c_1_sleep>; 470 }; 471 472 prcmu@80157000 { 473 ab8500 { 474 ab8500_usb { 475 pinctrl-names = "default", "sleep"; 476 pinctrl-0 = <&usb_a_1_default>; 477 pinctrl-1 = <&usb_a_1_sleep>; 478 }; 479 480 ab8500-regulators { 481 ab8500_ldo_aux1 { 482 /* Used for VDD for sensors */ 483 regulator-name = "V-SENSORS-VDD"; 484 regulator-min-microvolt = <3000000>; 485 regulator-max-microvolt = <3000000>; 486 }; 487 488 ab8500_ldo_aux2 { 489 /* Used for VIO for sensors */ 490 regulator-name = "V-SENSORS-VIO"; 491 regulator-min-microvolt = <1800000>; 492 regulator-max-microvolt = <1800000>; 493 }; 494 495 ab8500_ldo_aux3 { 496 /* Used for voltage for external MMC/SD card */ 497 regulator-name = "V-MMC-SD"; 498 regulator-min-microvolt = <1200000>; 499 regulator-max-microvolt = <2910000>; 500 }; 501 }; 502 }; 503 }; 504 505 /* I2C0 */ 506 i2c@80004000 { 507 status = "okay"; 508 pinctrl-names = "default", "sleep"; 509 pinctrl-0 = <&i2c0_a_1_default>; 510 pinctrl-1 = <&i2c0_a_1_sleep>; 511 512 proximity@44 { 513 /* Janice has the GP2AP002A00F with light sensor */ 514 compatible = "sharp,gp2ap002a00f"; 515 clock-frequency = <400000>; 516 reg = <0x44>; 517 518 interrupt-parent = <&gpio4>; 519 interrupts = <18 IRQ_TYPE_EDGE_FALLING>; 520 vdd-supply = <&ab8500_ldo_aux1_reg>; 521 vio-supply = <&ab8500_ldo_aux2_reg>; 522 /* ADC channel AUX2 to read ALSOUT ambient light sensor out */ 523 io-channels = <&gp2a_shunt>; 524 io-channel-names = "alsout"; 525 pinctrl-names = "default"; 526 pinctrl-0 = <&gp2ap002_janice_default>; 527 /* B1 mode (arch/arm/mach-ux500/include/mach/gp2a.h) */ 528 sharp,proximity-far-hysteresis = /bits/ 8 <0x40>; 529 sharp,proximity-close-hysteresis = /bits/ 8 <0x0f>; 530 }; 531 }; 532 533 /* I2C1 on GPIO16 and GPIO17 also called "MUS I2C" */ 534 i2c@80122000 { 535 status = "okay"; 536 pinctrl-names = "default","sleep"; 537 pinctrl-0 = <&i2c1_b_2_default>; 538 pinctrl-1 = <&i2c1_b_2_sleep>; 539 540 /* Texas Instruments TSU6111 micro USB switch */ 541 usb-switch@25 { 542 compatible = "ti,tsu6111"; 543 reg = <0x25>; 544 /* Interrupt JACK_INT_N on GPIO95 */ 545 interrupt-parent = <&gpio2>; 546 interrupts = <31 IRQ_TYPE_EDGE_FALLING>; 547 pinctrl-names = "default"; 548 pinctrl-0 = <&tsu6111_janice_default>; 549 }; 550 }; 551 552 /* I2C2 on GPIO10 and GPIO11 also called "SENSORS I2C" */ 553 i2c@80128000 { 554 status = "okay"; 555 pinctrl-names = "default", "sleep"; 556 pinctrl-0 = <&i2c2_b_2_default>; 557 pinctrl-1 = <&i2c2_b_2_sleep>; 558 559 gyroscope@68 { 560 compatible = "invensense,mpu3050"; 561 reg = <0x68>; 562 /* GPIO226 interrupt */ 563 interrupt-parent = <&gpio7>; 564 interrupts = <2 IRQ_TYPE_EDGE_FALLING>; 565 /* FIXME: no idea about this */ 566 mount-matrix = "1", "0", "0", 567 "0", "1", "0", 568 "0", "0", "1"; 569 vlogic-supply = <&ab8500_ldo_aux2_reg>; // 1.8V 570 vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V 571 pinctrl-names = "default"; 572 pinctrl-0 = <&mpu3050_janice_default>; 573 574 /* 575 * The MPU-3050 acts as a hub for the 576 * accelerometer. 577 */ 578 i2c-gate { 579 #address-cells = <1>; 580 #size-cells = <0>; 581 582 /* Bosch BMA222 accelerometer */ 583 accelerometer@08 { 584 compatible = "bosch,bma222"; 585 reg = <0x08>; 586 /* FIXME: no idea about this */ 587 mount-matrix = "1", "0", "0", 588 "0", "1", "0", 589 "0", "0", "1"; 590 vddio-supply = <&ab8500_ldo_aux2_reg>; // 1.8V 591 vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V 592 }; 593 }; 594 }; 595 }; 596 597 /* I2C3 */ 598 i2c@80110000 { 599 status = "okay"; 600 601 pinctrl-names = "default", "sleep"; 602 pinctrl-0 = <&i2c3_c_2_default>; 603 pinctrl-1 = <&i2c3_c_2_sleep>; 604 605 /* Atmel mXT224E touchscreen */ 606 touchscreen@4a { 607 compatible = "atmel,maxtouch"; 608 reg = <0x4a>; 609 /* GPIO218 (TSP_INT_1V8) */ 610 interrupt-parent = <&gpio6>; 611 interrupts = <26 IRQ_TYPE_EDGE_FALLING>; 612 /* VDDA is "analog supply", 2.57-3.47 V */ 613 vdda-supply = <&ldo_tsp_3v3_reg>; 614 /* VDD is "digital supply" 1.71-3.47V */ 615 vdd-supply = <&ldo_tsp_1v8_reg>; 616 pinctrl-names = "default"; 617 pinctrl-0 = <&tsp_default>; 618 }; 619 }; 620 621 mcde@a0350000 { 622 status = "okay"; 623 pinctrl-names = "default"; 624 pinctrl-0 = <&dpi_default_mode>; 625 626 port { 627 display_out: endpoint { 628 remote-endpoint = <&panel_in>; 629 }; 630 }; 631 }; 632 }; 633}; 634 635&pinctrl { 636 /* 637 * This extends the MC0_A_2 default config to include 638 * the card detect GPIO217 line. 639 */ 640 sdi0 { 641 mc0_a_2_default { 642 default_cfg4 { 643 pins = "GPIO217_AH12"; /* card detect */ 644 ste,config = <&gpio_in_pd>; 645 }; 646 }; 647 }; 648 mcde { 649 dpi_default_mode: dpi_default { 650 default_mux1 { 651 /* Mux in all the data lines */ 652 function = "lcd"; 653 groups = 654 /* Data lines D0-D7 GPIO70..GPIO77 */ 655 "lcd_d0_d7_a_1", 656 /* Data lines D8-D11 GPIO78..GPIO81 */ 657 "lcd_d8_d11_a_1", 658 /* Data lines D12-D15 GPIO82..GPIO85 */ 659 "lcd_d12_d15_a_1", 660 /* Data lines D16-D23 GPIO161..GPIO168 */ 661 "lcd_d16_d23_b_1"; 662 }; 663 default_mux2 { 664 function = "lcda"; 665 /* Clock line on GPIO150, DE, VSO, HSO on GPIO169..GPIO171 */ 666 groups = "lcdaclk_b_1", "lcda_b_1"; 667 }; 668 /* Input, no pull-up is the default state for pins used for an alt function */ 669 default_cfg1 { 670 pins = "GPIO150_C14", "GPIO169_D22", "GPIO170_C23", "GPIO171_D23"; 671 ste,config = <&in_nopull>; 672 }; 673 }; 674 }; 675 /* GPIO for panel reset control */ 676 panel { 677 panel_default_mode: panel_default { 678 janice_cfg1 { 679 /* Reset line */ 680 pins = "GPIO139_C9"; 681 ste,config = <&gpio_out_lo>; 682 }; 683 }; 684 }; 685 /* GPIO that enables the LDO regulator for the eMMC */ 686 emmc-ldo { 687 emmc_ldo_en_default_mode: emmc_ldo_default { 688 /* LDO enable on GPIO6 */ 689 janice_cfg1 { 690 pins = "GPIO6_AF6"; 691 ste,config = <&gpio_out_hi>; 692 }; 693 }; 694 }; 695 /* GPIO that enables the LDO regulator for the touchscreen */ 696 tsp-ldo { 697 tsp_ldo_en_default_mode: tsp_ldo_default { 698 /* LDO enable on GPIO94 */ 699 janice_cfg1 { 700 pins = "GPIO94_D7"; 701 ste,config = <&gpio_out_hi>; 702 }; 703 }; 704 }; 705 /* GPIO that enables the LDO regulator for the key LED */ 706 key-led { 707 en_led_ldo_default_mode: en_led_ldo_default { 708 /* EN_LED_LDO on GPIO68 */ 709 janice_cfg1 { 710 pins = "GPIO68_E1"; 711 ste,config = <&gpio_out_hi>; 712 }; 713 }; 714 }; 715 /* GPIO that enables the LDO regulator for the touchkeys */ 716 touchkey-ldo { 717 tsp_ldo_on2_default_mode: tsp_ldo_on2_default { 718 /* TSP_LDO_ON2 on GPIO89 */ 719 janice_cfg1 { 720 pins = "GPIO89_E6"; 721 ste,config = <&gpio_out_lo>; 722 }; 723 }; 724 }; 725 touchkey { 726 touchkey_default_mode: touchkey_default { 727 janice_cfg1 { 728 /* Interrupt */ 729 pins = "GPIO198_AG25"; 730 ste,config = <&gpio_in_nopull>; 731 }; 732 janice_cfg2 { 733 /* Reset, actually completely unused (not routed) */ 734 pins = "GPIO205_AG23"; 735 ste,config = <&gpio_in_pd>; 736 }; 737 }; 738 }; 739 /* GPIO that enabled the LDO regulator for the LCD display */ 740 lcd-ldo { 741 lcd_pwr_en_default_mode: lcd_pwr_en_default { 742 /* LCD_PWR_EN on GPIO219 */ 743 janice_cfg1 { 744 pins = "GPIO219_AG10"; 745 ste,config = <&gpio_out_hi>; 746 }; 747 }; 748 }; 749 /* GPIO that enables the WLAN internal LDO regulators */ 750 wlan-ldo { 751 wlan_ldo_en_default: wlan_ldo_default { 752 /* GPIO215 named WLAN_RST_N */ 753 janice_cfg1 { 754 pins = "GPIO215_AH13"; 755 ste,config = <&gpio_out_lo>; 756 }; 757 }; 758 }; 759 /* Flash and torch */ 760 flash { 761 gpio_flash_default_mode: flash_default { 762 janice_cfg1 { 763 pins = "GPIO140_B11", "GPIO141_C12"; 764 ste,config = <&gpio_out_lo>; 765 }; 766 }; 767 }; 768 /* GPIO keys */ 769 gpio-keys { 770 gpio_keys_default_mode: gpio_keys_default { 771 skomer_cfg1 { 772 pins = "GPIO67_G2", /* VOL UP */ 773 "GPIO91_B6", /* HOME */ 774 "GPIO92_D6"; /* VOL DOWN */ 775 ste,config = <&gpio_in_pu>; 776 }; 777 }; 778 }; 779 /* Interrupt line for the Atmel MXT228 touchscreen */ 780 tsp { 781 tsp_default: tsp_default { 782 janice_cfg1 { 783 pins = "GPIO218_AH11"; /* TSP_INT_1V8 */ 784 ste,config = <&gpio_in_nopull>; 785 }; 786 }; 787 }; 788 /* Reset line for the Yamaha YAS529 magnetometer */ 789 yas529 { 790 yas529_default: yas529_janice { 791 janice_cfg1 { 792 pins = "GPIO204_AF23"; 793 ste,config = <&gpio_out_hi>; 794 }; 795 }; 796 }; 797 /* Interrupt line for light/proximity sensor GP2AP002 */ 798 gp2ap002 { 799 gp2ap002_janice_default: gp2ap002_janice { 800 janice_cfg1 { 801 pins = "GPIO146_D13"; 802 ste,config = <&gpio_in_nopull>; 803 }; 804 }; 805 }; 806 /* Interrupt line for Invensense MPU3050 gyroscope */ 807 mpu3050 { 808 mpu3050_janice_default: mpu3050_janice { 809 janice_cfg1 { 810 /* GPIO226 used for IRQ */ 811 pins = "GPIO226_AF8"; 812 ste,config = <&gpio_in_nopull>; 813 }; 814 }; 815 }; 816 /* GPIO-based I2C bus for magnetometer and NCP6914 */ 817 i2c-gpio-0 { 818 i2c_gpio_0_default: i2c_gpio_0 { 819 janice_cfg1 { 820 pins = "GPIO143_D12", "GPIO144_B13"; 821 ste,config = <&gpio_in_nopull>; 822 }; 823 }; 824 }; 825 /* GPIO-based I2C bus for the Cypress touchkeys */ 826 i2c-gpio-1 { 827 i2c_gpio_1_default: i2c_gpio_1 { 828 janice_cfg1 { 829 pins = "GPIO196_AG26", "GPIO197_AH24"; 830 ste,config = <&gpio_in_nopull>; 831 }; 832 }; 833 }; 834 /* GPIO-based I2C bus for the Immersion ISA1200 */ 835 i2c-gpio-2 { 836 i2c_gpio_2_default: i2c_gpio_2 { 837 janice_cfg1 { 838 pins = "GPIO201_AF24", "GPIO202_AF25"; 839 ste,config = <&gpio_in_nopull>; 840 }; 841 }; 842 }; 843 /* GPIO-based I2C bus for the NFC */ 844 i2c-gpio-3 { 845 i2c_gpio_3_default: i2c_gpio_3 { 846 janice_cfg1 { 847 pins = "GPIO151_D17", "GPIO152_D16"; 848 ste,config = <&gpio_in_nopull>; 849 }; 850 }; 851 }; 852 /* GPIO-based SPI bus for the display */ 853 spi-gpio-0 { 854 spi_gpio_0_default: spi_gpio_0 { 855 janice_cfg1 { 856 pins = "GPIO220_AH10", "GPIO223_AH9", "GPIO224_AG9"; 857 ste,config = <&gpio_out_hi>; 858 }; 859 /* This pin is unused but belongs with this SPI block */ 860 janice_cfg2 { 861 pins = "GPIO225_AG8"; 862 ste,config = <&in_pd>; 863 }; 864 }; 865 }; 866 wlan { 867 wlan_default_mode: wlan_default { 868 /* GPIO216 for WL_HOST_WAKE */ 869 janice_cfg2 { 870 pins = "GPIO216_AG12"; 871 ste,config = <&gpio_in_pd>; 872 }; 873 }; 874 }; 875 bluetooth { 876 bluetooth_default_mode: bluetooth_default { 877 /* GPIO199 BT_WAKE and GPIO222 BT_VREG_ON */ 878 janice_cfg1 { 879 pins = "GPIO199_AH23", "GPIO222_AJ9"; 880 ste,config = <&gpio_out_lo>; 881 }; 882 /* GPIO97 BT_HOST_WAKE */ 883 janice_cfg2 { 884 pins = "GPIO97_D9"; 885 ste,config = <&gpio_in_nopull>; 886 }; 887 /* GPIO209 BT_RST_N */ 888 janice_cfg3 { 889 pins = "GPIO209_AG15"; 890 ste,config = <&gpio_out_hi>; 891 }; 892 }; 893 }; 894 /* Interrupt line for TI TSU6111 Micro USB switch */ 895 tsu6111 { 896 tsu6111_janice_default: tsu6111_janice { 897 janice_cfg1 { 898 /* GPIO95 used for IRQ */ 899 pins = "GPIO95_E8"; 900 ste,config = <&gpio_in_nopull>; 901 }; 902 }; 903 }; 904 nfc { 905 pn547_janice_default: pn547_janice { 906 /* Interrupt line */ 907 janice_cfg1 { 908 pins = "GPIO32_V2"; 909 ste,config = <&gpio_in_nopull>; 910 }; 911 /* Enable and firmware GPIOs */ 912 janice_cfg2 { 913 pins = "GPIO31_V3", "GPIO88_C4"; 914 ste,config = <&gpio_out_lo>; 915 }; 916 }; 917 }; 918}; 919