mm: hugetlb: fix hugepage memory leak caused by wrong reserve count
[linux/fpc-iii.git] / arch / arm / boot / dts / omap4-panda-common.dtsi
blob18d096696fc0b8e69e560215560e4d0b2d68c1af
1 /*
2  * Copyright (C) 2011-2013 Texas Instruments Incorporated - http://www.ti.com/
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8 #include "elpida_ecb240abacn.dtsi"
10 / {
11         memory {
12                 device_type = "memory";
13                 reg = <0x80000000 0x40000000>; /* 1 GB */
14         };
16         aliases {
17                 display0 = &dvi0;
18                 display1 = &hdmi0;
19         };
21         leds: leds {
22                 compatible = "gpio-leds";
23                 pinctrl-names = "default";
24                 pinctrl-0 = <
25                         &led_wkgpio_pins
26                 >;
28                 heartbeat {
29                         label = "pandaboard::status1";
30                         gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
31                         linux,default-trigger = "heartbeat";
32                 };
34                 mmc {
35                         label = "pandaboard::status2";
36                         gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
37                         linux,default-trigger = "mmc0";
38                 };
39         };
41         sound: sound {
42                 compatible = "ti,abe-twl6040";
43                 ti,model = "PandaBoard";
45                 ti,mclk-freq = <38400000>;
47                 ti,mcpdm = <&mcpdm>;
49                 ti,twl6040 = <&twl6040>;
51                 /* Audio routing */
52                 ti,audio-routing =
53                         "Headset Stereophone", "HSOL",
54                         "Headset Stereophone", "HSOR",
55                         "Ext Spk", "HFL",
56                         "Ext Spk", "HFR",
57                         "Line Out", "AUXL",
58                         "Line Out", "AUXR",
59                         "HSMIC", "Headset Mic",
60                         "Headset Mic", "Headset Mic Bias",
61                         "AFML", "Line In",
62                         "AFMR", "Line In";
63         };
65         /* HS USB Port 1 Power */
66         hsusb1_power: hsusb1_power_reg {
67                 compatible = "regulator-fixed";
68                 regulator-name = "hsusb1_vbus";
69                 regulator-min-microvolt = <3300000>;
70                 regulator-max-microvolt = <3300000>;
71                 gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>;     /* gpio_1 */
72                 startup-delay-us = <70000>;
73                 enable-active-high;
74                 /*
75                  * boot-on is required along with always-on as the
76                  * regulator framework doesn't enable the regulator
77                  * if boot-on is not there.
78                  */
79                 regulator-always-on;
80                 regulator-boot-on;
81         };
83         /* HS USB Host PHY on PORT 1 */
84         hsusb1_phy: hsusb1_phy {
85                 compatible = "usb-nop-xceiv";
86                 reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;   /* gpio_62 */
87                 vcc-supply = <&hsusb1_power>;
88                 clocks = <&auxclk3_ck>;
89                 clock-names = "main_clk";
90                 clock-frequency = <19200000>;
91         };
93         /* regulator for wl12xx on sdio5 */
94         wl12xx_vmmc: wl12xx_vmmc {
95                 pinctrl-names = "default";
96                 pinctrl-0 = <&wl12xx_gpio>;
97                 compatible = "regulator-fixed";
98                 regulator-name = "vwl1271";
99                 regulator-min-microvolt = <1800000>;
100                 regulator-max-microvolt = <1800000>;
101                 gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
102                 startup-delay-us = <70000>;
103                 enable-active-high;
104         };
106         tfp410: encoder@0 {
107                 compatible = "ti,tfp410";
108                 powerdown-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;   /* gpio_0 */
110                 ports {
111                         #address-cells = <1>;
112                         #size-cells = <0>;
114                         port@0 {
115                                 reg = <0>;
117                                 tfp410_in: endpoint@0 {
118                                         remote-endpoint = <&dpi_out>;
119                                 };
120                         };
122                         port@1 {
123                                 reg = <1>;
125                                 tfp410_out: endpoint@0 {
126                                         remote-endpoint = <&dvi_connector_in>;
127                                 };
128                         };
129                 };
130         };
132         dvi0: connector@0 {
133                 compatible = "dvi-connector";
134                 label = "dvi";
136                 digital;
138                 ddc-i2c-bus = <&i2c3>;
140                 port {
141                         dvi_connector_in: endpoint {
142                                 remote-endpoint = <&tfp410_out>;
143                         };
144                 };
145         };
147         tpd12s015: encoder@1 {
148                 compatible = "ti,tpd12s015";
150                 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>,   /* 60, CT CP HPD */
151                         <&gpio2 9 GPIO_ACTIVE_HIGH>,    /* 41, LS OE */
152                         <&gpio2 31 GPIO_ACTIVE_HIGH>;   /* 63, HPD */
154                 ports {
155                         #address-cells = <1>;
156                         #size-cells = <0>;
158                         port@0 {
159                                 reg = <0>;
161                                 tpd12s015_in: endpoint@0 {
162                                         remote-endpoint = <&hdmi_out>;
163                                 };
164                         };
166                         port@1 {
167                                 reg = <1>;
169                                 tpd12s015_out: endpoint@0 {
170                                         remote-endpoint = <&hdmi_connector_in>;
171                                 };
172                         };
173                 };
174         };
176         hdmi0: connector@1 {
177                 compatible = "hdmi-connector";
178                 label = "hdmi";
180                 type = "a";
182                 port {
183                         hdmi_connector_in: endpoint {
184                                 remote-endpoint = <&tpd12s015_out>;
185                         };
186                 };
187         };
190 &omap4_pmx_core {
191         pinctrl-names = "default";
192         pinctrl-0 = <
193                         &dss_dpi_pins
194                         &tfp410_pins
195                         &dss_hdmi_pins
196                         &tpd12s015_pins
197                         &hsusbb1_pins
198         >;
200         twl6040_pins: pinmux_twl6040_pins {
201                 pinctrl-single,pins = <
202                         0xe0 (PIN_OUTPUT | MUX_MODE3)   /* hdq_sio.gpio_127 */
203                         0x160 (PIN_INPUT | MUX_MODE0)   /* sys_nirq2.sys_nirq2 */
204                 >;
205         };
207         mcpdm_pins: pinmux_mcpdm_pins {
208                 pinctrl-single,pins = <
209                         0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
210                         0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
211                         0xca (PIN_INPUT_PULLUP   | MUX_MODE0)   /* abe_pdm_frame.abe_pdm_frame */
212                         0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
213                         0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
214                 >;
215         };
217         mcbsp1_pins: pinmux_mcbsp1_pins {
218                 pinctrl-single,pins = <
219                         0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
220                         0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
221                         0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
222                         0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
223                 >;
224         };
226         dss_dpi_pins: pinmux_dss_dpi_pins {
227                 pinctrl-single,pins = <
228                         0x122 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data23 */
229                         0x124 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data22 */
230                         0x126 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data21 */
231                         0x128 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data20 */
232                         0x12a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data19 */
233                         0x12c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data18 */
234                         0x12e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data15 */
235                         0x130 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data14 */
236                         0x132 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data13 */
237                         0x134 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data12 */
238                         0x136 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data11 */
240                         0x174 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data10 */
241                         0x176 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data9 */
242                         0x178 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data16 */
243                         0x17a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data17 */
244                         0x17c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_hsync */
245                         0x17e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_pclk */
246                         0x180 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_vsync */
247                         0x182 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_de */
248                         0x184 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data8 */
249                         0x186 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data7 */
250                         0x188 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data6 */
251                         0x18a (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data5 */
252                         0x18c (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data4 */
253                         0x18e (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data3 */
255                         0x190 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data2 */
256                         0x192 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data1 */
257                         0x194 (PIN_OUTPUT | MUX_MODE5)  /* dispc2_data0 */
258                 >;
259         };
261         tfp410_pins: pinmux_tfp410_pins {
262                 pinctrl-single,pins = <
263                         0x144 (PIN_OUTPUT | MUX_MODE3)  /* gpio_0 */
264                 >;
265         };
267         dss_hdmi_pins: pinmux_dss_hdmi_pins {
268                 pinctrl-single,pins = <
269                         0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
270                         0x5c (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_scl.hdmi_scl */
271                         0x5e (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_sda.hdmi_sda */
272                 >;
273         };
275         tpd12s015_pins: pinmux_tpd12s015_pins {
276                 pinctrl-single,pins = <
277                         0x22 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a17.gpio_41 */
278                         0x48 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nbe1.gpio_60 */
279                         0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* hdmi_hpd.gpio_63 */
280                 >;
281         };
283         hsusbb1_pins: pinmux_hsusbb1_pins {
284                 pinctrl-single,pins = <
285                         0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
286                         0x84 (PIN_OUTPUT | MUX_MODE4)           /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
287                         0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
288                         0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
289                         0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
290                         0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
291                         0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
292                         0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
293                         0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
294                         0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
295                         0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
296                         0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
297                 >;
298         };
300         i2c1_pins: pinmux_i2c1_pins {
301                 pinctrl-single,pins = <
302                         0xe2 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_scl */
303                         0xe4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_sda */
304                 >;
305         };
307         i2c2_pins: pinmux_i2c2_pins {
308                 pinctrl-single,pins = <
309                         0xe6 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_scl */
310                         0xe8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_sda */
311                 >;
312         };
314         i2c3_pins: pinmux_i2c3_pins {
315                 pinctrl-single,pins = <
316                         0xea (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_scl */
317                         0xec (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_sda */
318                 >;
319         };
321         i2c4_pins: pinmux_i2c4_pins {
322                 pinctrl-single,pins = <
323                         0xee (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_scl */
324                         0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_sda */
325                 >;
326         };
328         /*
329          * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
330          * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
331          */
332         wl12xx_gpio: pinmux_wl12xx_gpio {
333                 pinctrl-single,pins = <
334                         0x26 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a19.gpio_43 */
335                         0x2c (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a22.gpio_46 */
336                         0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a24.gpio_48 */
337                         0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3)    /* gpmc_a25.gpio_49 */
338                 >;
339         };
341         /* wl12xx GPIO inputs and SDIO pins */
342         wl12xx_pins: pinmux_wl12xx_pins {
343                 pinctrl-single,pins = <
344                         0x38 (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs2.gpio_52 */
345                         0x3a (PIN_INPUT | MUX_MODE3)            /* gpmc_ncs3.gpio_53 */
346                         0x108 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_clk.sdmmc5_clk */
347                         0x10a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_cmd.sdmmc5_cmd */
348                         0x10c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat0.sdmmc5_dat0 */
349                         0x10e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat1.sdmmc5_dat1 */
350                         0x110 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat2.sdmmc5_dat2 */
351                         0x112 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc5_dat3.sdmmc5_dat3 */
352                 >;
353         };
356 &omap4_pmx_wkup {
357         led_wkgpio_pins: pinmux_leds_wkpins {
358                 pinctrl-single,pins = <
359                         0x1a (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk7 */
360                         0x1c (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk8 */
361                 >;
362         };
365 &i2c1 {
366         pinctrl-names = "default";
367         pinctrl-0 = <&i2c1_pins>;
369         clock-frequency = <400000>;
371         twl: twl@48 {
372                 reg = <0x48>;
373                 /* IRQ# = 7 */
374                 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
375         };
377         twl6040: twl@4b {
378                 compatible = "ti,twl6040";
379                 reg = <0x4b>;
381                 pinctrl-names = "default";
382                 pinctrl-0 = <&twl6040_pins>;
384                 /* IRQ# = 119 */
385                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
386                 ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>;  /* gpio line 127 */
388                 vio-supply = <&v1v8>;
389                 v2v1-supply = <&v2v1>;
390                 enable-active-high;
391         };
394 #include "twl6030.dtsi"
395 #include "twl6030_omap4.dtsi"
397 &i2c2 {
398         pinctrl-names = "default";
399         pinctrl-0 = <&i2c2_pins>;
401         clock-frequency = <400000>;
404 &i2c3 {
405         pinctrl-names = "default";
406         pinctrl-0 = <&i2c3_pins>;
408         clock-frequency = <100000>;
410         /*
411          * Display monitor features are burnt in their EEPROM as EDID data.
412          * The EEPROM is connected as I2C slave device.
413          */
414         eeprom@50 {
415                 compatible = "ti,eeprom";
416                 reg = <0x50>;
417         };
420 &i2c4 {
421         pinctrl-names = "default";
422         pinctrl-0 = <&i2c4_pins>;
424         clock-frequency = <400000>;
427 &mmc1 {
428         vmmc-supply = <&vmmc>;
429         bus-width = <8>;
432 &mmc2 {
433         status = "disabled";
436 &mmc3 {
437         status = "disabled";
440 &mmc4 {
441         status = "disabled";
444 &mmc5 {
445         pinctrl-names = "default";
446         pinctrl-0 = <&wl12xx_pins>;
447         vmmc-supply = <&wl12xx_vmmc>;
448         non-removable;
449         bus-width = <4>;
450         cap-power-off-card;
452         #address-cells = <1>;
453         #size-cells = <0>;
454         wlcore: wlcore@2 {
455                 compatible = "ti,wl1271";
456                 reg = <2>;
457                 interrupt-parent = <&gpio2>;
458                 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 53 */
459                 ref-clock-frequency = <38400000>;
460         };
463 &emif1 {
464         cs1-used;
465         device-handle = <&elpida_ECB240ABACN>;
468 &emif2 {
469         cs1-used;
470         device-handle = <&elpida_ECB240ABACN>;
473 &mcbsp1 {
474         pinctrl-names = "default";
475         pinctrl-0 = <&mcbsp1_pins>;
476         status = "okay";
479 &mcpdm {
480         pinctrl-names = "default";
481         pinctrl-0 = <&mcpdm_pins>;
482         status = "okay";
485 &twl_usb_comparator {
486         usb-supply = <&vusb>;
489 &uart2 {
490         interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
491                                &omap4_pmx_core OMAP4_UART2_RX>;
494 &uart3 {
495         interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
496                                &omap4_pmx_core OMAP4_UART3_RX>;
499 &uart4 {
500         interrupts-extended = <&wakeupgen GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
501                                &omap4_pmx_core OMAP4_UART4_RX>;
504 &usb_otg_hs {
505         interface-type = <1>;
506         mode = <3>;
507         power = <50>;
510 &usbhshost {
511         port1-mode = "ehci-phy";
514 &usbhsehci {
515         phys = <&hsusb1_phy>;
518 &dss {
519         status = "ok";
521         port {
522                 dpi_out: endpoint {
523                         remote-endpoint = <&tfp410_in>;
524                         data-lines = <24>;
525                 };
526         };
529 &dsi2 {
530         status = "ok";
531         vdd-supply = <&vcxio>;
534 &hdmi {
535         status = "ok";
536         vdda-supply = <&vdac>;
538         port {
539                 hdmi_out: endpoint {
540                         remote-endpoint = <&tpd12s015_in>;
541                 };
542         };