blob: 83bb1e010380bac594efccdf7eceb8a0dfd67b00 [file] [log] [blame]
Marek Beliskoadfe1472013-08-15 22:43:05 +02001/*
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";
Marek Beliskoae41a302014-03-01 14:58:48 +010016 compatible = "ti,omap3-gta04", "ti,omap36xx", "ti,omap3";
Marek Beliskoadfe1472013-08-15 22:43:05 +020017
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 gpio-keys {
30 compatible = "gpio-keys";
31
32 aux-button {
33 label = "aux";
34 linux,code = <169>;
NeilBrownd8bd6732014-01-25 22:28:55 +010035 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
Marek Beliskoadfe1472013-08-15 22:43:05 +020036 gpio-key,wakeup;
37 };
38 };
NeilBrown6764f642014-03-01 14:58:52 +010039
40 sound {
41 compatible = "ti,omap-twl4030";
42 ti,model = "gta04";
43
44 ti,mcbsp = <&mcbsp2>;
45 ti,codec = <&twl_audio>;
46 };
Marek Beliskoc2e138b2014-05-08 22:16:51 +020047
48 spi_lcd {
49 compatible = "spi-gpio";
50 #address-cells = <0x1>;
51 #size-cells = <0x0>;
52 pinctrl-names = "default";
53 pinctrl-0 = <&spi_gpio_pins>;
54
55 gpio-sck = <&gpio1 12 0>;
56 gpio-miso = <&gpio1 18 0>;
57 gpio-mosi = <&gpio1 20 0>;
58 cs-gpios = <&gpio1 19 0>;
59 num-chipselects = <1>;
60
61 /* lcd panel */
62 lcd: td028ttec1@0 {
63 compatible = "toppoly,td028ttec1";
64 reg = <0>;
65 spi-max-frequency = <100000>;
66 spi-cpol;
67 spi-cpha;
68
69 label = "lcd";
70 port {
71 lcd_in: endpoint {
72 remote-endpoint = <&dpi_out>;
73 };
74 };
75 };
76 };
Marek Belisko1520a132014-07-22 21:30:18 +020077
78 hsusb2_phy: hsusb2_phy {
79 compatible = "usb-nop-xceiv";
80 reset-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
81 };
Marek Beliskoadfe1472013-08-15 22:43:05 +020082};
83
84&omap3_pmx_core {
Marek Belisko1520a132014-07-22 21:30:18 +020085 pinctrl-names = "default";
86 pinctrl-0 = <
87 &hsusb2_pins
88 >;
89
90 hsusb2_pins: pinmux_hsusb2_pins {
91 pinctrl-single,pins = <
92 OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */
93 OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */
94 OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */
95 OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */
96 OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */
97 OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */
98 >;
99 };
100
Marek Beliskoadfe1472013-08-15 22:43:05 +0200101 uart1_pins: pinmux_uart1_pins {
102 pinctrl-single,pins = <
103 0x152 (PIN_INPUT | MUX_MODE0) /* uart1_rx.uart1_rx */
104 0x14c (PIN_OUTPUT |MUX_MODE0) /* uart1_tx.uart1_tx */
105 >;
106 };
107
108 uart2_pins: pinmux_uart2_pins {
109 pinctrl-single,pins = <
110 0x14a (PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */
111 0x148 (PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */
112 >;
113 };
114
115 uart3_pins: pinmux_uart3_pins {
116 pinctrl-single,pins = <
117 0x16e (PIN_INPUT | MUX_MODE0) /* uart3_rx.uart3_rx */
118 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx.uart3_tx */
119 >;
120 };
121
122 mmc1_pins: pinmux_mmc1_pins {
123 pinctrl-single,pins = <
124 0x114 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */
125 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */
126 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */
127 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */
128 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */
129 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */
130 >;
131 };
Marek Beliskoc2e138b2014-05-08 22:16:51 +0200132
133 dss_dpi_pins: pinmux_dss_dpi_pins {
134 pinctrl-single,pins = <
135 0x0a4 (PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
136 0x0a6 (PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
137 0x0a8 (PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
138 0x0aa (PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
139 0x0ac (PIN_OUTPUT | MUX_MODE0) /* dss_data0.dss_data0 */
140 0x0ae (PIN_OUTPUT | MUX_MODE0) /* dss_data1.dss_data1 */
141 0x0b0 (PIN_OUTPUT | MUX_MODE0) /* dss_data2.dss_data2 */
142 0x0b2 (PIN_OUTPUT | MUX_MODE0) /* dss_data3.dss_data3 */
143 0x0b4 (PIN_OUTPUT | MUX_MODE0) /* dss_data4.dss_data4 */
144 0x0b6 (PIN_OUTPUT | MUX_MODE0) /* dss_data5.dss_data5 */
145 0x0b8 (PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
146 0x0ba (PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
147 0x0bc (PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
148 0x0be (PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
149 0x0c0 (PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
150 0x0c2 (PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
151 0x0c4 (PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
152 0x0c6 (PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
153 0x0c8 (PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
154 0x0ca (PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
155 0x0cc (PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
156 0x0ce (PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
157 0x0d0 (PIN_OUTPUT | MUX_MODE0) /* dss_data18.dss_data18 */
158 0x0d2 (PIN_OUTPUT | MUX_MODE0) /* dss_data19.dss_data19 */
159 0x0d4 (PIN_OUTPUT | MUX_MODE0) /* dss_data20.dss_data20 */
160 0x0d6 (PIN_OUTPUT | MUX_MODE0) /* dss_data21.dss_data21 */
161 0x0d8 (PIN_OUTPUT | MUX_MODE0) /* dss_data22.dss_data22 */
162 0x0da (PIN_OUTPUT | MUX_MODE0) /* dss_data23.dss_data23 */
163 >;
164 };
Marek Belisko6c402f82014-07-22 21:30:17 +0200165};
Marek Beliskoc2e138b2014-05-08 22:16:51 +0200166
Marek Belisko6c402f82014-07-22 21:30:17 +0200167&omap3_pmx_core2 {
Marek Belisko1520a132014-07-22 21:30:18 +0200168 pinctrl-names = "default";
169 pinctrl-0 = <
170 &hsusb2_2_pins
171 >;
172
173 hsusb2_2_pins: pinmux_hsusb2_2_pins {
174 pinctrl-single,pins = <
175 OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */
176 OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */
177 OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */
178 OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */
179 OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */
180 OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */
181 >;
182 };
183
Marek Beliskoc2e138b2014-05-08 22:16:51 +0200184 spi_gpio_pins: spi_gpio_pinmux {
Marek Belisko6c402f82014-07-22 21:30:17 +0200185 pinctrl-single,pins = <
186 OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE4) /* clk */
187 OMAP3630_CORE2_IOPAD(0x25e6, PIN_OUTPUT | MUX_MODE4) /* cs */
188 OMAP3630_CORE2_IOPAD(0x25e8, PIN_OUTPUT | MUX_MODE4) /* tx */
189 OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT | MUX_MODE4) /* rx */
Marek Beliskoc2e138b2014-05-08 22:16:51 +0200190 >;
191 };
Marek Beliskoadfe1472013-08-15 22:43:05 +0200192};
193
194&i2c1 {
195 clock-frequency = <2600000>;
196
197 twl: twl@48 {
198 reg = <0x48>;
199 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
200 interrupt-parent = <&intc>;
201 };
NeilBrown6764f642014-03-01 14:58:52 +0100202
203 twl_audio: audio {
204 compatible = "ti,twl4030-audio";
205 codec {
206 };
207 };
Marek Beliskoadfe1472013-08-15 22:43:05 +0200208};
209
210#include "twl4030.dtsi"
211#include "twl4030_omap3.dtsi"
212
213&i2c2 {
214 clock-frequency = <400000>;
215
216 /* pressure sensor */
217 bmp085@77 {
218 compatible = "bosch,bmp085";
219 reg = <0x77>;
Marek Beliskod26794c2013-12-21 16:12:23 +0100220 interrupt-parent = <&gpio4>;
221 interrupts = <17 IRQ_TYPE_EDGE_RISING>;
Marek Beliskoadfe1472013-08-15 22:43:05 +0200222 };
223
NeilBrown24d0bb82014-03-01 14:58:54 +0100224 /* accelerometer */
225 bma180@41 {
226 compatible = "bosch,bma180";
227 reg = <0x41>;
228 interrupt-parent = <&gpio3>;
229 interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
230 };
231
Marek Beliskoadfe1472013-08-15 22:43:05 +0200232 /* leds */
233 tca6507@45 {
234 compatible = "ti,tca6507";
235 #address-cells = <1>;
236 #size-cells = <0>;
237 reg = <0x45>;
238
Marek Beliskoe51c6be2014-07-22 21:30:16 +0200239 gpio-controller;
240 #gpio-cells = <2>;
241
Marek Beliskoadfe1472013-08-15 22:43:05 +0200242 gta04_led0: red_aux@0 {
243 label = "gta04:red:aux";
244 reg = <0x0>;
245 };
246
247 gta04_led1: green_aux@1 {
248 label = "gta04:green:aux";
249 reg = <0x1>;
250 };
251
252 gta04_led3: red_power@3 {
253 label = "gta04:red:power";
254 reg = <0x3>;
255 linux,default-trigger = "default-on";
256 };
257
258 gta04_led4: green_power@4 {
259 label = "gta04:green:power";
260 reg = <0x4>;
261 };
Marek Beliskoe51c6be2014-07-22 21:30:16 +0200262
263 wifi_reset: wifi_reset@6 {
264 reg = <0x6>;
265 compatible = "gpio";
266 };
Marek Beliskoadfe1472013-08-15 22:43:05 +0200267 };
NeilBrown32f2c392014-03-01 14:58:49 +0100268
269 /* compass aka magnetometer */
270 hmc5843@1e {
Marek Belisko9edc57a2014-07-22 21:59:08 +0200271 compatible = "honeywell,hmc5883l";
NeilBrown32f2c392014-03-01 14:58:49 +0100272 reg = <0x1e>;
273 };
Marek Belisko9cbc03b2014-03-01 14:58:50 +0100274
275 /* touchscreen */
276 tsc2007@48 {
277 compatible = "ti,tsc2007";
278 reg = <0x48>;
279 interrupt-parent = <&gpio6>;
280 interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
281 gpios = <&gpio6 0 GPIO_ACTIVE_LOW>;
282 ti,x-plate-ohms = <600>;
283 };
Marek Beliskoadfe1472013-08-15 22:43:05 +0200284};
285
286&i2c3 {
287 clock-frequency = <100000>;
288};
289
290&usb_otg_hs {
291 interface-type = <0>;
292 usb-phy = <&usb2_phy>;
Roger Quadrosd2afcf02013-10-07 16:28:13 +0300293 phys = <&usb2_phy>;
294 phy-names = "usb2-phy";
Marek Beliskoadfe1472013-08-15 22:43:05 +0200295 mode = <3>;
296 power = <50>;
297};
298
Marek Belisko1520a132014-07-22 21:30:18 +0200299&usbhshost {
300 port2-mode = "ehci-phy";
301};
302
303&usbhsehci {
304 phys = <0 &hsusb2_phy>;
305};
306
Marek Beliskoadfe1472013-08-15 22:43:05 +0200307&mmc1 {
308 pinctrl-names = "default";
309 pinctrl-0 = <&mmc1_pins>;
310 vmmc-supply = <&vmmc1>;
Marek Beliskoadfe1472013-08-15 22:43:05 +0200311 bus-width = <4>;
Marek Belisko2d6ac292014-01-25 22:28:57 +0100312 ti,non-removable;
Marek Beliskoadfe1472013-08-15 22:43:05 +0200313};
314
315&mmc2 {
NeilBrown5a13ba62014-03-01 14:58:53 +0100316 vmmc-supply = <&vaux4>;
317 bus-width = <4>;
318 ti,non-removable;
Marek Beliskoadfe1472013-08-15 22:43:05 +0200319};
320
321&mmc3 {
322 status = "disabled";
323};
324
325&uart1 {
326 pinctrl-names = "default";
327 pinctrl-0 = <&uart1_pins>;
328};
329
330&uart2 {
331 pinctrl-names = "default";
332 pinctrl-0 = <&uart2_pins>;
333};
334
335&uart3 {
336 pinctrl-names = "default";
337 pinctrl-0 = <&uart3_pins>;
338};
339
NeilBrown8bdc9e92014-03-01 14:58:51 +0100340&charger {
341 bb_uvolt = <3200000>;
342 bb_uamp = <150>;
343};
NeilBrown5a13ba62014-03-01 14:58:53 +0100344
345&vaux4 {
346 regulator-min-microvolt = <2800000>;
347 regulator-max-microvolt = <3150000>;
348};
Marek Beliskoc2e138b2014-05-08 22:16:51 +0200349
350/* Needed to power the DPI pins */
351&vpll2 {
352 regulator-always-on;
353};
354
355&dss {
356 pinctrl-names = "default";
357 pinctrl-0 = < &dss_dpi_pins >;
358
359 status = "okay";
360
361 port {
362 dpi_out: endpoint {
363 remote-endpoint = <&lcd_in>;
364 data-lines = <24>;
365 };
366 };
367};
Marek Belisko2618a182014-07-22 21:30:14 +0200368
369&gpmc {
370 ranges = <0 0 0x30000000 0x04>; /* CS0: NAND */
371
372 nand@0,0 {
373 reg = <0 0 0>; /* CS0, offset 0 */
374 nand-bus-width = <16>;
375 ti,nand-ecc-opt = "bch8";
376
377 gpmc,sync-clk-ps = <0>;
378 gpmc,cs-on-ns = <0>;
379 gpmc,cs-rd-off-ns = <44>;
380 gpmc,cs-wr-off-ns = <44>;
381 gpmc,adv-on-ns = <6>;
382 gpmc,adv-rd-off-ns = <34>;
383 gpmc,adv-wr-off-ns = <44>;
384 gpmc,we-off-ns = <40>;
385 gpmc,oe-off-ns = <54>;
386 gpmc,access-ns = <64>;
387 gpmc,rd-cycle-ns = <82>;
388 gpmc,wr-cycle-ns = <82>;
389 gpmc,wr-access-ns = <40>;
390 gpmc,wr-data-mux-bus-ns = <0>;
391 gpmc,device-width = <2>;
392
393 #address-cells = <1>;
394 #size-cells = <1>;
395
396 x-loader@0 {
397 label = "X-Loader";
398 reg = <0 0x80000>;
399 };
400
401 bootloaders@80000 {
402 label = "U-Boot";
403 reg = <0x80000 0x1e0000>;
404 };
405
406 bootloaders_env@260000 {
407 label = "U-Boot Env";
408 reg = <0x260000 0x20000>;
409 };
410
411 kernel@280000 {
412 label = "Kernel";
413 reg = <0x280000 0x400000>;
414 };
415
416 filesystem@680000 {
417 label = "File System";
418 reg = <0x680000 0xf980000>;
419 };
420 };
421};