0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003 * Copyright (C) 2013 Marek Belisko <marek@goldelico.com>
0004 *
0005 * Based on omap3-beagle-xm.dts
0006 */
0007 /dts-v1/;
0008
0009 #include "omap36xx.dtsi"
0010 #include <dt-bindings/input/input.h>
0011
0012 / {
0013 model = "OMAP3 GTA04";
0014 compatible = "ti,omap3-gta04", "ti,omap3630", "ti,omap36xx", "ti,omap3";
0015
0016 cpus {
0017 cpu@0 {
0018 cpu0-supply = <&vcc>;
0019 };
0020 };
0021
0022 memory@80000000 {
0023 device_type = "memory";
0024 reg = <0x80000000 0x20000000>; /* 512 MB */
0025 };
0026
0027 chosen {
0028 stdout-path = &uart3;
0029 };
0030
0031 aliases {
0032 display0 = &lcd;
0033 display1 = &tv0;
0034 /delete-property/ mmc2;
0035 /delete-property/ mmc3;
0036 };
0037
0038 ldo_3v3: fixedregulator {
0039 compatible = "regulator-fixed";
0040 regulator-name = "ldo_3v3";
0041 regulator-min-microvolt = <3300000>;
0042 regulator-max-microvolt = <3300000>;
0043 regulator-always-on;
0044 };
0045
0046 /* fixed 26MHz oscillator */
0047 hfclk_26m: oscillator {
0048 #clock-cells = <0>;
0049 compatible = "fixed-clock";
0050 clock-frequency = <26000000>;
0051 };
0052
0053 gpio-keys {
0054 compatible = "gpio-keys";
0055
0056 aux-button {
0057 label = "aux";
0058 linux,code = <KEY_PHONE>;
0059 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
0060 wakeup-source;
0061 };
0062 };
0063
0064 antenna-detect {
0065 compatible = "gpio-keys";
0066
0067 gps_antenna_button: gps-antenna-button {
0068 label = "GPS_EXT_ANT";
0069 linux,input-type = <EV_SW>;
0070 linux,code = <SW_LINEIN_INSERT>;
0071 gpios = <&gpio5 16 GPIO_ACTIVE_HIGH>; /* GPIO144 */
0072 interrupt-parent = <&gpio5>;
0073 interrupts = <16 IRQ_TYPE_EDGE_BOTH>;
0074 debounce-interval = <10>;
0075 wakeup-source;
0076 };
0077 };
0078
0079 sound {
0080 compatible = "ti,omap-twl4030";
0081 ti,model = "gta04";
0082
0083 ti,mcbsp = <&mcbsp2>;
0084 };
0085
0086 /* GSM audio */
0087 sound_telephony {
0088 compatible = "simple-audio-card";
0089 simple-audio-card,name = "GTA04 voice";
0090 simple-audio-card,bitclock-master = <&telephony_link_master>;
0091 simple-audio-card,frame-master = <&telephony_link_master>;
0092 simple-audio-card,format = "i2s";
0093 simple-audio-card,bitclock-inversion;
0094 simple-audio-card,frame-inversion;
0095 simple-audio-card,cpu {
0096 sound-dai = <&mcbsp4>;
0097 };
0098
0099 telephony_link_master: simple-audio-card,codec {
0100 sound-dai = <>m601_codec>;
0101 };
0102 };
0103
0104 gtm601_codec: gsm_codec {
0105 compatible = "option,gtm601";
0106 #sound-dai-cells = <0>;
0107 };
0108
0109 spi_lcd: spi {
0110 compatible = "spi-gpio";
0111 #address-cells = <0x1>;
0112 #size-cells = <0x0>;
0113 pinctrl-names = "default";
0114 pinctrl-0 = <&spi_gpio_pins>;
0115
0116 sck-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
0117 miso-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
0118 mosi-gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>;
0119 cs-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
0120 num-chipselects = <1>;
0121
0122 /* lcd panel */
0123 lcd: td028ttec1@0 {
0124 compatible = "tpo,td028ttec1";
0125 reg = <0>;
0126 spi-max-frequency = <100000>;
0127 spi-cpol;
0128 spi-cpha;
0129
0130 backlight = <&backlight>;
0131 label = "lcd";
0132 port {
0133 lcd_in: endpoint {
0134 remote-endpoint = <&dpi_out>;
0135 };
0136 };
0137 };
0138 };
0139
0140 backlight: backlight {
0141 compatible = "pwm-backlight";
0142 pwms = <&pwm11 0 12000000 0>;
0143 pwm-names = "backlight";
0144 brightness-levels = <0 11 20 30 40 50 60 70 80 90 100>;
0145 default-brightness-level = <9>; /* => 90 */
0146 pinctrl-names = "default";
0147 pinctrl-0 = <&backlight_pins>;
0148 };
0149
0150 pwm11: dmtimer-pwm {
0151 compatible = "ti,omap-dmtimer-pwm";
0152 ti,timers = <&timer11>;
0153 #pwm-cells = <3>;
0154 ti,clock-source = <0x01>;
0155 };
0156
0157 hsusb2_phy: hsusb2_phy {
0158 compatible = "usb-nop-xceiv";
0159 reset-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
0160 #phy-cells = <0>;
0161 };
0162
0163 tv0: connector {
0164 compatible = "composite-video-connector";
0165 label = "tv";
0166
0167 port {
0168 tv_connector_in: endpoint {
0169 remote-endpoint = <&opa_out>;
0170 };
0171 };
0172 };
0173
0174 tv_amp: opa362 {
0175 compatible = "ti,opa362";
0176 enable-gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>; /* GPIO_23 to enable video out amplifier */
0177
0178 ports {
0179 #address-cells = <1>;
0180 #size-cells = <0>;
0181
0182 port@0 {
0183 reg = <0>;
0184 opa_in: endpoint {
0185 remote-endpoint = <&venc_out>;
0186 };
0187 };
0188
0189 port@1 {
0190 reg = <1>;
0191 opa_out: endpoint {
0192 remote-endpoint = <&tv_connector_in>;
0193 };
0194 };
0195 };
0196 };
0197
0198 wifi_pwrseq: wifi_pwrseq {
0199 compatible = "mmc-pwrseq-simple";
0200 reset-gpios = <&tca6507 0 GPIO_ACTIVE_LOW>; /* W2CBW003 reset through tca6507 */
0201 };
0202
0203 /* devconf0 setup for mcbsp1 clock pins */
0204 pinmux_mcbsp1@48002274 {
0205 compatible = "pinctrl-single";
0206 reg = <0x48002274 4>; /* CONTROL_DEVCONF0 */
0207 #address-cells = <1>;
0208 #size-cells = <0>;
0209 pinctrl-single,bit-per-mux;
0210 pinctrl-single,register-width = <32>;
0211 pinctrl-single,function-mask = <0x7>; /* MCBSP1 CLK pinmux */
0212 #pinctrl-cells = <2>;
0213 pinctrl-names = "default";
0214 pinctrl-0 = <&mcbsp1_devconf0_pins>;
0215 mcbsp1_devconf0_pins: pinmux_mcbsp1_devconf0_pins {
0216 /* offset bits mask */
0217 pinctrl-single,bits = <0x00 0x08 0x1c>; /* set MCBSP1_CLKR */
0218 };
0219 };
0220
0221 /* devconf1 setup for tvout pins */
0222 pinmux_tv_out@480022d8 {
0223 compatible = "pinctrl-single";
0224 reg = <0x480022d8 4>; /* CONTROL_DEVCONF1 */
0225 #address-cells = <1>;
0226 #size-cells = <0>;
0227 pinctrl-single,bit-per-mux;
0228 pinctrl-single,register-width = <32>;
0229 pinctrl-single,function-mask = <0x81>; /* TV out pin control */
0230 #pinctrl-cells = <2>;
0231 pinctrl-names = "default";
0232 pinctrl-0 = <&tv_acbias_devconf1_pins>;
0233 tv_acbias_devconf1_pins: pinmux_tv_acbias_devconf1_pins {
0234 /* offset bits mask */
0235 pinctrl-single,bits = <0x00 0x40800 0x40800>; /* set TVOUTBYPASS and TVOUTACEN */
0236 };
0237 };
0238 };
0239
0240 &omap3_pmx_wkup {
0241 gpio1_pins: pinmux_gpio1_pins {
0242 pinctrl-single,pins = <
0243 OMAP3_WKUP_IOPAD(0x2a14, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot5.gpio_7 */
0244 OMAP3_WKUP_IOPAD(0x2a1a, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_clkout.gpio_10 */
0245 >;
0246 };
0247 };
0248
0249 &omap3_pmx_core {
0250 pinctrl-names = "default";
0251 pinctrl-0 = <
0252 &hsusb2_pins
0253 >;
0254
0255 hsusb2_pins: pinmux_hsusb2_pins {
0256 pinctrl-single,pins = <
0257 OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */
0258 OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */
0259 OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */
0260 OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */
0261 OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */
0262 OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */
0263 >;
0264 };
0265
0266 uart1_pins: pinmux_uart1_pins {
0267 pinctrl-single,pins = <
0268 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE0) /* uart1_rx.uart1_rx */
0269 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE0) /* uart1_tx.uart1_tx */
0270 >;
0271 };
0272
0273 uart2_pins: pinmux_uart2_pins {
0274 pinctrl-single,pins = <
0275 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */
0276 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */
0277 >;
0278 };
0279
0280 uart3_pins: pinmux_uart3_pins {
0281 pinctrl-single,pins = <
0282 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx.uart3_rx */
0283 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx.uart3_tx */
0284 >;
0285 };
0286
0287 mmc1_pins: pinmux_mmc1_pins {
0288 pinctrl-single,pins = <
0289 OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */
0290 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */
0291 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */
0292 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */
0293 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */
0294 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */
0295 >;
0296 };
0297
0298 backlight_pins: backlight_pins_pinmux {
0299 pinctrl-single,pins = <
0300 OMAP3_CORE1_IOPAD(0x20ba, MUX_MODE3) /* gpt11/gpio57 */
0301 >;
0302 };
0303
0304 dss_dpi_pins: pinmux_dss_dpi_pins {
0305 pinctrl-single,pins = <
0306 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
0307 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
0308 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
0309 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
0310 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0) /* dss_data0.dss_data0 */
0311 OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0) /* dss_data1.dss_data1 */
0312 OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0) /* dss_data2.dss_data2 */
0313 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0) /* dss_data3.dss_data3 */
0314 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0) /* dss_data4.dss_data4 */
0315 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0) /* dss_data5.dss_data5 */
0316 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
0317 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
0318 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
0319 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
0320 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
0321 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
0322 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
0323 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
0324 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
0325 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
0326 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
0327 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
0328 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0) /* dss_data18.dss_data18 */
0329 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0) /* dss_data19.dss_data19 */
0330 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0) /* dss_data20.dss_data20 */
0331 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0) /* dss_data21.dss_data21 */
0332 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0) /* dss_data22.dss_data22 */
0333 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0) /* dss_data23.dss_data23 */
0334 >;
0335 };
0336
0337 gps_pins: pinmux_gps_pins {
0338 pinctrl-single,pins = <
0339 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* gpio145 */
0340 >;
0341 };
0342
0343 hdq_pins: hdq_pins {
0344 pinctrl-single,pins = <
0345 OMAP3_CORE1_IOPAD(0x21c6, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda.hdq */
0346 >;
0347 };
0348
0349 bmp085_pins: pinmux_bmp085_pins {
0350 pinctrl-single,pins = <
0351 OMAP3_CORE1_IOPAD(0x2136, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio113 */
0352 >;
0353 };
0354
0355 bma180_pins: pinmux_bma180_pins {
0356 pinctrl-single,pins = <
0357 OMAP3_CORE1_IOPAD(0x213a, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio115 */
0358 >;
0359 };
0360
0361 itg3200_pins: pinmux_itg3200_pins {
0362 pinctrl-single,pins = <
0363 OMAP3_CORE1_IOPAD(0x20b8, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio56 */
0364 >;
0365 };
0366
0367 hmc5843_pins: pinmux_hmc5843_pins {
0368 pinctrl-single,pins = <
0369 OMAP3_CORE1_IOPAD(0x2134, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio112 */
0370 >;
0371 };
0372
0373 penirq_pins: pinmux_penirq_pins {
0374 pinctrl-single,pins = <
0375 /* here we could enable to wakeup the cpu from suspend by a pen touch */
0376 OMAP3_CORE1_IOPAD(0x2194, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio160 */
0377 >;
0378 };
0379
0380 camera_pins: pinmux_camera_pins {
0381 pinctrl-single,pins = <
0382 /* set up parallel camera interface */
0383 OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_hs */
0384 OMAP3_CORE1_IOPAD(0x210e, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_vs */
0385 OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0) /* cam_xclka */
0386 OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_pclk */
0387 OMAP3_CORE1_IOPAD(0x2114, PIN_OUTPUT | MUX_MODE4) /* cam_fld = gpio_98 */
0388 OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d0 */
0389 OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d1 */
0390 OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d2 */
0391 OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d3 */
0392 OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d4 */
0393 OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d5 */
0394 OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d6 */
0395 OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d7 */
0396 OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d8 */
0397 OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d9 */
0398 OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d10 */
0399 OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d10 */
0400 OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE0) /* cam_xclkb */
0401 OMAP3_CORE1_IOPAD(0x2130, PIN_OUTPUT | MUX_MODE4) /* cam_wen = gpio_167 */
0402 OMAP3_CORE1_IOPAD(0x2132, PIN_INPUT_PULLDOWN | MUX_MODE4) /* cam_strobe */
0403 >;
0404 };
0405
0406 mcbsp1_pins: pinmux_mcbsp1_pins {
0407 pinctrl-single,pins = <
0408 OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT | MUX_MODE4) /* mcbsp1_clkr.mcbsp1_clkr - gpio_156 FM interrupt */
0409 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE0) /* mcbsp1_clkr.mcbsp1_fsr */
0410 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dx */
0411 OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dr */
0412 /* mcbsp_clks is used as PENIRQ */
0413 /* OMAP3_CORE1_IOPAD(0x2194, PIN_INPUT | MUX_MODE0) mcbsp_clks.mcbsp_clks */
0414 OMAP3_CORE1_IOPAD(0x2196, PIN_INPUT | MUX_MODE0) /* mcbsp_clks.mcbsp1_fsx */
0415 OMAP3_CORE1_IOPAD(0x2198, PIN_INPUT | MUX_MODE0) /* mcbsp1_clkx.mcbsp1_clkx */
0416 >;
0417 };
0418
0419 mcbsp2_pins: pinmux_mcbsp2_pins {
0420 pinctrl-single,pins = <
0421 OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0) /* mcbsp2_fsx.mcbsp2_fsx */
0422 OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0) /* mcbsp2_fsx.mcbsp2_clkx */
0423 OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0) /* mcbsp2_dr.mcbsp2_dr */
0424 OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0) /* mcbsp2_dr.mcbsp2_dx */
0425 >;
0426 };
0427
0428 mcbsp3_pins: pinmux_mcbsp3_pins {
0429 pinctrl-single,pins = <
0430 OMAP3_CORE1_IOPAD(0x216c, PIN_OUTPUT | MUX_MODE0) /* mcbsp3_dx.mcbsp3_dx */
0431 OMAP3_CORE1_IOPAD(0x216e, PIN_INPUT | MUX_MODE0) /* mcbsp3_dx.mcbsp3_dr */
0432 OMAP3_CORE1_IOPAD(0x2170, PIN_INPUT | MUX_MODE0) /* mcbsp3_clkx.mcbsp3_clkx */
0433 OMAP3_CORE1_IOPAD(0x2172, PIN_INPUT | MUX_MODE0) /* mcbsp3_clkx.mcbsp3_fsx */
0434 >;
0435 };
0436
0437 mcbsp4_pins: pinmux_mcbsp4_pins {
0438 pinctrl-single,pins = <
0439 OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcbsp4_clkx.mcbsp4_clkx */
0440 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcbsp4_clkx.mcbsp4_dr */
0441 OMAP3_CORE1_IOPAD(0x218a, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcbsp4_dx.mcbsp4_fsx */
0442 >;
0443 };
0444 };
0445
0446 &omap3_pmx_core2 {
0447 pinctrl-names = "default";
0448 pinctrl-0 = <
0449 &hsusb2_2_pins
0450 >;
0451
0452 hsusb2_2_pins: pinmux_hsusb2_2_pins {
0453 pinctrl-single,pins = <
0454 OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */
0455 OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */
0456 OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */
0457 OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */
0458 OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */
0459 OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */
0460 >;
0461 };
0462
0463 spi_gpio_pins: spi_gpio_pinmux {
0464 pinctrl-single,pins = <
0465 OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE4) /* clk */
0466 OMAP3630_CORE2_IOPAD(0x25e6, PIN_OUTPUT | MUX_MODE4) /* cs */
0467 OMAP3630_CORE2_IOPAD(0x25e8, PIN_OUTPUT | MUX_MODE4) /* tx */
0468 OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT | MUX_MODE4) /* rx */
0469 >;
0470 };
0471 };
0472
0473 &i2c1 {
0474 clock-frequency = <2600000>;
0475
0476 twl: twl@48 {
0477 reg = <0x48>;
0478 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
0479 interrupt-parent = <&intc>;
0480
0481 clocks = <&hfclk_26m>;
0482 clock-names = "fck";
0483
0484 twl_audio: audio {
0485 compatible = "ti,twl4030-audio";
0486 ti,enable-vibra = <1>;
0487 codec {
0488 ti,ramp_delay_value = <3>;
0489 };
0490 };
0491
0492 twl_power: power {
0493 compatible = "ti,twl4030-power-idle";
0494 ti,system-power-controller;
0495 };
0496 };
0497 };
0498
0499 #include "twl4030.dtsi"
0500 #include "twl4030_omap3.dtsi"
0501
0502 &i2c2 {
0503 clock-frequency = <400000>;
0504
0505 /* pressure sensor */
0506 bmp085@77 {
0507 compatible = "bosch,bmp085";
0508 reg = <0x77>;
0509 pinctrl-names = "default";
0510 pinctrl-0 = <&bmp085_pins>;
0511 interrupt-parent = <&gpio4>;
0512 interrupts = <17 IRQ_TYPE_EDGE_RISING>; /* GPIO_113 */
0513 vdda-supply = <&vio>;
0514 vddd-supply = <&vio>;
0515 };
0516
0517 /* accelerometer */
0518 bma180@41 {
0519 compatible = "bosch,bma180";
0520 reg = <0x41>;
0521 pinctrl-names = "default";
0522 pinctrl-0 = <&bma180_pins>;
0523 interrupt-parent = <&gpio4>;
0524 interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_115 */
0525 };
0526
0527 /* gyroscope */
0528 itg3200@68 {
0529 compatible = "invensense,itg3200";
0530 reg = <0x68>;
0531 pinctrl-names = "default";
0532 pinctrl-0 = <&itg3200_pins>;
0533 interrupt-parent = <&gpio2>;
0534 interrupts = <24 IRQ_TYPE_EDGE_FALLING>; /* GPIO_56 */
0535 };
0536
0537 /* leds + gpios */
0538 tca6507: tca6507@45 {
0539 compatible = "ti,tca6507";
0540 #address-cells = <1>;
0541 #size-cells = <0>;
0542 reg = <0x45>;
0543
0544 gpio-controller;
0545 #gpio-cells = <2>;
0546
0547 gta04_led0: led@0 {
0548 label = "gta04:red:aux";
0549 reg = <0x0>;
0550 };
0551
0552 gta04_led1: led@1 {
0553 label = "gta04:green:aux";
0554 reg = <0x1>;
0555 };
0556
0557 gta04_led3: led@3 {
0558 label = "gta04:red:power";
0559 reg = <0x3>;
0560 linux,default-trigger = "default-on";
0561 };
0562
0563 gta04_led4: led@4 {
0564 label = "gta04:green:power";
0565 reg = <0x4>;
0566 };
0567
0568 wifi_reset: led@6 {
0569 /* reference as <&tca_gpios 0 0> since it is currently the only GPIO */
0570 reg = <0x6>;
0571 compatible = "gpio";
0572 };
0573 };
0574
0575 /* compass aka magnetometer */
0576 hmc5843@1e {
0577 compatible = "honeywell,hmc5883l";
0578 reg = <0x1e>;
0579 pinctrl-names = "default";
0580 pinctrl-0 = <&hmc5843_pins>;
0581 interrupt-parent = <&gpio4>;
0582 interrupts = <16 IRQ_TYPE_EDGE_FALLING>; /* gpio112 */
0583 };
0584
0585 /* touchscreen */
0586 tsc2007@48 {
0587 compatible = "ti,tsc2007";
0588 reg = <0x48>;
0589 pinctrl-names = "default";
0590 pinctrl-0 = <&penirq_pins>;
0591 interrupt-parent = <&gpio6>;
0592 interrupts = <0 IRQ_TYPE_EDGE_FALLING>; /* GPIO_160 */
0593 gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* GPIO_160 */
0594 ti,x-plate-ohms = <600>;
0595 touchscreen-size-x = <480>;
0596 touchscreen-size-y = <640>;
0597 touchscreen-max-pressure = <1000>;
0598 touchscreen-fuzz-x = <3>;
0599 touchscreen-fuzz-y = <8>;
0600 touchscreen-fuzz-pressure = <10>;
0601 touchscreen-inverted-y;
0602 };
0603
0604 /* RFID EEPROM */
0605 m24lr64@50 {
0606 compatible = "atmel,24c64";
0607 reg = <0x50>;
0608 };
0609 };
0610
0611 &i2c3 {
0612 clock-frequency = <100000>;
0613 };
0614
0615 &usb_otg_hs {
0616 interface-type = <0>;
0617 usb-phy = <&usb2_phy>;
0618 phys = <&usb2_phy>;
0619 phy-names = "usb2-phy";
0620 mode = <3>;
0621 power = <50>;
0622 };
0623
0624 &usbhshost {
0625 port2-mode = "ehci-phy";
0626 };
0627
0628 &usbhsehci {
0629 phys = <0 &hsusb2_phy>;
0630 };
0631
0632 &mmc1 {
0633 pinctrl-names = "default";
0634 pinctrl-0 = <&mmc1_pins>;
0635 vmmc-supply = <&vmmc1>;
0636 bus-width = <4>;
0637 ti,non-removable;
0638 broken-cd; /* hardware has no CD */
0639 };
0640
0641 &mmc2 {
0642 vmmc-supply = <&vaux4>;
0643 bus-width = <4>;
0644 ti,non-removable;
0645 cap-power-off-card;
0646 mmc-pwrseq = <&wifi_pwrseq>;
0647 };
0648
0649 &mmc3 {
0650 status = "disabled";
0651 };
0652
0653 #define BIT(x) (1 << (x))
0654 &twl_gpio {
0655 /* pullups: BIT(2) */
0656 ti,pullups = <BIT(2)>;
0657 /*
0658 * pulldowns:
0659 * BIT(0), BIT(1), BIT(6), BIT(7), BIT(8), BIT(13)
0660 * BIT(15), BIT(16), BIT(17)
0661 */
0662 ti,pulldowns = <(BIT(0) | BIT(1) | BIT(6) | BIT(7) | BIT(8) |
0663 BIT(13) | BIT(15) | BIT(16) | BIT(17))>;
0664 };
0665
0666 &twl_keypad {
0667 status = "disabled";
0668 };
0669
0670 &gpio1 {
0671 pinctrl-names = "default";
0672 pinctrl-0 = <&gpio1_pins>;
0673 };
0674
0675 &uart1 {
0676 pinctrl-names = "default";
0677 pinctrl-0 = <&uart1_pins>;
0678 };
0679
0680 &uart2 {
0681 pinctrl-names = "default";
0682 pinctrl-0 = <&uart2_pins>;
0683 gnss: gnss {
0684 compatible = "wi2wi,w2sg0004";
0685 pinctrl-names = "default";
0686 pinctrl-0 = <&gps_pins>;
0687 sirf,onoff-gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;
0688 lna-supply = <&vsim>;
0689 vcc-supply = <&ldo_3v3>;
0690 };
0691 };
0692
0693 &uart3 {
0694 pinctrl-names = "default";
0695 pinctrl-0 = <&uart3_pins>;
0696 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
0697 };
0698
0699 &charger {
0700 ti,bb-uvolt = <3200000>;
0701 ti,bb-uamp = <150>;
0702 };
0703
0704 /* spare */
0705 &vaux1 {
0706 regulator-min-microvolt = <2500000>;
0707 regulator-max-microvolt = <3000000>;
0708 };
0709
0710 /* sensors */
0711 &vaux2 {
0712 regulator-min-microvolt = <2800000>;
0713 regulator-max-microvolt = <2800000>;
0714 regulator-always-on; /* we should never switch off while vio is on! */
0715 };
0716
0717 /* camera */
0718 &vaux3 {
0719 regulator-min-microvolt = <2500000>;
0720 regulator-max-microvolt = <2500000>;
0721 };
0722
0723 /* WLAN/BT */
0724 &vaux4 {
0725 regulator-min-microvolt = <2800000>;
0726 regulator-max-microvolt = <3150000>;
0727 };
0728
0729 /* GPS LNA */
0730 &vsim {
0731 regulator-min-microvolt = <2800000>;
0732 regulator-max-microvolt = <3150000>;
0733 };
0734
0735 /* Needed to power the DPI pins */
0736
0737 &vpll2 {
0738 regulator-always-on;
0739 };
0740
0741 &dss {
0742 pinctrl-names = "default";
0743 pinctrl-0 = < &dss_dpi_pins >;
0744
0745 status = "okay";
0746 vdds_dsi-supply = <&vpll2>;
0747
0748 port {
0749 dpi_out: endpoint {
0750 remote-endpoint = <&lcd_in>;
0751 data-lines = <24>;
0752 };
0753 };
0754 };
0755
0756 &venc {
0757 status = "okay";
0758
0759 vdda-supply = <&vdac>;
0760
0761 port {
0762 venc_out: endpoint {
0763 remote-endpoint = <&opa_in>;
0764 ti,channels = <1>;
0765 ti,invert-polarity;
0766 };
0767 };
0768 };
0769
0770 &gpmc {
0771 ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
0772
0773 nand@0,0 {
0774 compatible = "ti,omap2-nand";
0775 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
0776 interrupt-parent = <&gpmc>;
0777 interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
0778 <1 IRQ_TYPE_NONE>; /* termcount */
0779 ti,nand-ecc-opt = "ham1";
0780 rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
0781 nand-bus-width = <16>;
0782 #address-cells = <1>;
0783 #size-cells = <1>;
0784
0785 gpmc,device-width = <2>;
0786 gpmc,cs-on-ns = <0>;
0787 gpmc,cs-rd-off-ns = <44>;
0788 gpmc,cs-wr-off-ns = <44>;
0789 gpmc,adv-on-ns = <6>;
0790 gpmc,adv-rd-off-ns = <34>;
0791 gpmc,adv-wr-off-ns = <44>;
0792 gpmc,oe-off-ns = <54>;
0793 gpmc,we-off-ns = <40>;
0794 gpmc,access-ns = <64>;
0795 gpmc,rd-cycle-ns = <82>;
0796 gpmc,wr-cycle-ns = <82>;
0797 gpmc,wr-access-ns = <40>;
0798 gpmc,wr-data-mux-bus-ns = <0>;
0799 gpmc,sync-clk-ps = <0>;
0800
0801 x-loader@0 {
0802 label = "X-Loader";
0803 reg = <0 0x80000>;
0804 };
0805
0806 bootloaders@80000 {
0807 label = "U-Boot";
0808 reg = <0x80000 0x1c0000>;
0809 };
0810
0811 bootloaders_env@240000 {
0812 label = "U-Boot Env";
0813 reg = <0x240000 0x40000>;
0814 };
0815
0816 kernel@280000 {
0817 label = "Kernel";
0818 reg = <0x280000 0x600000>;
0819 };
0820
0821 filesystem@880000 {
0822 label = "File System";
0823 reg = <0x880000 0>; /* 0 = MTDPART_SIZ_FULL */
0824 };
0825 };
0826 };
0827
0828 &mcbsp1 { /* FM Transceiver PCM */
0829 status = "okay";
0830 #sound-dai-cells = <0>;
0831 pinctrl-names = "default";
0832 pinctrl-0 = <&mcbsp1_pins>;
0833 };
0834
0835 &mcbsp2 { /* TPS65950 I2S */
0836 status = "okay";
0837 pinctrl-names = "default";
0838 pinctrl-0 = <&mcbsp2_pins>;
0839 };
0840
0841 &mcbsp3 { /* Bluetooth PCM */
0842 status = "okay";
0843 #sound-dai-cells = <0>;
0844 pinctrl-names = "default";
0845 pinctrl-0 = <&mcbsp3_pins>;
0846 };
0847
0848 &mcbsp4 { /* GSM voice PCM */
0849 status = "okay";
0850 #sound-dai-cells = <0>;
0851 pinctrl-names = "default";
0852 pinctrl-0 = <&mcbsp4_pins>;
0853 };
0854
0855 &hdqw1w {
0856 pinctrl-names = "default";
0857 pinctrl-0 = <&hdq_pins>;
0858 };
0859
0860 /* image signal processor within OMAP3 SoC */
0861 &isp {
0862 ports {
0863 port@0 {
0864 reg = <0>;
0865 parallel_ep: endpoint {
0866 ti,isp-clock-divisor = <1>;
0867 ti,strobe-mode;
0868 bus-width = <8>;/* Used data lines */
0869 data-shift = <2>; /* Lines 9:2 are used */
0870 hsync-active = <0>; /* Active low */
0871 vsync-active = <1>; /* Active high */
0872 data-active = <1>;/* Active high */
0873 pclk-sample = <1>;/* Falling */
0874 };
0875 };
0876 /* port@1 and port@2 are not used by GTA04 */
0877 };
0878 };