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