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