2012-12-19 14:33:09 +01:00
/*
2014-11-06 13:01:44 +01:00
* Device Tree Source for IGEPv2 Rev. C (TI OMAP AM/DM37x)
2012-12-19 14:33:09 +01:00
*
* Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
* Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
2013-05-31 14:32:55 +02:00
#include "omap3-igep.dtsi"
2014-04-24 18:53:50 +02:00
#include "omap-gpmc-smsc9221.dtsi"
2012-12-19 14:33:09 +01:00
/ {
2014-11-06 13:01:44 +01:00
model = "IGEPv2 Rev. C (TI OMAP AM/DM37x)";
2014-02-22 10:59:36 -03:00
compatible = "isee,omap3-igep0020", "ti,omap36xx", "ti,omap3";
2012-12-19 14:33:09 +01:00
leds {
2013-06-20 16:42:31 +02:00
pinctrl-names = "default";
pinctrl-0 = <&leds_pins>;
2012-12-19 14:33:09 +01:00
compatible = "gpio-leds";
2013-06-20 16:42:31 +02:00
2012-12-19 14:33:09 +01:00
boot {
label = "omap3:green:boot";
2013-05-31 14:32:56 +02:00
gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
2012-12-19 14:33:09 +01:00
default-state = "on";
};
user0 {
label = "omap3:red:user0";
2013-05-31 14:32:56 +02:00
gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
2012-12-19 14:33:09 +01:00
default-state = "off";
};
user1 {
label = "omap3:red:user1";
2013-05-31 14:32:56 +02:00
gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
2012-12-19 14:33:09 +01:00
default-state = "off";
};
user2 {
label = "omap3:green:user1";
2013-05-31 14:32:56 +02:00
gpios = <&twl_gpio 19 GPIO_ACTIVE_LOW>;
2012-12-19 14:33:09 +01:00
};
};
2013-04-17 18:32:09 +02:00
2014-11-06 13:01:45 +01:00
/* Regulator to trigger the WIFI_PDN signal of the Wifi module */
lbee1usjyc_pdn: lbee1usjyc_pdn {
compatible = "regulator-fixed";
regulator-name = "regulator-lbee1usjyc-pdn";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>; /* gpio_138 - WIFI_PDN */
startup-delay-us = <10000>;
enable-active-high;
};
/* Regulator to trigger the RESET_N_W signal of the Wifi module */
lbee1usjyc_reset_n_w: lbee1usjyc_reset_n_w {
compatible = "regulator-fixed";
regulator-name = "regulator-lbee1usjyc-reset-n-w";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio5 11 GPIO_ACTIVE_HIGH>; /* gpio_139 - RESET_N_W */
enable-active-high;
};
2013-10-07 17:12:24 +02:00
/* HS USB Port 1 Power */
hsusb1_power: hsusb1_power_reg {
compatible = "regulator-fixed";
regulator-name = "hsusb1_vbus";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&twl_gpio 18 GPIO_ACTIVE_LOW>; /* GPIO LEDA */
startup-delay-us = <70000>;
};
/* HS USB Host PHY on PORT 1 */
hsusb1_phy: hsusb1_phy {
compatible = "usb-nop-xceiv";
reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; /* gpio_24 */
vcc-supply = <&hsusb1_power>;
};
2013-12-06 02:53:38 +01:00
tfp410: encoder@0 {
compatible = "ti,tfp410";
powerdown-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>; /* gpio_170 */
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
tfp410_in: endpoint@0 {
remote-endpoint = <&dpi_out>;
};
};
port@1 {
reg = <1>;
tfp410_out: endpoint@0 {
remote-endpoint = <&dvi_connector_in>;
};
};
};
};
dvi0: connector@0 {
compatible = "dvi-connector";
label = "dvi";
digital;
ddc-i2c-bus = <&i2c3>;
port {
dvi_connector_in: endpoint {
remote-endpoint = <&tfp410_out>;
};
};
};
2013-10-07 17:12:24 +02:00
};
&omap3_pmx_core {
pinctrl-names = "default";
pinctrl-0 = <
2013-11-26 15:03:38 -08:00
&tfp410_pins
2013-12-06 02:53:38 +01:00
&dss_dpi_pins
2013-10-07 17:12:24 +02:00
>;
2013-12-06 02:53:38 +01:00
tfp410_pins: pinmux_tfp410_pins {
2013-11-26 15:03:38 -08:00
pinctrl-single,pins = <
0x196 (PIN_OUTPUT | MUX_MODE4) /* hdq_sio.gpio_170 */
>;
};
2013-12-06 02:53:38 +01:00
dss_dpi_pins: pinmux_dss_dpi_pins {
2013-11-26 15:03:38 -08:00
pinctrl-single,pins = <
0x0a4 (PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
0x0a6 (PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
0x0a8 (PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
0x0aa (PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
0x0ac (PIN_OUTPUT | MUX_MODE0) /* dss_data0.dss_data0 */
0x0ae (PIN_OUTPUT | MUX_MODE0) /* dss_data1.dss_data1 */
0x0b0 (PIN_OUTPUT | MUX_MODE0) /* dss_data2.dss_data2 */
0x0b2 (PIN_OUTPUT | MUX_MODE0) /* dss_data3.dss_data3 */
0x0b4 (PIN_OUTPUT | MUX_MODE0) /* dss_data4.dss_data4 */
0x0b6 (PIN_OUTPUT | MUX_MODE0) /* dss_data5.dss_data5 */
0x0b8 (PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
0x0ba (PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
0x0bc (PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
0x0be (PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
0x0c0 (PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
0x0c2 (PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
0x0c4 (PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
0x0c6 (PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
0x0c8 (PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
0x0ca (PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
0x0cc (PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
0x0ce (PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
0x0d0 (PIN_OUTPUT | MUX_MODE0) /* dss_data18.dss_data18 */
0x0d2 (PIN_OUTPUT | MUX_MODE0) /* dss_data19.dss_data19 */
0x0d4 (PIN_OUTPUT | MUX_MODE0) /* dss_data20.dss_data20 */
0x0d6 (PIN_OUTPUT | MUX_MODE0) /* dss_data21.dss_data21 */
0x0d8 (PIN_OUTPUT | MUX_MODE0) /* dss_data22.dss_data22 */
0x0da (PIN_OUTPUT | MUX_MODE0) /* dss_data23.dss_data23 */
>;
};
2014-11-06 13:01:41 +01:00
2014-11-06 13:01:45 +01:00
lbee1usjyc_pins: pinmux_lbee1usjyc_pins {
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT | MUX_MODE4) /* sdmmc2_dat5.gpio_137 - RESET_N_W */
OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT | MUX_MODE4) /* sdmmc2_dat6.gpio_138 - WIFI_PDN */
OMAP3_CORE1_IOPAD(0x216a, PIN_OUTPUT | MUX_MODE4) /* sdmmc2_dat7.gpio_139 - RST_N_B */
>;
};
2014-11-06 13:01:41 +01:00
uart2_pins: pinmux_uart2_pins {
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT | MUX_MODE0) /* uart2_cts.uart2_cts */
OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts .uart2_rts*/
OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */
OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */
>;
};
2012-12-19 14:33:09 +01:00
};
2014-01-07 14:01:39 -08:00
&omap3_pmx_core2 {
pinctrl-names = "default";
pinctrl-0 = <
&hsusbb1_pins
2013-06-20 16:42:31 +02:00
>;
2014-01-07 14:01:39 -08:00
hsusbb1_pins: pinmux_hsusbb1_pins {
pinctrl-single,pins = <
OMAP3630_CORE2_IOPAD(0x25da, PIN_OUTPUT | MUX_MODE3) /* etk_ctl.hsusb1_clk */
OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE3) /* etk_clk.hsusb1_stp */
OMAP3630_CORE2_IOPAD(0x25ec, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d8.hsusb1_dir */
OMAP3630_CORE2_IOPAD(0x25ee, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d9.hsusb1_nxt */
OMAP3630_CORE2_IOPAD(0x25dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d0.hsusb1_data0 */
OMAP3630_CORE2_IOPAD(0x25de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d1.hsusb1_data1 */
OMAP3630_CORE2_IOPAD(0x25e0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d2.hsusb1_data2 */
OMAP3630_CORE2_IOPAD(0x25e2, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d3.hsusb1_data7 */
OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d4.hsusb1_data4 */
OMAP3630_CORE2_IOPAD(0x25e6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d5.hsusb1_data5 */
OMAP3630_CORE2_IOPAD(0x25e8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d6.hsusb1_data6 */
OMAP3630_CORE2_IOPAD(0x25ea, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d7.hsusb1_data3 */
>;
};
leds_pins: pinmux_leds_pins {
pinctrl-single,pins = <
OMAP3630_CORE2_IOPAD(0x25f4, PIN_OUTPUT | MUX_MODE4) /* etk_d12.gpio_26 */
OMAP3630_CORE2_IOPAD(0x25f6, PIN_OUTPUT | MUX_MODE4) /* etk_d13.gpio_27 */
OMAP3630_CORE2_IOPAD(0x25f8, PIN_OUTPUT | MUX_MODE4) /* etk_d14.gpio_28 */
>;
};
2013-06-20 16:42:31 +02:00
};
2012-12-19 14:33:09 +01:00
&i2c3 {
clock-frequency = <100000>;
/*
* Display monitor features are burnt in the EEPROM
* as EDID data.
*/
eeprom@50 {
compatible = "ti,eeprom";
reg = <0x50>;
};
};
2013-04-17 18:32:09 +02:00
&gpmc {
2014-10-29 17:16:47 -07:00
ranges = <0 0 0x00000000 0x1000000>, /* CS0: 16MB for NAND */
2013-05-10 21:31:10 +02:00
<5 0 0x2c000000 0x01000000>;
2013-10-14 11:31:42 -07:00
ethernet@gpmc {
2013-04-17 18:32:09 +02:00
pinctrl-names = "default";
2014-04-24 18:53:50 +02:00
pinctrl-0 = <&smsc9221_pins>;
2013-04-17 18:32:09 +02:00
reg = <5 0 0xff>;
interrupt-parent = <&gpio6>;
2013-10-07 17:12:25 +02:00
interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
2013-04-17 18:32:09 +02:00
};
};
2013-10-07 17:12:24 +02:00
2014-11-06 13:01:45 +01:00
/* On board Wifi module */
&mmc2 {
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins &lbee1usjyc_pins>;
vmmc-supply = <&lbee1usjyc_pdn>;
vmmc_aux-supply = <&lbee1usjyc_reset_n_w>;
bus-width = <4>;
non-removable;
};
2014-11-06 13:01:41 +01:00
&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&uart2_pins>;
};
2013-10-07 17:12:24 +02:00
&usbhshost {
port1-mode = "ehci-phy";
};
&usbhsehci {
phys = <&hsusb1_phy>;
};
2013-11-26 15:03:39 -08:00
&vpll2 {
/* Needed for DSS */
regulator-name = "vdds_dsi";
};
2013-12-06 02:53:38 +01:00
&dss {
status = "ok";
port {
dpi_out: endpoint {
remote-endpoint = <&tfp410_in>;
data-lines = <24>;
};
};
};