1/* 2 * Copyright (C) 2013 Marek Belisko <marek@goldelico.com> 3 * 4 * Based on omap3-beagle-xm.dts 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 */ 10/dts-v1/; 11 12#include "omap36xx.dtsi" 13 14/ { 15 model = "OMAP3 GTA04"; 16 compatible = "ti,omap3-gta04", "ti,omap36xx", "ti,omap3"; 17 18 cpus { 19 cpu@0 { 20 cpu0-supply = <&vcc>; 21 }; 22 }; 23 24 memory { 25 device_type = "memory"; 26 reg = <0x80000000 0x20000000>; /* 512 MB */ 27 }; 28 29 aliases { 30 display0 = &lcd; 31 }; 32 33 gpio-keys { 34 compatible = "gpio-keys"; 35 36 aux-button { 37 label = "aux"; 38 linux,code = <169>; 39 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; 40 gpio-key,wakeup; 41 }; 42 }; 43 44 sound { 45 compatible = "ti,omap-twl4030"; 46 ti,model = "gta04"; 47 48 ti,mcbsp = <&mcbsp2>; 49 }; 50 51 spi_lcd { 52 compatible = "spi-gpio"; 53 #address-cells = <0x1>; 54 #size-cells = <0x0>; 55 pinctrl-names = "default"; 56 pinctrl-0 = <&spi_gpio_pins>; 57 58 gpio-sck = <&gpio1 12 0>; 59 gpio-miso = <&gpio1 18 0>; 60 gpio-mosi = <&gpio1 20 0>; 61 cs-gpios = <&gpio1 19 0>; 62 num-chipselects = <1>; 63 64 /* lcd panel */ 65 lcd: td028ttec1@0 { 66 compatible = "toppoly,td028ttec1"; 67 reg = <0>; 68 spi-max-frequency = <100000>; 69 spi-cpol; 70 spi-cpha; 71 72 label = "lcd"; 73 port { 74 lcd_in: endpoint { 75 remote-endpoint = <&dpi_out>; 76 }; 77 }; 78 }; 79 }; 80 81 hsusb2_phy: hsusb2_phy { 82 compatible = "usb-nop-xceiv"; 83 reset-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 84 }; 85 86 tv0: connector@1 { 87 compatible = "svideo-connector"; 88 label = "tv"; 89 90 port { 91 tv_connector_in: endpoint { 92 remote-endpoint = <&opa_out>; 93 }; 94 }; 95 }; 96 97 tv_amp: opa362 { 98 compatible = "ti,opa362"; 99 enable-gpios = <&gpio1 23 0>; 100 101 ports { 102 #address-cells = <1>; 103 #size-cells = <0>; 104 105 port@0 { 106 reg = <0>; 107 opa_in: endpoint@0 { 108 remote-endpoint = <&venc_out>; 109 }; 110 }; 111 112 port@1 { 113 reg = <1>; 114 opa_out: endpoint@0 { 115 remote-endpoint = <&tv_connector_in>; 116 }; 117 }; 118 }; 119 }; 120}; 121 122&omap3_pmx_core { 123 pinctrl-names = "default"; 124 pinctrl-0 = < 125 &hsusb2_pins 126 >; 127 128 hsusb2_pins: pinmux_hsusb2_pins { 129 pinctrl-single,pins = < 130 OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */ 131 OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */ 132 OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */ 133 OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */ 134 OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */ 135 OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */ 136 >; 137 }; 138 139 uart1_pins: pinmux_uart1_pins { 140 pinctrl-single,pins = < 141 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE0) /* uart1_rx.uart1_rx */ 142 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE0) /* uart1_tx.uart1_tx */ 143 >; 144 }; 145 146 uart2_pins: pinmux_uart2_pins { 147 pinctrl-single,pins = < 148 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */ 149 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */ 150 >; 151 }; 152 153 uart3_pins: pinmux_uart3_pins { 154 pinctrl-single,pins = < 155 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx.uart3_rx */ 156 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx.uart3_tx */ 157 >; 158 }; 159 160 mmc1_pins: pinmux_mmc1_pins { 161 pinctrl-single,pins = < 162 OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ 163 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */ 164 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */ 165 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */ 166 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */ 167 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ 168 >; 169 }; 170 171 dss_dpi_pins: pinmux_dss_dpi_pins { 172 pinctrl-single,pins = < 173 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */ 174 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */ 175 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */ 176 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */ 177 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0) /* dss_data0.dss_data0 */ 178 OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0) /* dss_data1.dss_data1 */ 179 OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0) /* dss_data2.dss_data2 */ 180 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0) /* dss_data3.dss_data3 */ 181 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0) /* dss_data4.dss_data4 */ 182 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0) /* dss_data5.dss_data5 */ 183 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */ 184 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */ 185 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */ 186 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */ 187 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */ 188 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */ 189 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */ 190 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */ 191 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */ 192 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */ 193 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */ 194 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */ 195 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0) /* dss_data18.dss_data18 */ 196 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0) /* dss_data19.dss_data19 */ 197 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0) /* dss_data20.dss_data20 */ 198 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0) /* dss_data21.dss_data21 */ 199 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0) /* dss_data22.dss_data22 */ 200 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0) /* dss_data23.dss_data23 */ 201 >; 202 }; 203}; 204 205&omap3_pmx_core2 { 206 pinctrl-names = "default"; 207 pinctrl-0 = < 208 &hsusb2_2_pins 209 >; 210 211 hsusb2_2_pins: pinmux_hsusb2_2_pins { 212 pinctrl-single,pins = < 213 OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */ 214 OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */ 215 OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */ 216 OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */ 217 OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */ 218 OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */ 219 >; 220 }; 221 222 spi_gpio_pins: spi_gpio_pinmux { 223 pinctrl-single,pins = < 224 OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE4) /* clk */ 225 OMAP3630_CORE2_IOPAD(0x25e6, PIN_OUTPUT | MUX_MODE4) /* cs */ 226 OMAP3630_CORE2_IOPAD(0x25e8, PIN_OUTPUT | MUX_MODE4) /* tx */ 227 OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT | MUX_MODE4) /* rx */ 228 >; 229 }; 230}; 231 232&i2c1 { 233 clock-frequency = <2600000>; 234 235 twl: twl@48 { 236 reg = <0x48>; 237 interrupts = <7>; /* SYS_NIRQ cascaded to intc */ 238 interrupt-parent = <&intc>; 239 240 twl_audio: audio { 241 compatible = "ti,twl4030-audio"; 242 ti,enable-vibra = <1>; 243 codec { 244 ti,ramp_delay_value = <3>; 245 }; 246 }; 247 248 twl_power: power { 249 compatible = "ti,twl4030-power"; 250 ti,use_poweroff; 251 }; 252 }; 253}; 254 255#include "twl4030.dtsi" 256#include "twl4030_omap3.dtsi" 257 258&i2c2 { 259 clock-frequency = <400000>; 260 261 /* pressure sensor */ 262 bmp085@77 { 263 compatible = "bosch,bmp085"; 264 reg = <0x77>; 265 interrupt-parent = <&gpio4>; 266 interrupts = <17 IRQ_TYPE_EDGE_RISING>; /* GPIO_113 */ 267 }; 268 269 /* accelerometer */ 270 bma180@41 { 271 compatible = "bosch,bma180"; 272 reg = <0x41>; 273 interrupt-parent = <&gpio4>; 274 interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_115 */ 275 }; 276 277 /* gyroscope */ 278 itg3200@68 { 279 compatible = "invensense,itg3200"; 280 reg = <0x68>; 281 interrupt-parent = <&gpio2>; 282 interrupts = <24 0>; /* GPIO_56 */ 283 }; 284 285 /* leds */ 286 tca6507@45 { 287 compatible = "ti,tca6507"; 288 #address-cells = <1>; 289 #size-cells = <0>; 290 reg = <0x45>; 291 292 gpio-controller; 293 #gpio-cells = <2>; 294 295 gta04_led0: red_aux@0 { 296 label = "gta04:red:aux"; 297 reg = <0x0>; 298 }; 299 300 gta04_led1: green_aux@1 { 301 label = "gta04:green:aux"; 302 reg = <0x1>; 303 }; 304 305 gta04_led3: red_power@3 { 306 label = "gta04:red:power"; 307 reg = <0x3>; 308 linux,default-trigger = "default-on"; 309 }; 310 311 gta04_led4: green_power@4 { 312 label = "gta04:green:power"; 313 reg = <0x4>; 314 }; 315 316 wifi_reset: wifi_reset@6 { 317 reg = <0x6>; 318 compatible = "gpio"; 319 }; 320 }; 321 322 /* compass aka magnetometer */ 323 hmc5843@1e { 324 compatible = "honeywell,hmc5883l"; 325 reg = <0x1e>; 326 }; 327 328 /* touchscreen */ 329 tsc2007@48 { 330 compatible = "ti,tsc2007"; 331 reg = <0x48>; 332 interrupt-parent = <&gpio6>; 333 interrupts = <0 IRQ_TYPE_EDGE_FALLING>; /* GPIO_160 */ 334 gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; 335 ti,x-plate-ohms = <600>; 336 }; 337}; 338 339&i2c3 { 340 clock-frequency = <100000>; 341}; 342 343&usb_otg_hs { 344 interface-type = <0>; 345 usb-phy = <&usb2_phy>; 346 phys = <&usb2_phy>; 347 phy-names = "usb2-phy"; 348 mode = <3>; 349 power = <50>; 350}; 351 352&usbhshost { 353 port2-mode = "ehci-phy"; 354}; 355 356&usbhsehci { 357 phys = <0 &hsusb2_phy>; 358}; 359 360&mmc1 { 361 pinctrl-names = "default"; 362 pinctrl-0 = <&mmc1_pins>; 363 vmmc-supply = <&vmmc1>; 364 bus-width = <4>; 365 ti,non-removable; 366}; 367 368&mmc2 { 369 vmmc-supply = <&vaux4>; 370 bus-width = <4>; 371 ti,non-removable; 372 cap-power-off-card; 373}; 374 375&mmc3 { 376 status = "disabled"; 377}; 378 379&twl_keypad { 380 status = "disabled"; 381}; 382 383&uart1 { 384 pinctrl-names = "default"; 385 pinctrl-0 = <&uart1_pins>; 386}; 387 388&uart2 { 389 pinctrl-names = "default"; 390 pinctrl-0 = <&uart2_pins>; 391}; 392 393&uart3 { 394 pinctrl-names = "default"; 395 pinctrl-0 = <&uart3_pins>; 396}; 397 398&charger { 399 ti,bb-uvolt = <3200000>; 400 ti,bb-uamp = <150>; 401}; 402 403/* spare */ 404&vaux1 { 405 regulator-min-microvolt = <2500000>; 406 regulator-max-microvolt = <3000000>; 407}; 408 409/* sensors */ 410&vaux2 { 411 regulator-min-microvolt = <2800000>; 412 regulator-max-microvolt = <2800000>; 413 regulator-always-on; 414}; 415 416/* camera */ 417&vaux3 { 418 regulator-min-microvolt = <2500000>; 419 regulator-max-microvolt = <2500000>; 420}; 421 422/* WLAN/BT */ 423&vaux4 { 424 regulator-min-microvolt = <2800000>; 425 regulator-max-microvolt = <3150000>; 426}; 427 428/* GPS LNA */ 429&vsim { 430 regulator-min-microvolt = <2800000>; 431 regulator-max-microvolt = <3150000>; 432}; 433 434&dss { 435 pinctrl-names = "default"; 436 pinctrl-0 = < &dss_dpi_pins >; 437 438 status = "okay"; 439 vdds_dsi-supply = <&vpll2>; 440 441 port { 442 dpi_out: endpoint { 443 remote-endpoint = <&lcd_in>; 444 data-lines = <24>; 445 }; 446 }; 447}; 448 449&venc { 450 status = "okay"; 451 452 vdda-supply = <&vdac>; 453 454 port { 455 venc_out: endpoint { 456 remote-endpoint = <&opa_in>; 457 ti,channels = <2>; 458 ti,invert-polarity; 459 }; 460 }; 461}; 462 463&gpmc { 464 ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */ 465 466 nand@0,0 { 467 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */ 468 nand-bus-width = <16>; 469 ti,nand-ecc-opt = "bch8"; 470 471 gpmc,sync-clk-ps = <0>; 472 gpmc,cs-on-ns = <0>; 473 gpmc,cs-rd-off-ns = <44>; 474 gpmc,cs-wr-off-ns = <44>; 475 gpmc,adv-on-ns = <6>; 476 gpmc,adv-rd-off-ns = <34>; 477 gpmc,adv-wr-off-ns = <44>; 478 gpmc,we-off-ns = <40>; 479 gpmc,oe-off-ns = <54>; 480 gpmc,access-ns = <64>; 481 gpmc,rd-cycle-ns = <82>; 482 gpmc,wr-cycle-ns = <82>; 483 gpmc,wr-access-ns = <40>; 484 gpmc,wr-data-mux-bus-ns = <0>; 485 gpmc,device-width = <2>; 486 487 #address-cells = <1>; 488 #size-cells = <1>; 489 490 x-loader@0 { 491 label = "X-Loader"; 492 reg = <0 0x80000>; 493 }; 494 495 bootloaders@80000 { 496 label = "U-Boot"; 497 reg = <0x80000 0x1e0000>; 498 }; 499 500 bootloaders_env@260000 { 501 label = "U-Boot Env"; 502 reg = <0x260000 0x20000>; 503 }; 504 505 kernel@280000 { 506 label = "Kernel"; 507 reg = <0x280000 0x400000>; 508 }; 509 510 filesystem@680000 { 511 label = "File System"; 512 reg = <0x680000 0xf980000>; 513 }; 514 }; 515}; 516 517&mcbsp2 { 518 status = "okay"; 519}; 520