1/*
2 * Copyright (C) 2014 Florian Vaussard, EPFL Mobots group
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/dts-v1/;
9
10#include "omap4-duovero.dtsi"
11
12#include <dt-bindings/input/input.h>
13
14/ {
15	model = "OMAP4430 Gumstix Duovero on Parlor";
16	compatible = "gumstix,omap4-duovero-parlor", "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";
17
18	aliases {
19		display0 = &hdmi0;
20	};
21
22	leds {
23		compatible = "gpio-leds";
24		led0 {
25			label = "duovero:blue:led0";
26			gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>;	/* gpio_122 */
27			linux,default-trigger = "heartbeat";
28		};
29	};
30
31	gpio_keys {
32		compatible = "gpio-keys";
33		#address-cells = <1>;
34		#size-cells = <0>;
35		button0 {
36			label = "button0";
37			linux,code = <BTN_0>;
38			gpios = <&gpio4 25 GPIO_ACTIVE_LOW>;	/* gpio_121 */
39			/* Value above 7.95ms for no GPIO hardware debounce */
40			debounce-interval = <10>;
41			wakeup-source;
42		};
43	};
44
45	hdmi0: connector {
46		compatible = "hdmi-connector";
47		label = "hdmi";
48
49		type = "d";
50
51		hpd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;	/* gpio_63 */
52
53		port {
54			hdmi_connector_in: endpoint {
55				remote-endpoint = <&hdmi_out>;
56			};
57		};
58	};
59};
60
61&omap4_pmx_core {
62	pinctrl-0 = <
63			&led_pins
64			&button_pins
65			&smsc_pins
66	>;
67
68	led_pins: pinmux_led_pins {
69		pinctrl-single,pins = <
70			OMAP4_IOPAD(0x116, PIN_OUTPUT | MUX_MODE3)		/* abe_dmic_din3.gpio_122 */
71		>;
72	};
73
74	button_pins: pinmux_button_pins {
75		pinctrl-single,pins = <
76			OMAP4_IOPAD(0x114, PIN_INPUT_PULLUP | MUX_MODE3)	/* abe_dmic_din2.gpio_121 */
77		>;
78	};
79
80	i2c2_pins: pinmux_i2c2_pins {
81		pinctrl-single,pins = <
82			OMAP4_IOPAD(0x126, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_scl */
83			OMAP4_IOPAD(0x128, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda */
84		>;
85	};
86
87	i2c3_pins: pinmux_i2c3_pins {
88		pinctrl-single,pins = <
89			OMAP4_IOPAD(0x12a, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c3_scl */
90			OMAP4_IOPAD(0x12c, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c3_sda */
91		>;
92	};
93
94	smsc_pins: pinmux_smsc_pins {
95		pinctrl-single,pins = <
96			OMAP4_IOPAD(0x068, PIN_INPUT | MUX_MODE3)		/* gpmc_a20.gpio_44: IRQ */
97			OMAP4_IOPAD(0x06a, PIN_INPUT_PULLUP | MUX_MODE3)	/* gpmc_a21.gpio_45: nReset */
98			OMAP4_IOPAD(0x070, PIN_INPUT_PULLUP | MUX_MODE3)	/* gpmc_a24.gpio_48: amdix enabled */
99		>;
100	};
101
102	dss_hdmi_pins: pinmux_dss_hdmi_pins {
103		pinctrl-single,pins = <
104			OMAP4_IOPAD(0x098, PIN_INPUT | MUX_MODE3)		/* hdmi_hpd.gpio_63 */
105			OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0)		/* hdmi_cec.hdmi_cec */
106			OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_ddc_scl.hdmi_ddc_scl */
107			OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_ddc_sda.hdmi_ddc_sda */
108		>;
109	};
110};
111
112&i2c2 {
113	pinctrl-names = "default";
114	pinctrl-0 = <&i2c2_pins>;
115
116	clock-frequency = <400000>;
117};
118
119&i2c3 {
120	pinctrl-names = "default";
121	pinctrl-0 = <&i2c3_pins>;
122
123	clock-frequency = <100000>;
124
125	/* optional 1K EEPROM with revision information */
126	eeprom@51 {
127		compatible = "atmel,24c01";
128		reg = <0x51>;
129		pagesize = <8>;
130	};
131};
132
133&mmc3 {
134	status = "disabled";
135};
136
137#include "omap-gpmc-smsc911x.dtsi"
138
139&gpmc {
140	ranges = <5 0 0x2c000000 0x1000000>;			/* CS5 */
141
142	ethernet@gpmc {
143		reg = <5 0 0xff>;
144		interrupt-parent = <&gpio2>;
145		interrupts = <12 IRQ_TYPE_EDGE_FALLING>;	/* gpio_44 */
146
147		phy-mode = "mii";
148
149		gpmc,cs-on-ns = <10>;
150		gpmc,cs-rd-off-ns = <50>;
151		gpmc,cs-wr-off-ns = <50>;
152		gpmc,adv-on-ns = <0>;
153		gpmc,adv-rd-off-ns = <10>;
154		gpmc,adv-wr-off-ns = <10>;
155		gpmc,oe-on-ns = <15>;
156		gpmc,oe-off-ns = <50>;
157		gpmc,we-on-ns = <15>;
158		gpmc,we-off-ns = <50>;
159		gpmc,rd-cycle-ns = <50>;
160		gpmc,wr-cycle-ns = <50>;
161		gpmc,access-ns = <50>;
162		gpmc,page-burst-access-ns = <0>;
163		gpmc,bus-turnaround-ns = <35>;
164		gpmc,cycle2cycle-delay-ns = <35>;
165		gpmc,wr-data-mux-bus-ns = <35>;
166		gpmc,wr-access-ns = <50>;
167
168		gpmc,mux-add-data = <2>;
169		gpmc,sync-read;
170		gpmc,sync-write;
171		gpmc,clk-activation-ns = <5>;
172		gpmc,sync-clk-ps = <20000>;
173	};
174};
175
176&dss {
177	status = "ok";
178};
179
180&hdmi {
181	status = "ok";
182	vdda-supply = <&vdac>;
183
184	pinctrl-names = "default";
185	pinctrl-0 = <&dss_hdmi_pins>;
186
187	port {
188		hdmi_out: endpoint {
189			remote-endpoint = <&hdmi_connector_in>;
190		};
191	};
192};
193
194&uart3 {
195	interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
196			       &omap4_pmx_core OMAP4_UART3_RX>;
197};
198