Home | History | Annotate | Line # | Download | only in dts
      1 // SPDX-License-Identifier: GPL-2.0-only
      2 /*
      3  * Copyright (C) 2015
      4  *   Nikolaus Schaller <hns (a] goldelico.com>
      5  *
      6  * Common device tree include for OpenPandora devices.
      7  */
      8 
      9 #include <dt-bindings/input/input.h>
     10 
     11 / {
     12 	cpus {
     13 		cpu@0 {
     14 			cpu0-supply = <&vcc>;
     15 		};
     16 	};
     17 
     18 	memory@80000000 {
     19 		device_type = "memory";
     20 		reg = <0x80000000 0x20000000>; /* 512 MB */
     21 	};
     22 
     23 	aliases {
     24 		display0 = &lcd;
     25 	};
     26 
     27 	/* fixed 26MHz oscillator */
     28 	hfclk_26m: oscillator {
     29 		#clock-cells = <0>;
     30 		compatible = "fixed-clock";
     31 		clock-frequency = <26000000>;
     32 	};
     33 
     34 	tv: connector {
     35 		compatible = "connector-analog-tv";
     36 		label = "tv";
     37 
     38 		port {
     39 			tv_connector_in: endpoint {
     40 				remote-endpoint = <&venc_out>;
     41 			};
     42 		};
     43 	};
     44 
     45 	gpio-leds {
     46 
     47 		compatible = "gpio-leds";
     48 
     49 		pinctrl-names = "default";
     50 		pinctrl-0 = <&led_pins>;
     51 
     52 		led1 {
     53 			label = "pandora::sd1";
     54 			gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;	/* GPIO_128 */
     55 			linux,default-trigger = "mmc0";
     56 			default-state = "off";
     57 		};
     58 
     59 		led2 {
     60 			label = "pandora::sd2";
     61 			gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;	/* GPIO_129 */
     62 			linux,default-trigger = "mmc1";
     63 			default-state = "off";
     64 		};
     65 
     66 		led3 {
     67 			label = "pandora::bluetooth";
     68 			gpios = <&gpio5 30 GPIO_ACTIVE_HIGH>;	/* GPIO_158 */
     69 			linux,default-trigger = "heartbeat";
     70 			default-state = "off";
     71 		};
     72 
     73 		led4 {
     74 			label = "pandora::wifi";
     75 			gpios = <&gpio5 31 GPIO_ACTIVE_HIGH>;	/* GPIO_159 */
     76 			linux,default-trigger = "mmc2";
     77 			default-state = "off";
     78 		};
     79 	};
     80 
     81 	gpio-keys {
     82 		compatible = "gpio-keys";
     83 
     84 		pinctrl-names = "default";
     85 		pinctrl-0 = <&button_pins>;
     86 
     87 		up-button {
     88 			label = "up";
     89 			linux,code = <KEY_UP>;
     90 			gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;	/* GPIO_110 */
     91 			wakeup-source;
     92 		};
     93 
     94 		down-button {
     95 			label = "down";
     96 			linux,code = <KEY_DOWN>;
     97 			gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;	/* GPIO_103 */
     98 			wakeup-source;
     99 		};
    100 
    101 		left-button {
    102 			label = "left";
    103 			linux,code = <KEY_LEFT>;
    104 			gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;	/* GPIO_96 */
    105 			wakeup-source;
    106 		};
    107 
    108 		right-button {
    109 			label = "right";
    110 			linux,code = <KEY_RIGHT>;
    111 			gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;	/* GPIO_98 */
    112 			wakeup-source;
    113 		};
    114 
    115 		pageup-button {
    116 			label = "game 1";
    117 			linux,code = <KEY_PAGEUP>;
    118 			gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;	/* GPIO_109 */
    119 			wakeup-source;
    120 		};
    121 
    122 		pagedown-button {
    123 			label = "game 3";
    124 			linux,code = <KEY_PAGEDOWN>;
    125 			gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;	/* GPIO_106 */
    126 			wakeup-source;
    127 		};
    128 
    129 		home-button {
    130 			label = "game 4";
    131 			linux,code = <KEY_HOME>;
    132 			gpios = <&gpio4 5 GPIO_ACTIVE_LOW>;	/* GPIO_101 */
    133 			wakeup-source;
    134 		};
    135 
    136 		end-button {
    137 			label = "game 2";
    138 			linux,code = <KEY_END>;
    139 			gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;	/* GPIO_111 */
    140 			wakeup-source;
    141 		};
    142 
    143 		right-shift {
    144 			label = "l";
    145 			linux,code = <KEY_RIGHTSHIFT>;
    146 			gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;	/* GPIO_102 */
    147 			wakeup-source;
    148 		};
    149 
    150 		kp-plus {
    151 			label = "l2";
    152 			linux,code = <KEY_KPPLUS>;
    153 			gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;	/* GPIO_97 */
    154 			wakeup-source;
    155 		};
    156 
    157 		right-ctrl {
    158 			label = "r";
    159 			linux,code = <KEY_RIGHTCTRL>;
    160 			gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;	/* GPIO_105 */
    161 			wakeup-source;
    162 		};
    163 
    164 		kp-minus {
    165 			label = "r2";
    166 			linux,code = <KEY_KPMINUS>;
    167 			gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;	/* GPIO_107 */
    168 			wakeup-source;
    169 		};
    170 
    171 		left-ctrl {
    172 			label = "ctrl";
    173 			linux,code = <KEY_LEFTCTRL>;
    174 			gpios = <&gpio4 8 GPIO_ACTIVE_LOW>;	/* GPIO_104 */
    175 			wakeup-source;
    176 		};
    177 
    178 		menu {
    179 			label = "menu";
    180 			linux,code = <KEY_MENU>;
    181 			gpios = <&gpio4 3 GPIO_ACTIVE_LOW>;	/* GPIO_99 */
    182 			wakeup-source;
    183 		};
    184 
    185 		hold {
    186 			label = "hold";
    187 			linux,code = <KEY_COFFEE>;
    188 			gpios = <&gpio6 16 GPIO_ACTIVE_LOW>;	/* GPIO_176 */
    189 			wakeup-source;
    190 		};
    191 
    192 		left-alt {
    193 			label = "alt";
    194 			linux,code = <KEY_LEFTALT>;
    195 			gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;	/* GPIO_100 */
    196 			wakeup-source;
    197 		};
    198 
    199 		lid {
    200 			label = "lid";
    201 			linux,code = <0x00>;    /* SW_LID lid shut */
    202 			linux,input-type = <0x05>;    /* EV_SW */
    203 			gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;   /* GPIO_108 */
    204 		};
    205 	};
    206 
    207 	/* HS USB Host PHY on PORT 2 */
    208 	hsusb2_phy: hsusb2_phy {
    209 		compatible = "usb-nop-xceiv";
    210 		reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; /* GPIO_16 */
    211 		vcc-supply = <&vaux2>;
    212 		#phy-cells = <0>;
    213 	};
    214 
    215 	/* HS USB Host VBUS supply
    216 	 * disabling this regulator causes current leakage, and LCD flicker
    217 	 * on earlier (CC) board revisions, so keep it always on */
    218 	usb_host_5v: fixed-regulator-usb_host_5v {
    219 		compatible = "regulator-fixed";
    220 		regulator-name = "usb_host_5v";
    221 		regulator-min-microvolt = <5000000>;
    222 		regulator-max-microvolt = <5000000>;
    223 		regulator-always-on;
    224 		regulator-boot-on;
    225 		enable-active-high;
    226 		gpio = <&gpio6 4 GPIO_ACTIVE_HIGH>;	/* GPIO_164 */
    227 	};
    228 
    229 	/* wl1251 wifi+bt module */
    230 	wlan_en: fixed-regulator-wg7210_en {
    231 		compatible = "regulator-fixed";
    232 		regulator-name = "vwlan";
    233 		regulator-min-microvolt = <1800000>;
    234 		regulator-max-microvolt = <1800000>;
    235 		startup-delay-us = <50000>;
    236 		enable-active-high;
    237 		gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;
    238 	};
    239 
    240 	/* wg7210 (wifi+bt module) 32k clock buffer */
    241 	wg7210_32k: fixed-regulator-wg7210_32k {
    242 		compatible = "regulator-fixed";
    243 		regulator-name = "wg7210_32k";
    244 		regulator-min-microvolt = <1800000>;
    245 		regulator-max-microvolt = <1800000>;
    246 		regulator-always-on;
    247 		enable-active-high;
    248 		gpio = <&twl_gpio 13 GPIO_ACTIVE_HIGH>;
    249 	};
    250 };
    251 
    252 &omap3_pmx_core {
    253 
    254 	mmc1_pins: pinmux_mmc1_pins {
    255 		pinctrl-single,pins = <
    256 			OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_clk.sdmmc1_clk */
    257 			OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_cmd.sdmmc1_cmd */
    258 			OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_dat0.sdmmc1_dat0 */
    259 			OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_dat1.sdmmc1_dat1 */
    260 			OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_dat2.sdmmc1_dat2 */
    261 			OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_dat3.sdmmc1_dat3 */
    262 		>;
    263 	};
    264 
    265 	mmc2_pins: pinmux_mmc2_pins {
    266 		pinctrl-single,pins = <
    267 			OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_clk.sdmmc2_clk */
    268 			OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_cmd.sdmmc2_cmd */
    269 			OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat0.sdmmc2_dat0 */
    270 			OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat1.sdmmc2_dat1 */
    271 			OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat2.sdmmc2_dat2 */
    272 			OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat3.sdmmc2_dat3 */
    273 			OMAP3_CORE1_IOPAD(0x2164, PIN_OUTPUT_PULLUP | MUX_MODE1)	/* sdmmc2_dat4.sdmmc2_dirdat0 */
    274 			OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT_PULLUP | MUX_MODE1)	/* sdmmc2_dat5.sdmmc2_dirdat1 */
    275 			OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT_PULLUP | MUX_MODE1)	/* sdmmc2_dat6.sdmmc2_dircmd */
    276 			OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE1)		/* sdmmc2_dat7.sdmmc2_clkin */
    277 		>;
    278 	};
    279 
    280 	dss_dpi_pins: pinmux_dss_dpi_pins {
    281 		pinctrl-single,pins = <
    282 			OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)	/* dss_pclk.dss_pclk */
    283 			OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)	/* dss_hsync.dss_hsync */
    284 			OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)	/* dss_vsync.dss_vsync */
    285 			OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)	/* dss_acbias.dss_acbias */
    286 			OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)	/* dss_data0.dss_data0 */
    287 			OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)	/* dss_data1.dss_data1 */
    288 			OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)	/* dss_data2.dss_data2 */
    289 			OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)	/* dss_data3.dss_data3 */
    290 			OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)	/* dss_data4.dss_data4 */
    291 			OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)	/* dss_data5.dss_data5 */
    292 			OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)	/* dss_data6.dss_data6 */
    293 			OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)	/* dss_data7.dss_data7 */
    294 			OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)	/* dss_data8.dss_data8 */
    295 			OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)	/* dss_data9.dss_data9 */
    296 			OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)	/* dss_data10.dss_data10 */
    297 			OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)	/* dss_data11.dss_data11 */
    298 			OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)	/* dss_data12.dss_data12 */
    299 			OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)	/* dss_data13.dss_data13 */
    300 			OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)	/* dss_data14.dss_data14 */
    301 			OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)	/* dss_data15.dss_data15 */
    302 			OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)	/* dss_data16.dss_data16 */
    303 			OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)	/* dss_data17.dss_data17 */
    304 			OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)	/* dss_data18.dss_data18 */
    305 			OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)	/* dss_data19.dss_data19 */
    306 			OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)	/* dss_data20.dss_data20 */
    307 			OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)	/* dss_data21.dss_data21 */
    308 			OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)	/* dss_data22.dss_data22 */
    309 			OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)	/* dss_data23.dss_data23 */
    310 			OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)	/* GPIO_157 = lcd reset */
    311 		>;
    312 	};
    313 
    314 	uart3_pins: pinmux_uart3_pins {
    315 		pinctrl-single,pins = <
    316 			OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0)	/* uart3_rx_irrx.uart3_rx_irrx */
    317 			OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
    318 		>;
    319 	};
    320 
    321 	led_pins: pinmux_leds_pins {
    322 		pinctrl-single,pins = <
    323 			OMAP3_CORE1_IOPAD(0x2154, PIN_OUTPUT | MUX_MODE4)	/* GPIO_128 */
    324 			OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4)	/* GPIO_129 */
    325 			OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE4)	/* GPIO_158 */
    326 			OMAP3_CORE1_IOPAD(0x2192, PIN_OUTPUT | MUX_MODE4)	/* GPIO_159 */
    327 		>;
    328 	};
    329 
    330 	button_pins: pinmux_button_pins {
    331 		pinctrl-single,pins = <
    332 			OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT | MUX_MODE4)	/* GPIO_96 */
    333 			OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT | MUX_MODE4)	/* GPIO_97 */
    334 			OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT | MUX_MODE4)	/* GPIO_98 */
    335 			OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT | MUX_MODE4)	/* GPIO_99 */
    336 			OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT | MUX_MODE4)	/* GPIO_100 */
    337 			OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT | MUX_MODE4)	/* GPIO_101 */
    338 			OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT | MUX_MODE4)	/* GPIO_102 */
    339 			OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT | MUX_MODE4)	/* GPIO_103 */
    340 			OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT | MUX_MODE4)	/* GPIO_104 */
    341 			OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE4)	/* GPIO_105 */
    342 			OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE4)	/* GPIO_106 */
    343 			OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE4)	/* GPIO_107 */
    344 			OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE4)	/* GPIO_108 */
    345 			OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4)	/* GPIO_109 */
    346 			OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT | MUX_MODE4)	/* GPIO_110 */
    347 			OMAP3_CORE1_IOPAD(0x212e, PIN_INPUT | MUX_MODE4)	/* GPIO_111 */
    348 			OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4)	/* GPIO_176 */
    349 		>;
    350 	};
    351 
    352 	penirq_pins: pinmux_penirq_pins {
    353 		pinctrl-single,pins = <
    354 			/* here we could enable to wakeup the cpu from suspend by a pen touch */
    355 			OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT | MUX_MODE4)	/* GPIO_94 */
    356 		>;
    357 	};
    358 
    359 };
    360 
    361 &omap3_pmx_core2 {
    362 	/* define in CPU specific file that includes this one
    363 	 * use either OMAP3430_CORE2_IOPAD() or OMAP3630_CORE2_IOPAD()
    364 	 */
    365 };
    366 
    367 &i2c1 {
    368 	clock-frequency = <2600000>;
    369 
    370 	twl: twl@48 {
    371 		reg = <0x48>;
    372 		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
    373 		interrupt-parent = <&intc>;
    374 
    375 		clocks = <&hfclk_26m>;
    376 		clock-names = "fck";
    377 
    378 		twl_power: power {
    379 			compatible = "ti,twl4030-power-reset";
    380 			ti,use_poweroff;
    381 		};
    382 
    383 		twl_audio: audio {
    384 			compatible = "ti,twl4030-audio";
    385 
    386 			codec {
    387 				ti,ramp_delay_value = <3>;
    388 			};
    389 		};
    390 	};
    391 };
    392 
    393 #include "twl4030.dtsi"
    394 #include "twl4030_omap3.dtsi"
    395 
    396 &twl_keypad {
    397 	keypad,num-rows = <8>;
    398 	keypad,num-columns = <6>;
    399 	linux,keymap = <
    400 		MATRIX_KEY(0, 0, KEY_9)
    401 		MATRIX_KEY(0, 1, KEY_8)
    402 		MATRIX_KEY(0, 2, KEY_I)
    403 		MATRIX_KEY(0, 3, KEY_J)
    404 		MATRIX_KEY(0, 4, KEY_N)
    405 		MATRIX_KEY(0, 5, KEY_M)
    406 		MATRIX_KEY(1, 0, KEY_0)
    407 		MATRIX_KEY(1, 1, KEY_7)
    408 		MATRIX_KEY(1, 2, KEY_U)
    409 		MATRIX_KEY(1, 3, KEY_H)
    410 		MATRIX_KEY(1, 4, KEY_B)
    411 		MATRIX_KEY(1, 5, KEY_SPACE)
    412 		MATRIX_KEY(2, 0, KEY_BACKSPACE)
    413 		MATRIX_KEY(2, 1, KEY_6)
    414 		MATRIX_KEY(2, 2, KEY_Y)
    415 		MATRIX_KEY(2, 3, KEY_G)
    416 		MATRIX_KEY(2, 4, KEY_V)
    417 		MATRIX_KEY(2, 5, KEY_FN)
    418 		MATRIX_KEY(3, 0, KEY_O)
    419 		MATRIX_KEY(3, 1, KEY_5)
    420 		MATRIX_KEY(3, 2, KEY_T)
    421 		MATRIX_KEY(3, 3, KEY_F)
    422 		MATRIX_KEY(3, 4, KEY_C)
    423 		MATRIX_KEY(4, 0, KEY_P)
    424 		MATRIX_KEY(4, 1, KEY_4)
    425 		MATRIX_KEY(4, 2, KEY_R)
    426 		MATRIX_KEY(4, 3, KEY_D)
    427 		MATRIX_KEY(4, 4, KEY_X)
    428 		MATRIX_KEY(5, 0, KEY_K)
    429 		MATRIX_KEY(5, 1, KEY_3)
    430 		MATRIX_KEY(5, 2, KEY_E)
    431 		MATRIX_KEY(5, 3, KEY_S)
    432 		MATRIX_KEY(5, 4, KEY_Z)
    433 		MATRIX_KEY(6, 0, KEY_L)
    434 		MATRIX_KEY(6, 1, KEY_2)
    435 		MATRIX_KEY(6, 2, KEY_W)
    436 		MATRIX_KEY(6, 3, KEY_A)
    437 		MATRIX_KEY(6, 4, KEY_RIGHTBRACE)
    438 		MATRIX_KEY(7, 0, KEY_ENTER)
    439 		MATRIX_KEY(7, 1, KEY_1)
    440 		MATRIX_KEY(7, 2, KEY_Q)
    441 		MATRIX_KEY(7, 3, KEY_LEFTSHIFT)
    442 		MATRIX_KEY(7, 4, KEY_LEFTBRACE )
    443 	 >;
    444 };
    445 
    446 /* backup battery charger */
    447 &charger {
    448 	ti,bb-uvolt = <3200000>;
    449 	ti,bb-uamp = <150>;
    450 };
    451 
    452 /* MMC2 */
    453 &vmmc2 {
    454 	regulator-min-microvolt = <1850000>;
    455 	regulator-max-microvolt = <3150000>;
    456 };
    457 
    458 /* LCD */
    459 &vaux1 {
    460 	regulator-min-microvolt = <3000000>;
    461 	regulator-max-microvolt = <3000000>;
    462 };
    463 
    464 /* USB Host PHY */
    465 &vaux2 {
    466 	regulator-min-microvolt = <1800000>;
    467 	regulator-max-microvolt = <1800000>;
    468 };
    469 
    470 /* available on expansion connector */
    471 &vaux3 {
    472 	regulator-min-microvolt = <2800000>;
    473 	regulator-max-microvolt = <2800000>;
    474 };
    475 
    476 /* ADS7846 and nubs */
    477 &vaux4 {
    478 	regulator-min-microvolt = <2800000>;
    479 	regulator-max-microvolt = <2800000>;
    480 };
    481 
    482 /* power audio DAC and LID sensor */
    483 &vsim {
    484 	regulator-min-microvolt = <2800000>;
    485 	regulator-max-microvolt = <2800000>;
    486 	regulator-always-on;
    487 };
    488 
    489 &i2c2 {
    490 	clock-frequency = <100000>;
    491 	/* no clients so we should disable clock */
    492 };
    493 
    494 &i2c3 {
    495 	clock-frequency = <100000>;
    496 
    497 	bq27500@55 {
    498 		compatible = "ti,bq27500";
    499 		reg = <0x55>;
    500 	};
    501 
    502 };
    503 
    504 &usb_otg_hs {
    505 	interface-type = <0>;
    506 	usb-phy = <&usb2_phy>;
    507 	phys = <&usb2_phy>;
    508 	phy-names = "usb2-phy";
    509 	mode = <3>;
    510 	power = <50>;
    511 };
    512 
    513 /*
    514  * Many pandora boards have been produced with defective write-protect switches
    515  * on either slot, so it was decided not to use this feature. If you know
    516  * your board has good switches, feel free to uncomment wp-gpios below.
    517  */
    518 &mmc1 {
    519 	pinctrl-names = "default";
    520 	pinctrl-0 = <&mmc1_pins>;
    521 	vmmc-supply = <&vmmc1>;
    522 	bus-width = <4>;
    523 	cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
    524 	/*wp-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;*/	/* GPIO_126 */
    525 };
    526 
    527 &mmc2 {
    528 	pinctrl-names = "default";
    529 	pinctrl-0 = <&mmc2_pins>;
    530 	vmmc-supply = <&vmmc2>;
    531 	bus-width = <4>;
    532 	cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_LOW>;
    533 	/*wp-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;*/	/* GPIO_127 */
    534 };
    535 
    536 &mmc3 {
    537 	vmmc-supply = <&wlan_en>;
    538 
    539 	bus-width = <4>;
    540 	non-removable;
    541 	ti,non-removable;
    542 	cap-power-off-card;
    543 
    544 	pinctrl-names = "default";
    545 	pinctrl-0 = <&mmc3_pins>;
    546 
    547 	#address-cells = <1>;
    548 	#size-cells = <0>;
    549 
    550 	wlan: wifi@1 {
    551 		compatible = "ti,wl1251";
    552 
    553 		reg = <1>;
    554 
    555 		interrupt-parent = <&gpio1>;
    556 		interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;	/* GPIO_21 */
    557 
    558 		ti,wl1251-has-eeprom;
    559 	};
    560 };
    561 
    562 /* bluetooth*/
    563 &uart1 {
    564 };
    565 
    566 /* spare (expansion connector) */
    567 &uart2 {
    568 };
    569 
    570 /* console (expansion connector) */
    571 &uart3 {
    572 	pinctrl-names = "default";
    573 	pinctrl-0 = <&uart3_pins>;
    574 	interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
    575 };
    576 
    577 &usbhshost {
    578 	port2-mode = "ehci-phy";
    579 };
    580 
    581 &usbhsehci {
    582 	phys = <0 &hsusb2_phy>;
    583 };
    584 
    585 &gpmc {
    586 	ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
    587 
    588 	nand@0,0 {
    589 		compatible = "ti,omap2-nand";
    590 		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
    591 		interrupt-parent = <&gpmc>;
    592 		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
    593 			     <1 IRQ_TYPE_NONE>;	/* termcount */
    594 		nand-bus-width = <16>;
    595 		ti,nand-ecc-opt = "sw";
    596 
    597 		gpmc,sync-clk-ps = <0>;
    598 		gpmc,cs-on-ns = <0>;
    599 		gpmc,cs-rd-off-ns = <44>;
    600 		gpmc,cs-wr-off-ns = <44>;
    601 		gpmc,adv-on-ns = <6>;
    602 		gpmc,adv-rd-off-ns = <34>;
    603 		gpmc,adv-wr-off-ns = <44>;
    604 		gpmc,we-off-ns = <40>;
    605 		gpmc,oe-off-ns = <54>;
    606 		gpmc,access-ns = <64>;
    607 		gpmc,rd-cycle-ns = <82>;
    608 		gpmc,wr-cycle-ns = <82>;
    609 		gpmc,wr-access-ns = <40>;
    610 		gpmc,wr-data-mux-bus-ns = <0>;
    611 		gpmc,device-width = <2>;
    612 
    613 		#address-cells = <1>;
    614 		#size-cells = <1>;
    615 
    616 		/* u-boot uses mtdparts=nand:512k(xloader),1920k(uboot),128k(uboot-env),10m(boot),-(rootfs) */
    617 
    618 		x-loader@0 {
    619 			label = "xloader";
    620 			reg = <0 0x80000>;
    621 		};
    622 
    623 		bootloaders@80000 {
    624 			label = "uboot";
    625 			reg = <0x80000 0x1e0000>;
    626 		};
    627 
    628 		bootloaders_env@260000 {
    629 			label = "uboot-env";
    630 			reg = <0x260000 0x20000>;
    631 		};
    632 
    633 		kernel@280000 {
    634 			label = "boot";
    635 			reg = <0x280000 0xa00000>;
    636 		};
    637 
    638 		filesystem@c80000 {
    639 			label = "rootfs";
    640 			reg = <0xc80000 0>;	/* 0 = MTDPART_SIZ_FULL */
    641 		};
    642 	};
    643 };
    644 
    645 &mcspi1 {
    646 	tsc2046@0 {
    647 		reg = <0>;	/* CS0 */
    648 		compatible = "ti,tsc2046";
    649 		spi-max-frequency = <1000000>;
    650 		pinctrl-names = "default";
    651 		pinctrl-0 = <&penirq_pins>;
    652 		interrupt-parent = <&gpio3>;
    653 		interrupts = <30 IRQ_TYPE_NONE>;	/* GPIO_94 */
    654 		pendown-gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
    655 		vcc-supply = <&vaux4>;
    656 
    657 		ti,x-min = /bits/ 16 <0>;
    658 		ti,x-max = /bits/ 16 <8000>;
    659 		ti,y-min = /bits/ 16 <0>;
    660 		ti,y-max = /bits/ 16 <4800>;
    661 		ti,x-plate-ohms = /bits/ 16 <40>;
    662 		ti,pressure-max = /bits/ 16 <255>;
    663 
    664 		wakeup-source;
    665 	};
    666 
    667 	lcd: lcd@1 {
    668 		reg = <1>;	/* CS1 */
    669 		compatible =	"tpo,td043mtea1";
    670 		spi-max-frequency = <100000>;
    671 		spi-cpol;
    672 		spi-cpha;
    673 
    674 		label = "lcd";
    675 		reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;	/* GPIO_157 */
    676 		vcc-supply = <&vaux1>;
    677 
    678 		port {
    679 			lcd_in: endpoint {
    680 				remote-endpoint = <&dpi_out>;
    681 			};
    682 		};
    683 	};
    684 
    685 
    686 };
    687 
    688 /* n/a - used as GPIOs */
    689 &mcbsp1 {
    690 };
    691 
    692 /* audio DAC */
    693 &mcbsp2 {
    694 };
    695 
    696 /* bluetooth */
    697 &mcbsp3 {
    698 };
    699 
    700 /* to twl4030*/
    701 &mcbsp4 {
    702 };
    703 
    704 &venc {
    705 	status = "okay";
    706 
    707 	vdda-supply = <&vdac>;
    708 
    709 	port {
    710 		venc_out: endpoint {
    711 			remote-endpoint = <&tv_connector_in>;
    712 			ti,channels = <2>;
    713 		};
    714 	};
    715 };
    716 
    717 &dss {
    718 	pinctrl-names = "default";
    719 	pinctrl-0 = < &dss_dpi_pins >;
    720 
    721 	status = "okay";
    722 	vdds_dsi-supply = <&vpll2>;
    723 
    724 	port {
    725 		dpi_out: endpoint {
    726 			remote-endpoint = <&lcd_in>;
    727 			data-lines = <24>;
    728 		};
    729 	};
    730 };
    731