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 sdi0_per1@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 sdi1_per2@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 sdi2_per3@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 sdi4_per2@80114000 { 266 arm,primecell-periphid = <0x10480180>; 267 max-frequency = <100000000>; 268 bus-width = <8>; 269 cap-mmc-highspeed; 270 vmmc-supply = <&ab8500_ldo_aux2_reg>; 271 pinctrl-names = "default", "sleep"; 272 pinctrl-0 = <&mc4_a_1_default>; 273 pinctrl-1 = <&mc4_a_1_sleep>; 274 275 status = "okay"; 276 }; 277 278 uart@80120000 { 279 pinctrl-names = "default", "sleep"; 280 pinctrl-0 = <&u0_a_1_default>; 281 pinctrl-1 = <&u0_a_1_sleep>; 282 status = "okay"; 283 }; 284 285 /* This UART is unused and thus left disabled */ 286 uart@80121000 { 287 pinctrl-names = "default", "sleep"; 288 pinctrl-0 = <&u1rxtx_a_1_default>; 289 pinctrl-1 = <&u1rxtx_a_1_sleep>; 290 }; 291 292 uart@80007000 { 293 pinctrl-names = "default", "sleep"; 294 pinctrl-0 = <&u2rxtx_c_1_default>; 295 pinctrl-1 = <&u2rxtx_c_1_sleep>; 296 status = "okay"; 297 }; 298 299 i2c@80004000 { 300 pinctrl-names = "default","sleep"; 301 pinctrl-0 = <&i2c0_a_1_default>; 302 pinctrl-1 = <&i2c0_a_1_sleep>; 303 status = "okay"; 304 }; 305 306 i2c@80122000 { 307 pinctrl-names = "default","sleep"; 308 pinctrl-0 = <&i2c1_b_2_default>; 309 pinctrl-1 = <&i2c1_b_2_sleep>; 310 status = "okay"; 311 }; 312 313 i2c@80128000 { 314 pinctrl-names = "default","sleep"; 315 pinctrl-0 = <&i2c2_b_2_default>; 316 pinctrl-1 = <&i2c2_b_2_sleep>; 317 status = "okay"; 318 lsm303dlh@18 { 319 /* Accelerometer */ 320 compatible = "st,lsm303dlh-accel"; 321 st,drdy-int-pin = <1>; 322 reg = <0x18>; 323 vdd-supply = <&ab8500_ldo_aux1_reg>; 324 vddio-supply = <&db8500_vsmps2_reg>; 325 pinctrl-names = "default"; 326 pinctrl-0 = <&accel_snowball_mode>; 327 interrupt-parent = <&gpio5>; 328 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */ 329 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */ 330 }; 331 lsm303dlh@1e { 332 /* Magnetometer */ 333 compatible = "st,lsm303dlh-magn"; 334 reg = <0x1e>; 335 vdd-supply = <&ab8500_ldo_aux1_reg>; 336 vddio-supply = <&db8500_vsmps2_reg>; 337 pinctrl-names = "default"; 338 pinctrl-0 = <&magneto_snowball_mode>; 339 interrupt-parent = <&gpio5>; 340 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */ 341 }; 342 l3g4200d@68 { 343 /* Gyroscope */ 344 compatible = "st,l3g4200d-gyro"; 345 st,drdy-int-pin = <2>; 346 reg = <0x68>; 347 vdd-supply = <&ab8500_ldo_aux1_reg>; 348 vddio-supply = <&db8500_vsmps2_reg>; 349 pinctrl-names = "default"; 350 pinctrl-0 = <&gyro_snowball_mode>; 351 interrupt-parent = <&gpio5>; 352 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */ 353 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */ 354 }; 355 lsp001wm@5c { 356 /* Barometer/pressure sensor */ 357 compatible = "st,lps001wp-press"; 358 reg = <0x5c>; 359 vdd-supply = <&ab8500_ldo_aux1_reg>; 360 vddio-supply = <&db8500_vsmps2_reg>; 361 }; 362 }; 363 364 i2c@80110000 { 365 pinctrl-names = "default","sleep"; 366 pinctrl-0 = <&i2c3_c_2_default>; 367 pinctrl-1 = <&i2c3_c_2_sleep>; 368 status = "okay"; 369 }; 370 371 spi@80002000 { 372 pinctrl-names = "default"; 373 pinctrl-0 = <&ssp0_snowball_mode>; 374 status = "okay"; 375 }; 376 377 prcmu@80157000 { 378 ab8500 { 379 ab8500-gpiocontroller { 380 /* 381 * AB8500 GPIOs are numbered starting from 1, so the first 382 * index 0 is what in the datasheet is called "GPIO1", and 383 * the second is "GPIO2" and so forth. Confusingly, the 384 * Snowball schematic then names the "GPIO2" line "PM_GPIO1". 385 * while later naming "GPIO4" as "PM_GPIO4". 386 */ 387 gpio-line-names = "", /* AB8500 GPIO1 */ 388 "PM_GPIO1", /* AB8500 GPIO2 */ 389 "WLAN_CLK_REQ", /* AB8500 GPIO3 */ 390 "PM_GPIO4", /* AB8500 GPIO4 */ 391 "", "", "", "", "", "", "", "", "", "", "", 392 "EN_3V6", /* AB8500 GPIO16 */ 393 "", "", "", "" ,"", "", "", "", "", 394 "EN_3V3", /* AB8500 GPIO26 */ 395 "", "", "", "", "", "", "", "", "", "", "", "", "", 396 "PM_GPIO40", /* AB8500 GPIO40 */ 397 "PM_GPIO41", /* AB8500 GPIO41 */ 398 "PM_GPIO42"; /* AB8500 GPIO42 */ 399 }; 400 401 ab8500_usb { 402 pinctrl-names = "default", "sleep"; 403 pinctrl-0 = <&usb_a_1_default>; 404 pinctrl-1 = <&usb_a_1_sleep>; 405 }; 406 407 ext_regulators: ab8500-ext-regulators { 408 ab8500_ext1_reg: ab8500_ext1 { 409 regulator-name = "ab8500-ext-supply1"; 410 }; 411 412 ab8500_ext2_reg_reg: ab8500_ext2 { 413 regulator-name = "ab8500-ext-supply2"; 414 }; 415 416 ab8500_ext3_reg_reg: ab8500_ext3 { 417 regulator-name = "ab8500-ext-supply3"; 418 }; 419 }; 420 421 ab8500-regulators { 422 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { 423 regulator-name = "V-DISPLAY"; 424 }; 425 426 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 { 427 regulator-name = "V-eMMC1"; 428 }; 429 430 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 { 431 regulator-name = "V-MMC-SD"; 432 }; 433 434 ab8500_ldo_intcore_reg: ab8500_ldo_intcore { 435 regulator-name = "V-INTCORE"; 436 }; 437 438 ab8500_ldo_tvout_reg: ab8500_ldo_tvout { 439 regulator-name = "V-TVOUT"; 440 }; 441 442 ab8500_ldo_audio_reg: ab8500_ldo_audio { 443 regulator-name = "V-AUD"; 444 }; 445 446 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 { 447 regulator-name = "V-AMIC1"; 448 }; 449 450 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 { 451 regulator-name = "V-AMIC2"; 452 }; 453 454 ab8500_ldo_dmic_reg: ab8500_ldo_dmic { 455 regulator-name = "V-DMIC"; 456 }; 457 458 ab8500_ldo_ana_reg: ab8500_ldo_ana { 459 regulator-name = "V-CSI/DSI"; 460 }; 461 }; 462 }; 463 }; 464 465 pinctrl { 466 /* 467 * Set this up using hogs, as time goes by and as seems fit, these 468 * can be moved over to being controlled by respective device. 469 */ 470 pinctrl-names = "default"; 471 pinctrl-0 = <&gbf_snowball_mode>, 472 <&wlan_snowball_mode>; 473 474 ethernet { 475 /* 476 * Mux in "SM" which is used for the 477 * SMSC911x Ethernet adapter 478 */ 479 eth_snowball_mode: eth_snowball { 480 snowball_mux { 481 function = "sm"; 482 groups = "sm_b_1"; 483 }; 484 /* LAN IRQ pin */ 485 snowball_cfg1 { 486 pins = "GPIO140_B11"; 487 ste,config = <&in_nopull>; 488 }; 489 /* LAN reset pin */ 490 snowball_cfg2 { 491 pins = "GPIO141_C12"; 492 ste,config = <&gpio_out_hi>; 493 }; 494 495 }; 496 }; 497 sdi0 { 498 sdi0_default_mode: sdi0_default { 499 snowball_mux { 500 function = "mc0"; 501 /* Add the DAT31 pin even if it is not really used */ 502 groups = "mc0dat31dir_a_1"; 503 }; 504 snowball_cfg1 { 505 pins = "GPIO21_AB3"; /* DAT31DIR */ 506 ste,config = <&out_hi>; 507 }; 508 /* SD card detect GPIO pin, extend default state */ 509 snowball_cfg2 { 510 pins = "GPIO218_AH11"; 511 ste,config = <&gpio_in_pu>; 512 }; 513 /* VMMCI level-shifter enable */ 514 snowball_cfg3 { 515 pins = "GPIO217_AH12"; 516 ste,config = <&gpio_out_hi>; 517 }; 518 /* VMMCI level-shifter voltage select */ 519 snowball_cfg4 { 520 pins = "GPIO228_AJ6"; 521 ste,config = <&gpio_out_hi>; 522 }; 523 }; 524 }; 525 ssp0 { 526 ssp0_snowball_mode: ssp0_snowball_default { 527 snowball_mux { 528 function = "ssp0"; 529 groups = "ssp0_a_1"; 530 }; 531 snowball_cfg1 { 532 pins = "GPIO144_B13"; /* FRM */ 533 ste,config = <&gpio_out_hi>; 534 }; 535 snowball_cfg2 { 536 pins = "GPIO145_C13"; /* RXD */ 537 ste,config = <&in_pd>; 538 }; 539 snowball_cfg3 { 540 pins = 541 "GPIO146_D13", /* TXD */ 542 "GPIO143_D12"; /* CLK */ 543 ste,config = <&out_lo>; 544 }; 545 546 }; 547 }; 548 gpio_led { 549 gpioled_snowball_mode: gpioled_default { 550 snowball_cfg1 { 551 pins = "GPIO142_C11"; 552 ste,config = <&gpio_out_hi>; 553 }; 554 555 }; 556 }; 557 accelerometer { 558 accel_snowball_mode: accel_snowball { 559 /* Accelerometer lines */ 560 snowball_cfg1 { 561 pins = 562 "GPIO163_C20", /* ACCEL_IRQ1 */ 563 "GPIO164_B21"; /* ACCEL_IRQ2 */ 564 ste,config = <&gpio_in_pu>; 565 }; 566 }; 567 }; 568 gyro { 569 gyro_snowball_mode: gyro_snowball { 570 snowball_cfg1 { 571 pins = 572 "GPIO166_A22", /* DRDY */ 573 "GPIO169_D22"; /* INT */ 574 ste,config = <&gpio_in_pu>; 575 }; 576 }; 577 }; 578 magnetometer { 579 magneto_snowball_mode: magneto_snowball { 580 snowball_cfg1 { 581 pins = "GPIO165_C21"; /* MAG_DRDY */ 582 ste,config = <&gpio_in_pu>; 583 }; 584 }; 585 }; 586 gbf { 587 gbf_snowball_mode: gbf_snowball { 588 /* 589 * GBF (GPS, Bluetooth, FM-radio) interface, 590 * pull low to reset state 591 */ 592 snowball_cfg1 { 593 pins = "GPIO171_D23"; /* GBF_ENA_RESET */ 594 ste,config = <&gpio_out_lo>; 595 }; 596 }; 597 }; 598 wlan { 599 wlan_snowball_mode: wlan_snowball { 600 /* 601 * Activate this mode with the WLAN chip. 602 * These are plain GPIO pins used by WLAN 603 */ 604 snowball_cfg1 { 605 pins = 606 "GPIO161_D21", /* WLAN_PMU_EN */ 607 "GPIO215_AH13"; /* WLAN_ENA */ 608 ste,config = <&gpio_out_lo>; 609 }; 610 snowball_cfg2 { 611 pins = "GPIO216_AG12"; /* WLAN_IRQ */ 612 ste,config = <&gpio_in_pu>; 613 }; 614 }; 615 }; 616 }; 617 618 mcde@a0350000 { 619 pinctrl-names = "default", "sleep"; 620 pinctrl-0 = <&lcd_default_mode>; 621 pinctrl-1 = <&lcd_sleep_mode>; 622 }; 623 }; 624}; 625