Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (C) 2015
0004  *   Nikolaus Schaller <hns@goldelico.com>
0005  *
0006  * Common device tree include for OpenPandora devices.
0007  */
0008 
0009 #include <dt-bindings/input/input.h>
0010 
0011 / {
0012         cpus {
0013                 cpu@0 {
0014                         cpu0-supply = <&vcc>;
0015                 };
0016         };
0017 
0018         memory@80000000 {
0019                 device_type = "memory";
0020                 reg = <0x80000000 0x20000000>; /* 512 MB */
0021         };
0022 
0023         aliases {
0024                 display0 = &lcd;
0025         };
0026 
0027         /* fixed 26MHz oscillator */
0028         hfclk_26m: oscillator {
0029                 #clock-cells = <0>;
0030                 compatible = "fixed-clock";
0031                 clock-frequency = <26000000>;
0032         };
0033 
0034         tv: connector {
0035                 compatible = "connector-analog-tv";
0036                 label = "tv";
0037 
0038                 port {
0039                         tv_connector_in: endpoint {
0040                                 remote-endpoint = <&venc_out>;
0041                         };
0042                 };
0043         };
0044 
0045         gpio-leds {
0046 
0047                 compatible = "gpio-leds";
0048 
0049                 pinctrl-names = "default";
0050                 pinctrl-0 = <&led_pins>;
0051 
0052                 led1 {
0053                         label = "pandora::sd1";
0054                         gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;    /* GPIO_128 */
0055                         linux,default-trigger = "mmc0";
0056                         default-state = "off";
0057                 };
0058 
0059                 led2 {
0060                         label = "pandora::sd2";
0061                         gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;    /* GPIO_129 */
0062                         linux,default-trigger = "mmc1";
0063                         default-state = "off";
0064                 };
0065 
0066                 led3 {
0067                         label = "pandora::bluetooth";
0068                         gpios = <&gpio5 30 GPIO_ACTIVE_HIGH>;   /* GPIO_158 */
0069                         linux,default-trigger = "heartbeat";
0070                         default-state = "off";
0071                 };
0072 
0073                 led4 {
0074                         label = "pandora::wifi";
0075                         gpios = <&gpio5 31 GPIO_ACTIVE_HIGH>;   /* GPIO_159 */
0076                         linux,default-trigger = "mmc2";
0077                         default-state = "off";
0078                 };
0079         };
0080 
0081         gpio-keys {
0082                 compatible = "gpio-keys";
0083 
0084                 pinctrl-names = "default";
0085                 pinctrl-0 = <&button_pins>;
0086 
0087                 up-button {
0088                         label = "up";
0089                         linux,code = <KEY_UP>;
0090                         gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;    /* GPIO_110 */
0091                         wakeup-source;
0092                 };
0093 
0094                 down-button {
0095                         label = "down";
0096                         linux,code = <KEY_DOWN>;
0097                         gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;     /* GPIO_103 */
0098                         wakeup-source;
0099                 };
0100 
0101                 left-button {
0102                         label = "left";
0103                         linux,code = <KEY_LEFT>;
0104                         gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;     /* GPIO_96 */
0105                         wakeup-source;
0106                 };
0107 
0108                 right-button {
0109                         label = "right";
0110                         linux,code = <KEY_RIGHT>;
0111                         gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;     /* GPIO_98 */
0112                         wakeup-source;
0113                 };
0114 
0115                 pageup-button {
0116                         label = "game 1";
0117                         linux,code = <KEY_PAGEUP>;
0118                         gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;    /* GPIO_109 */
0119                         wakeup-source;
0120                 };
0121 
0122                 pagedown-button {
0123                         label = "game 3";
0124                         linux,code = <KEY_PAGEDOWN>;
0125                         gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;    /* GPIO_106 */
0126                         wakeup-source;
0127                 };
0128 
0129                 home-button {
0130                         label = "game 4";
0131                         linux,code = <KEY_HOME>;
0132                         gpios = <&gpio4 5 GPIO_ACTIVE_LOW>;     /* GPIO_101 */
0133                         wakeup-source;
0134                 };
0135 
0136                 end-button {
0137                         label = "game 2";
0138                         linux,code = <KEY_END>;
0139                         gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;    /* GPIO_111 */
0140                         wakeup-source;
0141                 };
0142 
0143                 right-shift {
0144                         label = "l";
0145                         linux,code = <KEY_RIGHTSHIFT>;
0146                         gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;     /* GPIO_102 */
0147                         wakeup-source;
0148                 };
0149 
0150                 kp-plus {
0151                         label = "l2";
0152                         linux,code = <KEY_KPPLUS>;
0153                         gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;     /* GPIO_97 */
0154                         wakeup-source;
0155                 };
0156 
0157                 right-ctrl {
0158                         label = "r";
0159                         linux,code = <KEY_RIGHTCTRL>;
0160                         gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;     /* GPIO_105 */
0161                         wakeup-source;
0162                 };
0163 
0164                 kp-minus {
0165                         label = "r2";
0166                         linux,code = <KEY_KPMINUS>;
0167                         gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;    /* GPIO_107 */
0168                         wakeup-source;
0169                 };
0170 
0171                 left-ctrl {
0172                         label = "ctrl";
0173                         linux,code = <KEY_LEFTCTRL>;
0174                         gpios = <&gpio4 8 GPIO_ACTIVE_LOW>;     /* GPIO_104 */
0175                         wakeup-source;
0176                 };
0177 
0178                 menu {
0179                         label = "menu";
0180                         linux,code = <KEY_MENU>;
0181                         gpios = <&gpio4 3 GPIO_ACTIVE_LOW>;     /* GPIO_99 */
0182                         wakeup-source;
0183                 };
0184 
0185                 hold {
0186                         label = "hold";
0187                         linux,code = <KEY_COFFEE>;
0188                         gpios = <&gpio6 16 GPIO_ACTIVE_LOW>;    /* GPIO_176 */
0189                         wakeup-source;
0190                 };
0191 
0192                 left-alt {
0193                         label = "alt";
0194                         linux,code = <KEY_LEFTALT>;
0195                         gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;    /* GPIO_100 */
0196                         wakeup-source;
0197                 };
0198 
0199                 lid {
0200                         label = "lid";
0201                         linux,code = <0x00>;    /* SW_LID lid shut */
0202                         linux,input-type = <0x05>;    /* EV_SW */
0203                         gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;   /* GPIO_108 */
0204                 };
0205         };
0206 
0207         /* HS USB Host PHY on PORT 2 */
0208         hsusb2_phy: hsusb2_phy {
0209                 compatible = "usb-nop-xceiv";
0210                 reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; /* GPIO_16 */
0211                 vcc-supply = <&vaux2>;
0212                 #phy-cells = <0>;
0213         };
0214 
0215         /* HS USB Host VBUS supply
0216          * disabling this regulator causes current leakage, and LCD flicker
0217          * on earlier (CC) board revisions, so keep it always on */
0218         usb_host_5v: fixed-regulator-usb_host_5v {
0219                 compatible = "regulator-fixed";
0220                 regulator-name = "usb_host_5v";
0221                 regulator-min-microvolt = <5000000>;
0222                 regulator-max-microvolt = <5000000>;
0223                 regulator-always-on;
0224                 regulator-boot-on;
0225                 enable-active-high;
0226                 gpio = <&gpio6 4 GPIO_ACTIVE_HIGH>;     /* GPIO_164 */
0227         };
0228 
0229         /* wl1251 wifi+bt module */
0230         wlan_en: fixed-regulator-wg7210_en {
0231                 compatible = "regulator-fixed";
0232                 regulator-name = "vwlan";
0233                 regulator-min-microvolt = <1800000>;
0234                 regulator-max-microvolt = <1800000>;
0235                 startup-delay-us = <50000>;
0236                 enable-active-high;
0237                 gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;
0238         };
0239 
0240         /* wg7210 (wifi+bt module) 32k clock buffer */
0241         wg7210_32k: fixed-regulator-wg7210_32k {
0242                 compatible = "regulator-fixed";
0243                 regulator-name = "wg7210_32k";
0244                 regulator-min-microvolt = <1800000>;
0245                 regulator-max-microvolt = <1800000>;
0246                 regulator-always-on;
0247                 enable-active-high;
0248                 gpio = <&twl_gpio 13 GPIO_ACTIVE_HIGH>;
0249         };
0250 };
0251 
0252 &omap3_pmx_core {
0253 
0254         mmc1_pins: pinmux_mmc1_pins {
0255                 pinctrl-single,pins = <
0256                         OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_clk.sdmmc1_clk */
0257                         OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_cmd.sdmmc1_cmd */
0258                         OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat0.sdmmc1_dat0 */
0259                         OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat1.sdmmc1_dat1 */
0260                         OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat2.sdmmc1_dat2 */
0261                         OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat3.sdmmc1_dat3 */
0262                 >;
0263         };
0264 
0265         mmc2_pins: pinmux_mmc2_pins {
0266                 pinctrl-single,pins = <
0267                         OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_clk.sdmmc2_clk */
0268                         OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_cmd.sdmmc2_cmd */
0269                         OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat0.sdmmc2_dat0 */
0270                         OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat1.sdmmc2_dat1 */
0271                         OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat2.sdmmc2_dat2 */
0272                         OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat3.sdmmc2_dat3 */
0273                         OMAP3_CORE1_IOPAD(0x2164, PIN_OUTPUT_PULLUP | MUX_MODE1)        /* sdmmc2_dat4.sdmmc2_dirdat0 */
0274                         OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT_PULLUP | MUX_MODE1)        /* sdmmc2_dat5.sdmmc2_dirdat1 */
0275                         OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT_PULLUP | MUX_MODE1)        /* sdmmc2_dat6.sdmmc2_dircmd */
0276                         OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE1)         /* sdmmc2_dat7.sdmmc2_clkin */
0277                 >;
0278         };
0279 
0280         dss_dpi_pins: pinmux_dss_dpi_pins {
0281                 pinctrl-single,pins = <
0282                         OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)       /* dss_pclk.dss_pclk */
0283                         OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)       /* dss_hsync.dss_hsync */
0284                         OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)       /* dss_vsync.dss_vsync */
0285                         OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)       /* dss_acbias.dss_acbias */
0286                         OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)       /* dss_data0.dss_data0 */
0287                         OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)       /* dss_data1.dss_data1 */
0288                         OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)       /* dss_data2.dss_data2 */
0289                         OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)       /* dss_data3.dss_data3 */
0290                         OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)       /* dss_data4.dss_data4 */
0291                         OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)       /* dss_data5.dss_data5 */
0292                         OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)       /* dss_data6.dss_data6 */
0293                         OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)       /* dss_data7.dss_data7 */
0294                         OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)       /* dss_data8.dss_data8 */
0295                         OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)       /* dss_data9.dss_data9 */
0296                         OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)       /* dss_data10.dss_data10 */
0297                         OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)       /* dss_data11.dss_data11 */
0298                         OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)       /* dss_data12.dss_data12 */
0299                         OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)       /* dss_data13.dss_data13 */
0300                         OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)       /* dss_data14.dss_data14 */
0301                         OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)       /* dss_data15.dss_data15 */
0302                         OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)       /* dss_data16.dss_data16 */
0303                         OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)       /* dss_data17.dss_data17 */
0304                         OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)       /* dss_data18.dss_data18 */
0305                         OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)       /* dss_data19.dss_data19 */
0306                         OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)       /* dss_data20.dss_data20 */
0307                         OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)       /* dss_data21.dss_data21 */
0308                         OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)       /* dss_data22.dss_data22 */
0309                         OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)       /* dss_data23.dss_data23 */
0310                         OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)       /* GPIO_157 = lcd reset */
0311                 >;
0312         };
0313 
0314         uart3_pins: pinmux_uart3_pins {
0315                 pinctrl-single,pins = <
0316                         OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
0317                         OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
0318                 >;
0319         };
0320 
0321         led_pins: pinmux_leds_pins {
0322                 pinctrl-single,pins = <
0323                         OMAP3_CORE1_IOPAD(0x2154, PIN_OUTPUT | MUX_MODE4)       /* GPIO_128 */
0324                         OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4)       /* GPIO_129 */
0325                         OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE4)       /* GPIO_158 */
0326                         OMAP3_CORE1_IOPAD(0x2192, PIN_OUTPUT | MUX_MODE4)       /* GPIO_159 */
0327                 >;
0328         };
0329 
0330         button_pins: pinmux_button_pins {
0331                 pinctrl-single,pins = <
0332                         OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT | MUX_MODE4)        /* GPIO_96 */
0333                         OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT | MUX_MODE4)        /* GPIO_97 */
0334                         OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT | MUX_MODE4)        /* GPIO_98 */
0335                         OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT | MUX_MODE4)        /* GPIO_99 */
0336                         OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT | MUX_MODE4)        /* GPIO_100 */
0337                         OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT | MUX_MODE4)        /* GPIO_101 */
0338                         OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT | MUX_MODE4)        /* GPIO_102 */
0339                         OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT | MUX_MODE4)        /* GPIO_103 */
0340                         OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT | MUX_MODE4)        /* GPIO_104 */
0341                         OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE4)        /* GPIO_105 */
0342                         OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE4)        /* GPIO_106 */
0343                         OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE4)        /* GPIO_107 */
0344                         OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE4)        /* GPIO_108 */
0345                         OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4)        /* GPIO_109 */
0346                         OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT | MUX_MODE4)        /* GPIO_110 */
0347                         OMAP3_CORE1_IOPAD(0x212e, PIN_INPUT | MUX_MODE4)        /* GPIO_111 */
0348                         OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4)        /* GPIO_176 */
0349                 >;
0350         };
0351 
0352         penirq_pins: pinmux_penirq_pins {
0353                 pinctrl-single,pins = <
0354                         /* here we could enable to wakeup the cpu from suspend by a pen touch */
0355                         OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT | MUX_MODE4)        /* GPIO_94 */
0356                 >;
0357         };
0358 
0359 };
0360 
0361 &omap3_pmx_core2 {
0362         /* define in CPU specific file that includes this one
0363          * use either OMAP3430_CORE2_IOPAD() or OMAP3630_CORE2_IOPAD()
0364          */
0365 };
0366 
0367 &i2c1 {
0368         clock-frequency = <2600000>;
0369 
0370         twl: twl@48 {
0371                 reg = <0x48>;
0372                 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
0373                 interrupt-parent = <&intc>;
0374 
0375                 clocks = <&hfclk_26m>;
0376                 clock-names = "fck";
0377 
0378                 twl_power: power {
0379                         compatible = "ti,twl4030-power-reset";
0380                         ti,use_poweroff;
0381                 };
0382 
0383                 twl_audio: audio {
0384                         compatible = "ti,twl4030-audio";
0385 
0386                         codec {
0387                                 ti,ramp_delay_value = <3>;
0388                         };
0389                 };
0390         };
0391 };
0392 
0393 #include "twl4030.dtsi"
0394 #include "twl4030_omap3.dtsi"
0395 
0396 &twl_keypad {
0397         keypad,num-rows = <8>;
0398         keypad,num-columns = <6>;
0399         linux,keymap = <
0400                 MATRIX_KEY(0, 0, KEY_9)
0401                 MATRIX_KEY(0, 1, KEY_8)
0402                 MATRIX_KEY(0, 2, KEY_I)
0403                 MATRIX_KEY(0, 3, KEY_J)
0404                 MATRIX_KEY(0, 4, KEY_N)
0405                 MATRIX_KEY(0, 5, KEY_M)
0406                 MATRIX_KEY(1, 0, KEY_0)
0407                 MATRIX_KEY(1, 1, KEY_7)
0408                 MATRIX_KEY(1, 2, KEY_U)
0409                 MATRIX_KEY(1, 3, KEY_H)
0410                 MATRIX_KEY(1, 4, KEY_B)
0411                 MATRIX_KEY(1, 5, KEY_SPACE)
0412                 MATRIX_KEY(2, 0, KEY_BACKSPACE)
0413                 MATRIX_KEY(2, 1, KEY_6)
0414                 MATRIX_KEY(2, 2, KEY_Y)
0415                 MATRIX_KEY(2, 3, KEY_G)
0416                 MATRIX_KEY(2, 4, KEY_V)
0417                 MATRIX_KEY(2, 5, KEY_FN)
0418                 MATRIX_KEY(3, 0, KEY_O)
0419                 MATRIX_KEY(3, 1, KEY_5)
0420                 MATRIX_KEY(3, 2, KEY_T)
0421                 MATRIX_KEY(3, 3, KEY_F)
0422                 MATRIX_KEY(3, 4, KEY_C)
0423                 MATRIX_KEY(4, 0, KEY_P)
0424                 MATRIX_KEY(4, 1, KEY_4)
0425                 MATRIX_KEY(4, 2, KEY_R)
0426                 MATRIX_KEY(4, 3, KEY_D)
0427                 MATRIX_KEY(4, 4, KEY_X)
0428                 MATRIX_KEY(5, 0, KEY_K)
0429                 MATRIX_KEY(5, 1, KEY_3)
0430                 MATRIX_KEY(5, 2, KEY_E)
0431                 MATRIX_KEY(5, 3, KEY_S)
0432                 MATRIX_KEY(5, 4, KEY_Z)
0433                 MATRIX_KEY(6, 0, KEY_L)
0434                 MATRIX_KEY(6, 1, KEY_2)
0435                 MATRIX_KEY(6, 2, KEY_W)
0436                 MATRIX_KEY(6, 3, KEY_A)
0437                 MATRIX_KEY(6, 4, KEY_RIGHTBRACE)
0438                 MATRIX_KEY(7, 0, KEY_ENTER)
0439                 MATRIX_KEY(7, 1, KEY_1)
0440                 MATRIX_KEY(7, 2, KEY_Q)
0441                 MATRIX_KEY(7, 3, KEY_LEFTSHIFT)
0442                 MATRIX_KEY(7, 4, KEY_LEFTBRACE )
0443          >;
0444 };
0445 
0446 /* backup battery charger */
0447 &charger {
0448         ti,bb-uvolt = <3200000>;
0449         ti,bb-uamp = <150>;
0450 };
0451 
0452 /* MMC2 */
0453 &vmmc2 {
0454         regulator-min-microvolt = <1850000>;
0455         regulator-max-microvolt = <3150000>;
0456 };
0457 
0458 /* LCD */
0459 &vaux1 {
0460         regulator-min-microvolt = <3000000>;
0461         regulator-max-microvolt = <3000000>;
0462 };
0463 
0464 /* USB Host PHY */
0465 &vaux2 {
0466         regulator-min-microvolt = <1800000>;
0467         regulator-max-microvolt = <1800000>;
0468 };
0469 
0470 /* available on expansion connector */
0471 &vaux3 {
0472         regulator-min-microvolt = <2800000>;
0473         regulator-max-microvolt = <2800000>;
0474 };
0475 
0476 /* ADS7846 and nubs */
0477 &vaux4 {
0478         regulator-min-microvolt = <2800000>;
0479         regulator-max-microvolt = <2800000>;
0480 };
0481 
0482 /* power audio DAC and LID sensor */
0483 &vsim {
0484         regulator-min-microvolt = <2800000>;
0485         regulator-max-microvolt = <2800000>;
0486         regulator-always-on;
0487 };
0488 
0489 &i2c2 {
0490         clock-frequency = <100000>;
0491         /* no clients so we should disable clock */
0492 };
0493 
0494 &i2c3 {
0495         clock-frequency = <100000>;
0496 
0497         bq27500@55 {
0498                 compatible = "ti,bq27500";
0499                 reg = <0x55>;
0500         };
0501 
0502 };
0503 
0504 &usb_otg_hs {
0505         interface-type = <0>;
0506         usb-phy = <&usb2_phy>;
0507         phys = <&usb2_phy>;
0508         phy-names = "usb2-phy";
0509         mode = <3>;
0510         power = <50>;
0511 };
0512 
0513 /*
0514  * Many pandora boards have been produced with defective write-protect switches
0515  * on either slot, so it was decided not to use this feature. If you know
0516  * your board has good switches, feel free to uncomment wp-gpios below.
0517  */
0518 &mmc1 {
0519         pinctrl-names = "default";
0520         pinctrl-0 = <&mmc1_pins>;
0521         vmmc-supply = <&vmmc1>;
0522         bus-width = <4>;
0523         cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
0524         /*wp-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;*/    /* GPIO_126 */
0525 };
0526 
0527 &mmc2 {
0528         pinctrl-names = "default";
0529         pinctrl-0 = <&mmc2_pins>;
0530         vmmc-supply = <&vmmc2>;
0531         bus-width = <4>;
0532         cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_LOW>;
0533         /*wp-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;*/    /* GPIO_127 */
0534 };
0535 
0536 &mmc3 {
0537         vmmc-supply = <&wlan_en>;
0538 
0539         bus-width = <4>;
0540         non-removable;
0541         ti,non-removable;
0542         cap-power-off-card;
0543 
0544         pinctrl-names = "default";
0545         pinctrl-0 = <&mmc3_pins>;
0546 
0547         #address-cells = <1>;
0548         #size-cells = <0>;
0549 
0550         wlan: wifi@1 {
0551                 compatible = "ti,wl1251";
0552 
0553                 reg = <1>;
0554 
0555                 interrupt-parent = <&gpio1>;
0556                 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;  /* GPIO_21 */
0557 
0558                 ti,wl1251-has-eeprom;
0559         };
0560 };
0561 
0562 /* bluetooth*/
0563 &uart1 {
0564 };
0565 
0566 /* spare (expansion connector) */
0567 &uart2 {
0568 };
0569 
0570 /* console (expansion connector) */
0571 &uart3 {
0572         pinctrl-names = "default";
0573         pinctrl-0 = <&uart3_pins>;
0574         interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
0575 };
0576 
0577 &usbhshost {
0578         port2-mode = "ehci-phy";
0579 };
0580 
0581 &usbhsehci {
0582         phys = <0 &hsusb2_phy>;
0583 };
0584 
0585 &gpmc {
0586         ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
0587 
0588         nand@0,0 {
0589                 compatible = "ti,omap2-nand";
0590                 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
0591                 interrupt-parent = <&gpmc>;
0592                 interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
0593                              <1 IRQ_TYPE_NONE>; /* termcount */
0594                 nand-bus-width = <16>;
0595                 ti,nand-ecc-opt = "sw";
0596 
0597                 gpmc,sync-clk-ps = <0>;
0598                 gpmc,cs-on-ns = <0>;
0599                 gpmc,cs-rd-off-ns = <44>;
0600                 gpmc,cs-wr-off-ns = <44>;
0601                 gpmc,adv-on-ns = <6>;
0602                 gpmc,adv-rd-off-ns = <34>;
0603                 gpmc,adv-wr-off-ns = <44>;
0604                 gpmc,we-off-ns = <40>;
0605                 gpmc,oe-off-ns = <54>;
0606                 gpmc,access-ns = <64>;
0607                 gpmc,rd-cycle-ns = <82>;
0608                 gpmc,wr-cycle-ns = <82>;
0609                 gpmc,wr-access-ns = <40>;
0610                 gpmc,wr-data-mux-bus-ns = <0>;
0611                 gpmc,device-width = <2>;
0612 
0613                 #address-cells = <1>;
0614                 #size-cells = <1>;
0615 
0616                 /* u-boot uses mtdparts=nand:512k(xloader),1920k(uboot),128k(uboot-env),10m(boot),-(rootfs) */
0617 
0618                 x-loader@0 {
0619                         label = "xloader";
0620                         reg = <0 0x80000>;
0621                 };
0622 
0623                 bootloaders@80000 {
0624                         label = "uboot";
0625                         reg = <0x80000 0x1e0000>;
0626                 };
0627 
0628                 bootloaders_env@260000 {
0629                         label = "uboot-env";
0630                         reg = <0x260000 0x20000>;
0631                 };
0632 
0633                 kernel@280000 {
0634                         label = "boot";
0635                         reg = <0x280000 0xa00000>;
0636                 };
0637 
0638                 filesystem@c80000 {
0639                         label = "rootfs";
0640                         reg = <0xc80000 0>;     /* 0 = MTDPART_SIZ_FULL */
0641                 };
0642         };
0643 };
0644 
0645 &mcspi1 {
0646         tsc2046@0 {
0647                 reg = <0>;      /* CS0 */
0648                 compatible = "ti,tsc2046";
0649                 spi-max-frequency = <1000000>;
0650                 pinctrl-names = "default";
0651                 pinctrl-0 = <&penirq_pins>;
0652                 interrupt-parent = <&gpio3>;
0653                 interrupts = <30 IRQ_TYPE_NONE>;        /* GPIO_94 */
0654                 pendown-gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
0655                 vcc-supply = <&vaux4>;
0656 
0657                 ti,x-min = /bits/ 16 <0>;
0658                 ti,x-max = /bits/ 16 <8000>;
0659                 ti,y-min = /bits/ 16 <0>;
0660                 ti,y-max = /bits/ 16 <4800>;
0661                 ti,x-plate-ohms = /bits/ 16 <40>;
0662                 ti,pressure-max = /bits/ 16 <255>;
0663 
0664                 wakeup-source;
0665         };
0666 
0667         lcd: lcd@1 {
0668                 reg = <1>;      /* CS1 */
0669                 compatible = "tpo,td043mtea1";
0670                 spi-max-frequency = <100000>;
0671                 spi-cpol;
0672                 spi-cpha;
0673 
0674                 label = "lcd";
0675                 reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;      /* GPIO_157 */
0676                 vcc-supply = <&vaux1>;
0677 
0678                 port {
0679                         lcd_in: endpoint {
0680                                 remote-endpoint = <&dpi_out>;
0681                         };
0682                 };
0683         };
0684 
0685 
0686 };
0687 
0688 /* n/a - used as GPIOs */
0689 &mcbsp1 {
0690 };
0691 
0692 /* audio DAC */
0693 &mcbsp2 {
0694 };
0695 
0696 /* bluetooth */
0697 &mcbsp3 {
0698 };
0699 
0700 /* to twl4030*/
0701 &mcbsp4 {
0702 };
0703 
0704 &venc {
0705         status = "okay";
0706 
0707         vdda-supply = <&vdac>;
0708 
0709         port {
0710                 venc_out: endpoint {
0711                         remote-endpoint = <&tv_connector_in>;
0712                         ti,channels = <2>;
0713                 };
0714         };
0715 };
0716 
0717 &dss {
0718         pinctrl-names = "default";
0719         pinctrl-0 = < &dss_dpi_pins >;
0720 
0721         status = "okay";
0722         vdds_dsi-supply = <&vpll2>;
0723 
0724         port {
0725                 dpi_out: endpoint {
0726                         remote-endpoint = <&lcd_in>;
0727                         data-lines = <24>;
0728                 };
0729         };
0730 };