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