ste-snowball.dts (15648B)
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Copyright 2011 ST-Ericsson AB 4 */ 5 6/dts-v1/; 7#include "ste-db9500.dtsi" 8#include "ste-href-ab8500.dtsi" 9#include "ste-href-family-pinctrl.dtsi" 10 11/ { 12 model = "Calao Systems Snowball platform with device tree"; 13 compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500"; 14 15 memory { 16 device_type = "memory"; 17 reg = <0x00000000 0x20000000>; 18 }; 19 20 battery: battery { 21 compatible = "simple-battery"; 22 battery-type = "lithium-ion-polymer"; 23 }; 24 25 thermal-zones { 26 battery-thermal { 27 /* This zone will be polled by the battery temperature code */ 28 polling-delay = <0>; 29 polling-delay-passive = <0>; 30 thermal-sensors = <&bat_therm>; 31 }; 32 }; 33 34 bat_therm: thermistor { 35 compatible = "murata,ncp18wb473"; 36 io-channels = <&gpadc 0x02>; /* BatTemp */ 37 pullup-uv = <1800000>; 38 pullup-ohm = <230000>; 39 pulldown-ohm = <0>; 40 #thermal-sensor-cells = <0>; 41 }; 42 43 en_3v3_reg: en_3v3 { 44 compatible = "regulator-fixed"; 45 regulator-name = "en-3v3-fixed-supply"; 46 regulator-min-microvolt = <3300000>; 47 regulator-max-microvolt = <3300000>; 48 /* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */ 49 gpio = <&ab8500_gpio 25 0x4>; 50 startup-delay-us = <5000>; 51 enable-active-high; 52 }; 53 54 gpio_keys { 55 compatible = "gpio-keys"; 56 #address-cells = <1>; 57 #size-cells = <0>; 58 59 button@1 { 60 debounce-interval = <50>; 61 wakeup-source; 62 linux,code = <2>; 63 label = "userpb"; 64 gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; 65 }; 66 button@2 { 67 debounce-interval = <50>; 68 wakeup-source; 69 linux,code = <3>; 70 label = "extkb1"; 71 gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>; 72 }; 73 button@3 { 74 debounce-interval = <50>; 75 wakeup-source; 76 linux,code = <4>; 77 label = "extkb2"; 78 gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>; 79 }; 80 button@4 { 81 debounce-interval = <50>; 82 wakeup-source; 83 linux,code = <5>; 84 label = "extkb3"; 85 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; 86 }; 87 button@5 { 88 debounce-interval = <50>; 89 wakeup-source; 90 linux,code = <6>; 91 label = "extkb4"; 92 gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>; 93 }; 94 }; 95 96 leds { 97 compatible = "gpio-leds"; 98 pinctrl-names = "default"; 99 pinctrl-0 = <&gpioled_snowball_mode>; 100 used-led { 101 label = "user_led"; 102 gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>; 103 default-state = "on"; 104 linux,default-trigger = "heartbeat"; 105 }; 106 }; 107 108 soc { 109 /* Name the GPIO muxed rails on the Snowball board */ 110 gpio@8012e000 { 111 /* GPIOs 0 - 31 */ 112 gpio-line-names = "", "", "", "", "", "", "", "", 113 "", "", "", "", "", "", "", "", 114 "", "", "", "", "", "", "", "", 115 "", "", "", "", "", "", "", 116 "AP_GPIO31"; 117 }; 118 119 gpio@8012e080 { 120 /* GPIOs 32 - 63 */ 121 gpio-line-names = "USR PB", "", "", "", "", "", "", "", 122 "", "", "", "", "", "", "", "", 123 "", "", "", "", "", "", "", "", 124 "", "", "", "", "", "", "", ""; 125 }; 126 127 gpio@8000e000 { 128 /* GPIOs 64 - 95 */ 129 gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "", 130 "", "", "", "", "", "", "", "", 131 "", "", "", "", "", "", "", "", 132 "", "", "", "", "", "", "", ""; 133 }; 134 135 gpio@8000e100 { 136 /* GPIOs 128 - 159 */ 137 gpio-line-names = "", "", "", "", "", "", "", "", 138 "", "", "", "", "IRQ_LAN", "RSTn_LAN", 139 "USR_LED", "", "", "", "", "", "", 140 "", "", "AP_GPIO151", "AP_GPIO152", 141 "", "", "", "", "", "", ""; 142 }; 143 144 gpio@8000e180 { 145 /* GPIOs 160 - 191 */ 146 gpio-line-names = "", "AP_GPIO161", "AP_GPIO162", 147 "ACCELEROMETER_INT1_RDY", 148 "ACCELEROMETER_INT2", "MAG_DRDY", 149 "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC", 150 "GYRO_INT", "UART_WAKE", "GBF_RESET", 151 "", "", "", "", 152 "", "", "", "", "", "", "", "", 153 "", "", "", "", "", "", "", ""; 154 }; 155 156 gpio@8011e000 { 157 /* GPIOs 192 - 223 */ 158 gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST", 159 "", "", "", "", "", "", "", "", "", 160 "", "", "", "", "", "", "", "", "", 161 "WLAN_RESETN", "WLAN_IRQ", "MMC_EN", 162 "MMC_CD", "", "", "", "", ""; 163 }; 164 165 gpio@8011e080 { 166 /* GPIOs 224 - 255 */ 167 gpio-line-names = "", "", "", "", "SD_SEL", "", "", "", 168 "", "", "", "", "", "", "", "", 169 "", "", "", "", "", "", "", "", 170 "", "", "", "", "", "", "", ""; 171 }; 172 173 msp0: msp@80123000 { 174 pinctrl-names = "default"; 175 pinctrl-0 = <&msp0txrxtfstck_a_1_default>; 176 status = "okay"; 177 }; 178 179 msp1: msp@80124000 { 180 pinctrl-names = "default"; 181 pinctrl-0 = <&msp1txrx_a_1_default>; 182 status = "okay"; 183 }; 184 185 msp2: msp@80117000 { 186 pinctrl-names = "default"; 187 pinctrl-0 = <&msp2_a_1_default>; 188 }; 189 190 msp3: msp@80125000 { 191 status = "okay"; 192 }; 193 194 external-bus@50000000 { 195 status = "okay"; 196 197 ethernet@0 { 198 compatible = "smsc,lan9115"; 199 reg = <0 0x10000>; 200 interrupts = <12 IRQ_TYPE_EDGE_RISING>; 201 interrupt-parent = <&gpio4>; 202 vdd33a-supply = <&en_3v3_reg>; 203 vddvario-supply = <&db8500_vape_reg>; 204 pinctrl-names = "default"; 205 pinctrl-0 = <ð_snowball_mode>; 206 207 reg-shift = <1>; 208 reg-io-width = <2>; 209 smsc,force-internal-phy; 210 smsc,irq-active-high; 211 smsc,irq-push-pull; 212 213 clocks = <&prcc_pclk 3 0>; 214 }; 215 }; 216 217 /* ST6G3244ME level translator for 1.8/2.9 V */ 218 vmmci: regulator-gpio { 219 compatible = "regulator-gpio"; 220 221 /* GPIO228 SD_SEL */ 222 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>; 223 /* GPIO217 MMC_EN */ 224 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>; 225 enable-active-high; 226 227 regulator-min-microvolt = <1800000>; 228 regulator-max-microvolt = <2900000>; 229 regulator-name = "mmci-reg"; 230 regulator-type = "voltage"; 231 232 startup-delay-us = <100>; 233 234 states = <1800000 0x1 235 2900000 0x0>; 236 }; 237 238 // External Micro SD slot 239 mmc@80126000 { 240 arm,primecell-periphid = <0x10480180>; 241 max-frequency = <100000000>; 242 bus-width = <4>; 243 cap-sd-highspeed; 244 cap-mmc-highspeed; 245 sd-uhs-sdr12; 246 sd-uhs-sdr25; 247 /* All direction control is used */ 248 st,sig-dir-cmd; 249 st,sig-dir-dat0; 250 st,sig-dir-dat2; 251 st,sig-dir-dat31; 252 st,sig-pin-fbclk; 253 full-pwr-cycle; 254 vmmc-supply = <&ab8500_ldo_aux3_reg>; 255 vqmmc-supply = <&vmmci>; 256 pinctrl-names = "default", "sleep"; 257 pinctrl-0 = <&mc0_a_1_default &sdi0_default_mode>; 258 pinctrl-1 = <&mc0_a_1_sleep>; 259 260 /* GPIO218 MMC_CD */ 261 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>; 262 263 status = "okay"; 264 }; 265 266 // WLAN SDIO channel 267 mmc@80118000 { 268 arm,primecell-periphid = <0x10480180>; 269 max-frequency = <100000000>; 270 bus-width = <4>; 271 pinctrl-names = "default", "sleep"; 272 pinctrl-0 = <&mc1_a_1_default>; 273 pinctrl-1 = <&mc1_a_1_sleep>; 274 275 status = "okay"; 276 }; 277 278 // Unused PoP eMMC - register and put it to sleep by default */ 279 mmc@80005000 { 280 arm,primecell-periphid = <0x10480180>; 281 pinctrl-names = "default"; 282 pinctrl-0 = <&mc2_a_1_sleep>; 283 284 status = "okay"; 285 }; 286 287 // On-board eMMC 288 mmc@80114000 { 289 arm,primecell-periphid = <0x10480180>; 290 max-frequency = <100000000>; 291 bus-width = <8>; 292 cap-mmc-highspeed; 293 no-sdio; 294 no-sd; 295 vmmc-supply = <&ab8500_ldo_aux2_reg>; 296 pinctrl-names = "default", "sleep"; 297 pinctrl-0 = <&mc4_a_1_default>; 298 pinctrl-1 = <&mc4_a_1_sleep>; 299 300 status = "okay"; 301 }; 302 303 uart@80120000 { 304 pinctrl-names = "default", "sleep"; 305 pinctrl-0 = <&u0_a_1_default>; 306 pinctrl-1 = <&u0_a_1_sleep>; 307 status = "okay"; 308 }; 309 310 /* This UART is unused and thus left disabled */ 311 uart@80121000 { 312 pinctrl-names = "default", "sleep"; 313 pinctrl-0 = <&u1rxtx_a_1_default>; 314 pinctrl-1 = <&u1rxtx_a_1_sleep>; 315 }; 316 317 uart@80007000 { 318 pinctrl-names = "default", "sleep"; 319 pinctrl-0 = <&u2rxtx_c_1_default>; 320 pinctrl-1 = <&u2rxtx_c_1_sleep>; 321 status = "okay"; 322 }; 323 324 i2c@80004000 { 325 pinctrl-names = "default","sleep"; 326 pinctrl-0 = <&i2c0_a_1_default>; 327 pinctrl-1 = <&i2c0_a_1_sleep>; 328 status = "okay"; 329 }; 330 331 i2c@80122000 { 332 pinctrl-names = "default","sleep"; 333 pinctrl-0 = <&i2c1_b_2_default>; 334 pinctrl-1 = <&i2c1_b_2_sleep>; 335 status = "okay"; 336 }; 337 338 i2c@80128000 { 339 pinctrl-names = "default","sleep"; 340 pinctrl-0 = <&i2c2_b_2_default>; 341 pinctrl-1 = <&i2c2_b_2_sleep>; 342 status = "okay"; 343 lsm303dlh@18 { 344 /* Accelerometer */ 345 compatible = "st,lsm303dlh-accel"; 346 st,drdy-int-pin = <1>; 347 reg = <0x18>; 348 vdd-supply = <&ab8500_ldo_aux1_reg>; 349 vddio-supply = <&db8500_vsmps2_reg>; 350 pinctrl-names = "default"; 351 pinctrl-0 = <&accel_snowball_mode>; 352 interrupt-parent = <&gpio5>; 353 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */ 354 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */ 355 }; 356 lsm303dlh@1e { 357 /* Magnetometer */ 358 compatible = "st,lsm303dlh-magn"; 359 reg = <0x1e>; 360 vdd-supply = <&ab8500_ldo_aux1_reg>; 361 vddio-supply = <&db8500_vsmps2_reg>; 362 pinctrl-names = "default"; 363 pinctrl-0 = <&magneto_snowball_mode>; 364 interrupt-parent = <&gpio5>; 365 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */ 366 }; 367 l3g4200d@68 { 368 /* Gyroscope */ 369 compatible = "st,l3g4200d-gyro"; 370 st,drdy-int-pin = <2>; 371 reg = <0x68>; 372 vdd-supply = <&ab8500_ldo_aux1_reg>; 373 vddio-supply = <&db8500_vsmps2_reg>; 374 pinctrl-names = "default"; 375 pinctrl-0 = <&gyro_snowball_mode>; 376 interrupt-parent = <&gpio5>; 377 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */ 378 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */ 379 }; 380 lsp001wm@5c { 381 /* Barometer/pressure sensor */ 382 compatible = "st,lps001wp-press"; 383 reg = <0x5c>; 384 vdd-supply = <&ab8500_ldo_aux1_reg>; 385 vddio-supply = <&db8500_vsmps2_reg>; 386 }; 387 }; 388 389 i2c@80110000 { 390 pinctrl-names = "default","sleep"; 391 pinctrl-0 = <&i2c3_c_2_default>; 392 pinctrl-1 = <&i2c3_c_2_sleep>; 393 status = "okay"; 394 }; 395 396 spi@80002000 { 397 pinctrl-names = "default"; 398 pinctrl-0 = <&ssp0_snowball_mode>; 399 status = "okay"; 400 }; 401 402 prcmu@80157000 { 403 ab8500 { 404 gpio { 405 /* 406 * AB8500 GPIOs are numbered starting from 1, so the first 407 * index 0 is what in the datasheet is called "GPIO1", and 408 * the second is "GPIO2" and so forth. Confusingly, the 409 * Snowball schematic then names the "GPIO2" line "PM_GPIO1". 410 * while later naming "GPIO4" as "PM_GPIO4". 411 */ 412 gpio-line-names = "", /* AB8500 GPIO1 */ 413 "PM_GPIO1", /* AB8500 GPIO2 */ 414 "WLAN_CLK_REQ", /* AB8500 GPIO3 */ 415 "PM_GPIO4", /* AB8500 GPIO4 */ 416 "", "", "", "", "", "", "", "", "", "", "", 417 "EN_3V6", /* AB8500 GPIO16 */ 418 "", "", "", "" ,"", "", "", "", "", 419 "EN_3V3", /* AB8500 GPIO26 */ 420 "", "", "", "", "", "", "", "", "", "", "", "", "", 421 "PM_GPIO40", /* AB8500 GPIO40 */ 422 "PM_GPIO41", /* AB8500 GPIO41 */ 423 "PM_GPIO42"; /* AB8500 GPIO42 */ 424 }; 425 426 phy { 427 pinctrl-names = "default", "sleep"; 428 pinctrl-0 = <&usb_a_1_default>; 429 pinctrl-1 = <&usb_a_1_sleep>; 430 }; 431 432 ext_regulators: regulator-external { 433 ab8500_ext1_reg: ab8500_ext1 { 434 regulator-name = "ab8500-ext-supply1"; 435 }; 436 437 ab8500_ext2_reg_reg: ab8500_ext2 { 438 regulator-name = "ab8500-ext-supply2"; 439 }; 440 441 ab8500_ext3_reg_reg: ab8500_ext3 { 442 regulator-name = "ab8500-ext-supply3"; 443 }; 444 }; 445 446 regulator { 447 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { 448 regulator-name = "V-DISPLAY"; 449 }; 450 451 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 { 452 regulator-name = "V-eMMC1"; 453 }; 454 455 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 { 456 regulator-name = "V-MMC-SD"; 457 }; 458 459 ab8500_ldo_intcore_reg: ab8500_ldo_intcore { 460 regulator-name = "V-INTCORE"; 461 }; 462 463 ab8500_ldo_tvout_reg: ab8500_ldo_tvout { 464 regulator-name = "V-TVOUT"; 465 }; 466 467 ab8500_ldo_audio_reg: ab8500_ldo_audio { 468 regulator-name = "V-AUD"; 469 }; 470 471 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 { 472 regulator-name = "V-AMIC1"; 473 }; 474 475 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 { 476 regulator-name = "V-AMIC2"; 477 }; 478 479 ab8500_ldo_dmic_reg: ab8500_ldo_dmic { 480 regulator-name = "V-DMIC"; 481 }; 482 483 ab8500_ldo_ana_reg: ab8500_ldo_ana { 484 regulator-name = "V-CSI/DSI"; 485 }; 486 }; 487 }; 488 }; 489 490 pinctrl { 491 /* 492 * Set this up using hogs, as time goes by and as seems fit, these 493 * can be moved over to being controlled by respective device. 494 */ 495 pinctrl-names = "default"; 496 pinctrl-0 = <&gbf_snowball_mode>, 497 <&wlan_snowball_mode>; 498 499 ethernet { 500 /* 501 * Mux in "SM" which is used for the 502 * SMSC911x Ethernet adapter 503 */ 504 eth_snowball_mode: eth_snowball { 505 snowball_mux { 506 function = "sm"; 507 groups = "sm_b_1"; 508 }; 509 /* LAN IRQ pin */ 510 snowball_cfg1 { 511 pins = "GPIO140_B11"; 512 ste,config = <&in_nopull>; 513 }; 514 /* LAN reset pin */ 515 snowball_cfg2 { 516 pins = "GPIO141_C12"; 517 ste,config = <&gpio_out_hi>; 518 }; 519 520 }; 521 }; 522 sdi0 { 523 sdi0_default_mode: sdi0_default { 524 snowball_mux { 525 function = "mc0"; 526 /* Add the DAT31 pin even if it is not really used */ 527 groups = "mc0dat31dir_a_1"; 528 }; 529 snowball_cfg1 { 530 pins = "GPIO21_AB3"; /* DAT31DIR */ 531 ste,config = <&out_hi>; 532 }; 533 /* SD card detect GPIO pin, extend default state */ 534 snowball_cfg2 { 535 pins = "GPIO218_AH11"; 536 ste,config = <&gpio_in_pu>; 537 }; 538 /* VMMCI level-shifter enable */ 539 snowball_cfg3 { 540 pins = "GPIO217_AH12"; 541 ste,config = <&gpio_out_hi>; 542 }; 543 /* VMMCI level-shifter voltage select */ 544 snowball_cfg4 { 545 pins = "GPIO228_AJ6"; 546 ste,config = <&gpio_out_hi>; 547 }; 548 }; 549 }; 550 ssp0 { 551 ssp0_snowball_mode: ssp0_snowball_default { 552 snowball_mux { 553 function = "ssp0"; 554 groups = "ssp0_a_1"; 555 }; 556 snowball_cfg1 { 557 pins = "GPIO144_B13"; /* FRM */ 558 ste,config = <&gpio_out_hi>; 559 }; 560 snowball_cfg2 { 561 pins = "GPIO145_C13"; /* RXD */ 562 ste,config = <&in_pd>; 563 }; 564 snowball_cfg3 { 565 pins = 566 "GPIO146_D13", /* TXD */ 567 "GPIO143_D12"; /* CLK */ 568 ste,config = <&out_lo>; 569 }; 570 571 }; 572 }; 573 gpio_led { 574 gpioled_snowball_mode: gpioled_default { 575 snowball_cfg1 { 576 pins = "GPIO142_C11"; 577 ste,config = <&gpio_out_hi>; 578 }; 579 580 }; 581 }; 582 accelerometer { 583 accel_snowball_mode: accel_snowball { 584 /* Accelerometer lines */ 585 snowball_cfg1 { 586 pins = 587 "GPIO163_C20", /* ACCEL_IRQ1 */ 588 "GPIO164_B21"; /* ACCEL_IRQ2 */ 589 ste,config = <&gpio_in_pu>; 590 }; 591 }; 592 }; 593 gyro { 594 gyro_snowball_mode: gyro_snowball { 595 snowball_cfg1 { 596 pins = 597 "GPIO166_A22", /* DRDY */ 598 "GPIO169_D22"; /* INT */ 599 ste,config = <&gpio_in_pu>; 600 }; 601 }; 602 }; 603 magnetometer { 604 magneto_snowball_mode: magneto_snowball { 605 snowball_cfg1 { 606 pins = "GPIO165_C21"; /* MAG_DRDY */ 607 ste,config = <&gpio_in_pu>; 608 }; 609 }; 610 }; 611 gbf { 612 gbf_snowball_mode: gbf_snowball { 613 /* 614 * GBF (GPS, Bluetooth, FM-radio) interface, 615 * pull low to reset state 616 */ 617 snowball_cfg1 { 618 pins = "GPIO171_D23"; /* GBF_ENA_RESET */ 619 ste,config = <&gpio_out_lo>; 620 }; 621 }; 622 }; 623 wlan { 624 wlan_snowball_mode: wlan_snowball { 625 /* 626 * Activate this mode with the WLAN chip. 627 * These are plain GPIO pins used by WLAN 628 */ 629 snowball_cfg1 { 630 pins = 631 "GPIO161_D21", /* WLAN_PMU_EN */ 632 "GPIO215_AH13"; /* WLAN_ENA */ 633 ste,config = <&gpio_out_lo>; 634 }; 635 snowball_cfg2 { 636 pins = "GPIO216_AG12"; /* WLAN_IRQ */ 637 ste,config = <&gpio_in_pu>; 638 }; 639 }; 640 }; 641 }; 642 643 mcde@a0350000 { 644 pinctrl-names = "default", "sleep"; 645 pinctrl-0 = <&lcd_default_mode>; 646 pinctrl-1 = <&lcd_sleep_mode>; 647 }; 648 }; 649};