xref: /openbmc/linux/arch/arm/boot/dts/ti/omap/omap4-sdp.dts (revision 724ba675)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
4*724ba675SRob Herring */
5*724ba675SRob Herring/dts-v1/;
6*724ba675SRob Herring
7*724ba675SRob Herring#include "omap443x.dtsi"
8*724ba675SRob Herring#include "elpida_ecb240abacn.dtsi"
9*724ba675SRob Herring#include "omap4-mcpdm.dtsi"
10*724ba675SRob Herring
11*724ba675SRob Herring/ {
12*724ba675SRob Herring	model = "TI OMAP4 SDP board";
13*724ba675SRob Herring	compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4";
14*724ba675SRob Herring
15*724ba675SRob Herring	memory@80000000 {
16*724ba675SRob Herring		device_type = "memory";
17*724ba675SRob Herring		reg = <0x80000000 0x40000000>; /* 1 GB */
18*724ba675SRob Herring	};
19*724ba675SRob Herring
20*724ba675SRob Herring	aliases {
21*724ba675SRob Herring		display0 = &lcd0;
22*724ba675SRob Herring		display1 = &lcd1;
23*724ba675SRob Herring		display2 = &hdmi0;
24*724ba675SRob Herring	};
25*724ba675SRob Herring
26*724ba675SRob Herring	vdd_eth: fixedregulator-vdd-eth {
27*724ba675SRob Herring		pinctrl-names = "default";
28*724ba675SRob Herring		pinctrl-0 = <&enet_enable_gpio>;
29*724ba675SRob Herring
30*724ba675SRob Herring		compatible = "regulator-fixed";
31*724ba675SRob Herring		regulator-name = "VDD_ETH";
32*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
33*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
34*724ba675SRob Herring		gpio = <&gpio2 16 GPIO_ACTIVE_HIGH>;  /* gpio line 48 */
35*724ba675SRob Herring		enable-active-high;
36*724ba675SRob Herring		regulator-boot-on;
37*724ba675SRob Herring		startup-delay-us = <25000>;
38*724ba675SRob Herring	};
39*724ba675SRob Herring
40*724ba675SRob Herring	vbat: fixedregulator-vbat {
41*724ba675SRob Herring		compatible = "regulator-fixed";
42*724ba675SRob Herring		regulator-name = "VBAT";
43*724ba675SRob Herring		regulator-min-microvolt = <3750000>;
44*724ba675SRob Herring		regulator-max-microvolt = <3750000>;
45*724ba675SRob Herring		regulator-boot-on;
46*724ba675SRob Herring	};
47*724ba675SRob Herring
48*724ba675SRob Herring	led-controller-1 {
49*724ba675SRob Herring		compatible = "gpio-leds";
50*724ba675SRob Herring
51*724ba675SRob Herring		led-1 {
52*724ba675SRob Herring			label = "omap4:green:debug0";
53*724ba675SRob Herring			gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>; /* 61 */
54*724ba675SRob Herring		};
55*724ba675SRob Herring
56*724ba675SRob Herring		led-2 {
57*724ba675SRob Herring			label = "omap4:green:debug1";
58*724ba675SRob Herring			gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; /* 30 */
59*724ba675SRob Herring		};
60*724ba675SRob Herring
61*724ba675SRob Herring		led-3 {
62*724ba675SRob Herring			label = "omap4:green:debug2";
63*724ba675SRob Herring			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; /* 7 */
64*724ba675SRob Herring		};
65*724ba675SRob Herring
66*724ba675SRob Herring		led-4 {
67*724ba675SRob Herring			label = "omap4:green:debug3";
68*724ba675SRob Herring			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; /* 8 */
69*724ba675SRob Herring		};
70*724ba675SRob Herring
71*724ba675SRob Herring		led-5 {
72*724ba675SRob Herring			label = "omap4:green:debug4";
73*724ba675SRob Herring			gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>; /* 50 */
74*724ba675SRob Herring		};
75*724ba675SRob Herring
76*724ba675SRob Herring		led-6 {
77*724ba675SRob Herring			label = "omap4:blue:user";
78*724ba675SRob Herring			gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>; /* 169 */
79*724ba675SRob Herring		};
80*724ba675SRob Herring
81*724ba675SRob Herring		led-7 {
82*724ba675SRob Herring			label = "omap4:red:user";
83*724ba675SRob Herring			gpios = <&gpio6 10 GPIO_ACTIVE_HIGH>; /* 170 */
84*724ba675SRob Herring		};
85*724ba675SRob Herring
86*724ba675SRob Herring		led-8 {
87*724ba675SRob Herring			label = "omap4:green:user";
88*724ba675SRob Herring			gpios = <&gpio5 11 GPIO_ACTIVE_HIGH>; /* 139 */
89*724ba675SRob Herring		};
90*724ba675SRob Herring	};
91*724ba675SRob Herring
92*724ba675SRob Herring	led-controller-2 {
93*724ba675SRob Herring		compatible = "pwm-leds";
94*724ba675SRob Herring
95*724ba675SRob Herring		led-9 {
96*724ba675SRob Herring			label = "omap4::keypad";
97*724ba675SRob Herring			pwms = <&twl_pwm 0 7812500>;
98*724ba675SRob Herring			max-brightness = <127>;
99*724ba675SRob Herring		};
100*724ba675SRob Herring
101*724ba675SRob Herring		led-10 {
102*724ba675SRob Herring			label = "omap4:green:chrg";
103*724ba675SRob Herring			pwms = <&twl_pwmled 0 7812500>;
104*724ba675SRob Herring			max-brightness = <255>;
105*724ba675SRob Herring		};
106*724ba675SRob Herring	};
107*724ba675SRob Herring
108*724ba675SRob Herring	backlight {
109*724ba675SRob Herring		compatible = "pwm-backlight";
110*724ba675SRob Herring		pwms = <&twl_pwm 1 7812500>;
111*724ba675SRob Herring		brightness-levels = <
112*724ba675SRob Herring				0 10 20 30 40
113*724ba675SRob Herring				50 60 70 80 90
114*724ba675SRob Herring				100 110 120 127
115*724ba675SRob Herring				>;
116*724ba675SRob Herring		default-brightness-level = <13>;
117*724ba675SRob Herring	};
118*724ba675SRob Herring
119*724ba675SRob Herring	sound {
120*724ba675SRob Herring		compatible = "ti,abe-twl6040";
121*724ba675SRob Herring		ti,model = "SDP4430";
122*724ba675SRob Herring
123*724ba675SRob Herring		ti,jack-detection = <1>;
124*724ba675SRob Herring		ti,mclk-freq = <38400000>;
125*724ba675SRob Herring
126*724ba675SRob Herring		ti,mcpdm = <&mcpdm>;
127*724ba675SRob Herring		ti,dmic = <&dmic>;
128*724ba675SRob Herring
129*724ba675SRob Herring		ti,twl6040 = <&twl6040>;
130*724ba675SRob Herring
131*724ba675SRob Herring		/* Audio routing */
132*724ba675SRob Herring		ti,audio-routing =
133*724ba675SRob Herring			"Headset Stereophone", "HSOL",
134*724ba675SRob Herring			"Headset Stereophone", "HSOR",
135*724ba675SRob Herring			"Earphone Spk", "EP",
136*724ba675SRob Herring			"Ext Spk", "HFL",
137*724ba675SRob Herring			"Ext Spk", "HFR",
138*724ba675SRob Herring			"Line Out", "AUXL",
139*724ba675SRob Herring			"Line Out", "AUXR",
140*724ba675SRob Herring			"Vibrator", "VIBRAL",
141*724ba675SRob Herring			"Vibrator", "VIBRAR",
142*724ba675SRob Herring			"HSMIC", "Headset Mic",
143*724ba675SRob Herring			"Headset Mic", "Headset Mic Bias",
144*724ba675SRob Herring			"MAINMIC", "Main Handset Mic",
145*724ba675SRob Herring			"Main Handset Mic", "Main Mic Bias",
146*724ba675SRob Herring			"SUBMIC", "Sub Handset Mic",
147*724ba675SRob Herring			"Sub Handset Mic", "Main Mic Bias",
148*724ba675SRob Herring			"AFML", "Line In",
149*724ba675SRob Herring			"AFMR", "Line In",
150*724ba675SRob Herring			"DMic", "Digital Mic",
151*724ba675SRob Herring			"Digital Mic", "Digital Mic1 Bias";
152*724ba675SRob Herring	};
153*724ba675SRob Herring
154*724ba675SRob Herring	/* regulator for wl12xx on sdio5 */
155*724ba675SRob Herring	wl12xx_vmmc: wl12xx_vmmc {
156*724ba675SRob Herring		pinctrl-names = "default";
157*724ba675SRob Herring		pinctrl-0 = <&wl12xx_gpio>;
158*724ba675SRob Herring		compatible = "regulator-fixed";
159*724ba675SRob Herring		regulator-name = "vwl1271";
160*724ba675SRob Herring		regulator-min-microvolt = <1800000>;
161*724ba675SRob Herring		regulator-max-microvolt = <1800000>;
162*724ba675SRob Herring		gpio = <&gpio2 22 GPIO_ACTIVE_HIGH>;
163*724ba675SRob Herring		startup-delay-us = <70000>;
164*724ba675SRob Herring		enable-active-high;
165*724ba675SRob Herring	};
166*724ba675SRob Herring
167*724ba675SRob Herring	tpd12s015: encoder {
168*724ba675SRob Herring		compatible = "ti,tpd12s015";
169*724ba675SRob Herring
170*724ba675SRob Herring		gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>,	/* 60, CT CP HPD */
171*724ba675SRob Herring			<&gpio2 9 GPIO_ACTIVE_HIGH>,	/* 41, LS OE */
172*724ba675SRob Herring			<&gpio2 31 GPIO_ACTIVE_HIGH>;	/* 63, HPD */
173*724ba675SRob Herring
174*724ba675SRob Herring		ports {
175*724ba675SRob Herring			#address-cells = <1>;
176*724ba675SRob Herring			#size-cells = <0>;
177*724ba675SRob Herring
178*724ba675SRob Herring			port@0 {
179*724ba675SRob Herring				reg = <0>;
180*724ba675SRob Herring
181*724ba675SRob Herring				tpd12s015_in: endpoint {
182*724ba675SRob Herring					remote-endpoint = <&hdmi_out>;
183*724ba675SRob Herring				};
184*724ba675SRob Herring			};
185*724ba675SRob Herring
186*724ba675SRob Herring			port@1 {
187*724ba675SRob Herring				reg = <1>;
188*724ba675SRob Herring
189*724ba675SRob Herring				tpd12s015_out: endpoint {
190*724ba675SRob Herring					remote-endpoint = <&hdmi_connector_in>;
191*724ba675SRob Herring				};
192*724ba675SRob Herring			};
193*724ba675SRob Herring		};
194*724ba675SRob Herring	};
195*724ba675SRob Herring
196*724ba675SRob Herring	hdmi0: connector {
197*724ba675SRob Herring		compatible = "hdmi-connector";
198*724ba675SRob Herring		label = "hdmi";
199*724ba675SRob Herring
200*724ba675SRob Herring		type = "c";
201*724ba675SRob Herring
202*724ba675SRob Herring		port {
203*724ba675SRob Herring			hdmi_connector_in: endpoint {
204*724ba675SRob Herring				remote-endpoint = <&tpd12s015_out>;
205*724ba675SRob Herring			};
206*724ba675SRob Herring		};
207*724ba675SRob Herring	};
208*724ba675SRob Herring};
209*724ba675SRob Herring
210*724ba675SRob Herring&omap4_pmx_core {
211*724ba675SRob Herring	pinctrl-names = "default";
212*724ba675SRob Herring	pinctrl-0 = <
213*724ba675SRob Herring			&dss_hdmi_pins
214*724ba675SRob Herring			&tpd12s015_pins
215*724ba675SRob Herring	>;
216*724ba675SRob Herring
217*724ba675SRob Herring	uart2_pins: uart2-pins {
218*724ba675SRob Herring		pinctrl-single,pins = <
219*724ba675SRob Herring			OMAP4_IOPAD(0x118, PIN_INPUT_PULLUP | MUX_MODE0)	/* uart2_cts.uart2_cts */
220*724ba675SRob Herring			OMAP4_IOPAD(0x11a, PIN_OUTPUT | MUX_MODE0)		/* uart2_rts.uart2_rts */
221*724ba675SRob Herring			OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE0)	/* uart2_rx.uart2_rx */
222*724ba675SRob Herring			OMAP4_IOPAD(0x11e, PIN_OUTPUT | MUX_MODE0)		/* uart2_tx.uart2_tx */
223*724ba675SRob Herring		>;
224*724ba675SRob Herring	};
225*724ba675SRob Herring
226*724ba675SRob Herring	uart3_pins: uart3-pins {
227*724ba675SRob Herring		pinctrl-single,pins = <
228*724ba675SRob Herring			OMAP4_IOPAD(0x140, PIN_INPUT_PULLUP | MUX_MODE0)	/* uart3_cts_rctx.uart3_cts_rctx */
229*724ba675SRob Herring			OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE0)		/* uart3_rts_sd.uart3_rts_sd */
230*724ba675SRob Herring			OMAP4_IOPAD(0x144, PIN_INPUT | MUX_MODE0)		/* uart3_rx_irrx.uart3_rx_irrx */
231*724ba675SRob Herring			OMAP4_IOPAD(0x146, PIN_OUTPUT | MUX_MODE0)		/* uart3_tx_irtx.uart3_tx_irtx */
232*724ba675SRob Herring		>;
233*724ba675SRob Herring	};
234*724ba675SRob Herring
235*724ba675SRob Herring	uart4_pins: uart4-pins {
236*724ba675SRob Herring		pinctrl-single,pins = <
237*724ba675SRob Herring			OMAP4_IOPAD(0x15c, PIN_INPUT | MUX_MODE0)		/* uart4_rx.uart4_rx */
238*724ba675SRob Herring			OMAP4_IOPAD(0x15e, PIN_OUTPUT | MUX_MODE0)		/* uart4_tx.uart4_tx */
239*724ba675SRob Herring		>;
240*724ba675SRob Herring	};
241*724ba675SRob Herring
242*724ba675SRob Herring	twl6040_pins: twl6040-pins {
243*724ba675SRob Herring		pinctrl-single,pins = <
244*724ba675SRob Herring			OMAP4_IOPAD(0x120, PIN_OUTPUT | MUX_MODE3)		/* hdq_sio.gpio_127 */
245*724ba675SRob Herring			OMAP4_IOPAD(0x1a0, PIN_INPUT | MUX_MODE0)		/* sys_nirq2.sys_nirq2 */
246*724ba675SRob Herring		>;
247*724ba675SRob Herring	};
248*724ba675SRob Herring
249*724ba675SRob Herring	dmic_pins: dmic-pins {
250*724ba675SRob Herring		pinctrl-single,pins = <
251*724ba675SRob Herring			OMAP4_IOPAD(0x110, PIN_OUTPUT | MUX_MODE0)		/* abe_dmic_clk1.abe_dmic_clk1 */
252*724ba675SRob Herring			OMAP4_IOPAD(0x112, PIN_INPUT | MUX_MODE0)		/* abe_dmic_din1.abe_dmic_din1 */
253*724ba675SRob Herring			OMAP4_IOPAD(0x114, PIN_INPUT | MUX_MODE0)		/* abe_dmic_din2.abe_dmic_din2 */
254*724ba675SRob Herring			OMAP4_IOPAD(0x116, PIN_INPUT | MUX_MODE0)		/* abe_dmic_din3.abe_dmic_din3 */
255*724ba675SRob Herring		>;
256*724ba675SRob Herring	};
257*724ba675SRob Herring
258*724ba675SRob Herring	mcbsp1_pins: mcbsp1-pins {
259*724ba675SRob Herring		pinctrl-single,pins = <
260*724ba675SRob Herring			OMAP4_IOPAD(0x0fe, PIN_INPUT | MUX_MODE0)		/* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
261*724ba675SRob Herring			OMAP4_IOPAD(0x100, PIN_INPUT_PULLDOWN | MUX_MODE0)	/* abe_mcbsp1_dr.abe_mcbsp1_dr */
262*724ba675SRob Herring			OMAP4_IOPAD(0x102, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* abe_mcbsp1_dx.abe_mcbsp1_dx */
263*724ba675SRob Herring			OMAP4_IOPAD(0x104, PIN_INPUT | MUX_MODE0)		/* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
264*724ba675SRob Herring		>;
265*724ba675SRob Herring	};
266*724ba675SRob Herring
267*724ba675SRob Herring	mcbsp2_pins: mcbsp2-pins {
268*724ba675SRob Herring		pinctrl-single,pins = <
269*724ba675SRob Herring			OMAP4_IOPAD(0x0f6, PIN_INPUT | MUX_MODE0)		/* abe_mcbsp2_clkx.abe_mcbsp2_clkx */
270*724ba675SRob Herring			OMAP4_IOPAD(0x0f8, PIN_INPUT_PULLDOWN | MUX_MODE0)	/* abe_mcbsp2_dr.abe_mcbsp2_dr */
271*724ba675SRob Herring			OMAP4_IOPAD(0x0fa, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* abe_mcbsp2_dx.abe_mcbsp2_dx */
272*724ba675SRob Herring			OMAP4_IOPAD(0x0fc, PIN_INPUT | MUX_MODE0)		/* abe_mcbsp2_fsx.abe_mcbsp2_fsx */
273*724ba675SRob Herring		>;
274*724ba675SRob Herring	};
275*724ba675SRob Herring
276*724ba675SRob Herring	mcspi1_pins: mcspi1-pins {
277*724ba675SRob Herring		pinctrl-single,pins = <
278*724ba675SRob Herring			OMAP4_IOPAD(0x132, PIN_INPUT | MUX_MODE0)		/*  mcspi1_clk.mcspi1_clk */
279*724ba675SRob Herring			OMAP4_IOPAD(0x134, PIN_INPUT | MUX_MODE0)		/*  mcspi1_somi.mcspi1_somi */
280*724ba675SRob Herring			OMAP4_IOPAD(0x136, PIN_INPUT | MUX_MODE0)		/*  mcspi1_simo.mcspi1_simo */
281*724ba675SRob Herring			OMAP4_IOPAD(0x138, PIN_INPUT | MUX_MODE0)		/*  mcspi1_cs0.mcspi1_cs0 */
282*724ba675SRob Herring		>;
283*724ba675SRob Herring	};
284*724ba675SRob Herring
285*724ba675SRob Herring	dss_hdmi_pins: dss-hdmi-pins {
286*724ba675SRob Herring		pinctrl-single,pins = <
287*724ba675SRob Herring			OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0)		/* hdmi_cec.hdmi_cec */
288*724ba675SRob Herring			OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_scl.hdmi_scl */
289*724ba675SRob Herring			OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_sda.hdmi_sda */
290*724ba675SRob Herring		>;
291*724ba675SRob Herring	};
292*724ba675SRob Herring
293*724ba675SRob Herring	tpd12s015_pins: tpd12s015-pins {
294*724ba675SRob Herring		pinctrl-single,pins = <
295*724ba675SRob Herring			OMAP4_IOPAD(0x062, PIN_OUTPUT | MUX_MODE3)		/* gpmc_a17.gpio_41 */
296*724ba675SRob Herring			OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3)		/* gpmc_nbe1.gpio_60 */
297*724ba675SRob Herring			OMAP4_IOPAD(0x098, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* hdmi_hpd.gpio_63 */
298*724ba675SRob Herring		>;
299*724ba675SRob Herring	};
300*724ba675SRob Herring
301*724ba675SRob Herring	i2c1_pins: i2c1-pins {
302*724ba675SRob Herring		pinctrl-single,pins = <
303*724ba675SRob Herring			OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_scl */
304*724ba675SRob Herring			OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_sda */
305*724ba675SRob Herring		>;
306*724ba675SRob Herring	};
307*724ba675SRob Herring
308*724ba675SRob Herring	i2c2_pins: i2c2-pins {
309*724ba675SRob Herring		pinctrl-single,pins = <
310*724ba675SRob Herring			OMAP4_IOPAD(0x126, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_scl */
311*724ba675SRob Herring			OMAP4_IOPAD(0x128, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda */
312*724ba675SRob Herring		>;
313*724ba675SRob Herring	};
314*724ba675SRob Herring
315*724ba675SRob Herring	i2c3_pins: i2c3-pins {
316*724ba675SRob Herring		pinctrl-single,pins = <
317*724ba675SRob Herring			OMAP4_IOPAD(0x12a, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c3_scl */
318*724ba675SRob Herring			OMAP4_IOPAD(0x12c, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c3_sda */
319*724ba675SRob Herring		>;
320*724ba675SRob Herring	};
321*724ba675SRob Herring
322*724ba675SRob Herring	i2c4_pins: i2c4-pins {
323*724ba675SRob Herring		pinctrl-single,pins = <
324*724ba675SRob Herring			OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c4_scl */
325*724ba675SRob Herring			OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c4_sda */
326*724ba675SRob Herring		>;
327*724ba675SRob Herring	};
328*724ba675SRob Herring
329*724ba675SRob Herring	/* wl12xx GPIO output for WLAN_EN */
330*724ba675SRob Herring	wl12xx_gpio: wl12xx-gpio-pins {
331*724ba675SRob Herring		pinctrl-single,pins = <
332*724ba675SRob Herring			OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3)		/* gpmc_nwp.gpio_54 */
333*724ba675SRob Herring		>;
334*724ba675SRob Herring	};
335*724ba675SRob Herring
336*724ba675SRob Herring	/* wl12xx GPIO inputs and SDIO pins */
337*724ba675SRob Herring	wl12xx_pins: wl12xx-pins {
338*724ba675SRob Herring		pinctrl-single,pins = <
339*724ba675SRob Herring			OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3)		/* gpmc_ncs3.gpio_53 */
340*724ba675SRob Herring			OMAP4_IOPAD(0x148, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_clk.sdmmc5_clk */
341*724ba675SRob Herring			OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_cmd.sdmmc5_cmd */
342*724ba675SRob Herring			OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat0.sdmmc5_dat0 */
343*724ba675SRob Herring			OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat1.sdmmc5_dat1 */
344*724ba675SRob Herring			OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat2.sdmmc5_dat2 */
345*724ba675SRob Herring			OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat3.sdmmc5_dat3 */
346*724ba675SRob Herring		>;
347*724ba675SRob Herring	};
348*724ba675SRob Herring
349*724ba675SRob Herring	/* gpio_48 for ENET_ENABLE */
350*724ba675SRob Herring	enet_enable_gpio: enet-enable-gpio-pins {
351*724ba675SRob Herring		pinctrl-single,pins = <
352*724ba675SRob Herring			OMAP4_IOPAD(0x070, PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* gpmc_a24.gpio_48 */
353*724ba675SRob Herring		>;
354*724ba675SRob Herring	};
355*724ba675SRob Herring
356*724ba675SRob Herring	ks8851_pins: ks8851-pins {
357*724ba675SRob Herring		pinctrl-single,pins = <
358*724ba675SRob Herring			/* ENET_INT */
359*724ba675SRob Herring			OMAP4_IOPAD(0x054, PIN_INPUT_PULLUP | MUX_MODE3)	/* gpmc_ad10.gpio_34 */
360*724ba675SRob Herring			/*
361*724ba675SRob Herring			 * Misterious pin which makes the ethernet working
362*724ba675SRob Herring			 * The legacy board file requested this pin on boot
363*724ba675SRob Herring			 * (ETH_KS8851_QUART) and set it to high, similarly to
364*724ba675SRob Herring			 * the ENET_ENABLE pin.
365*724ba675SRob Herring			 * We could use gpio-hog to keep it high, but let's use
366*724ba675SRob Herring			 * it as a reset GPIO for ks8851.
367*724ba675SRob Herring			 */
368*724ba675SRob Herring			OMAP4_IOPAD(0x13a, PIN_OUTPUT_PULLUP | MUX_MODE3)	/* mcspi1_cs1.gpio_138 */
369*724ba675SRob Herring		>;
370*724ba675SRob Herring	};
371*724ba675SRob Herring};
372*724ba675SRob Herring
373*724ba675SRob Herring&i2c1 {
374*724ba675SRob Herring	pinctrl-names = "default";
375*724ba675SRob Herring	pinctrl-0 = <&i2c1_pins>;
376*724ba675SRob Herring
377*724ba675SRob Herring	clock-frequency = <400000>;
378*724ba675SRob Herring
379*724ba675SRob Herring	twl: twl@48 {
380*724ba675SRob Herring		reg = <0x48>;
381*724ba675SRob Herring		/* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
382*724ba675SRob Herring		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
383*724ba675SRob Herring	};
384*724ba675SRob Herring
385*724ba675SRob Herring	twl6040: twl@4b {
386*724ba675SRob Herring		compatible = "ti,twl6040";
387*724ba675SRob Herring		#clock-cells = <0>;
388*724ba675SRob Herring		reg = <0x4b>;
389*724ba675SRob Herring
390*724ba675SRob Herring		pinctrl-names = "default";
391*724ba675SRob Herring		pinctrl-0 = <&twl6040_pins>;
392*724ba675SRob Herring
393*724ba675SRob Herring		/* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */
394*724ba675SRob Herring		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
395*724ba675SRob Herring		ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>;  /* gpio line 127 */
396*724ba675SRob Herring
397*724ba675SRob Herring		vio-supply = <&v1v8>;
398*724ba675SRob Herring		v2v1-supply = <&v2v1>;
399*724ba675SRob Herring		enable-active-high;
400*724ba675SRob Herring
401*724ba675SRob Herring		/* regulators for vibra motor */
402*724ba675SRob Herring		vddvibl-supply = <&vbat>;
403*724ba675SRob Herring		vddvibr-supply = <&vbat>;
404*724ba675SRob Herring
405*724ba675SRob Herring		vibra {
406*724ba675SRob Herring			/* Vibra driver, motor resistance parameters */
407*724ba675SRob Herring			ti,vibldrv-res = <8>;
408*724ba675SRob Herring			ti,vibrdrv-res = <3>;
409*724ba675SRob Herring			ti,viblmotor-res = <10>;
410*724ba675SRob Herring			ti,vibrmotor-res = <10>;
411*724ba675SRob Herring		};
412*724ba675SRob Herring	};
413*724ba675SRob Herring};
414*724ba675SRob Herring
415*724ba675SRob Herring#include "twl6030.dtsi"
416*724ba675SRob Herring#include "twl6030_omap4.dtsi"
417*724ba675SRob Herring
418*724ba675SRob Herring&i2c2 {
419*724ba675SRob Herring	pinctrl-names = "default";
420*724ba675SRob Herring	pinctrl-0 = <&i2c2_pins>;
421*724ba675SRob Herring
422*724ba675SRob Herring	clock-frequency = <400000>;
423*724ba675SRob Herring};
424*724ba675SRob Herring
425*724ba675SRob Herring&i2c3 {
426*724ba675SRob Herring	pinctrl-names = "default";
427*724ba675SRob Herring	pinctrl-0 = <&i2c3_pins>;
428*724ba675SRob Herring
429*724ba675SRob Herring	clock-frequency = <400000>;
430*724ba675SRob Herring
431*724ba675SRob Herring	/*
432*724ba675SRob Herring	 * Temperature Sensor
433*724ba675SRob Herring	 * https://www.ti.com/lit/ds/symlink/tmp105.pdf
434*724ba675SRob Herring	 */
435*724ba675SRob Herring	tmp105@48 {
436*724ba675SRob Herring		compatible = "ti,tmp105";
437*724ba675SRob Herring		reg = <0x48>;
438*724ba675SRob Herring	};
439*724ba675SRob Herring
440*724ba675SRob Herring	/*
441*724ba675SRob Herring	 * Ambient Light Sensor
442*724ba675SRob Herring	 * http://www.rohm.com/products/databook/sensor/pdf/bh1780gli-e.pdf
443*724ba675SRob Herring	 */
444*724ba675SRob Herring	bh1780@29 {
445*724ba675SRob Herring		compatible = "rohm,bh1780";
446*724ba675SRob Herring		reg = <0x29>;
447*724ba675SRob Herring	};
448*724ba675SRob Herring};
449*724ba675SRob Herring
450*724ba675SRob Herring&i2c4 {
451*724ba675SRob Herring	pinctrl-names = "default";
452*724ba675SRob Herring	pinctrl-0 = <&i2c4_pins>;
453*724ba675SRob Herring
454*724ba675SRob Herring	clock-frequency = <400000>;
455*724ba675SRob Herring
456*724ba675SRob Herring	/*
457*724ba675SRob Herring	 * 3-Axis Digital Compass
458*724ba675SRob Herring	 * https://www.sparkfun.com/datasheets/Sensors/Magneto/HMC5843.pdf
459*724ba675SRob Herring	 */
460*724ba675SRob Herring	hmc5843@1e {
461*724ba675SRob Herring		compatible = "honeywell,hmc5843";
462*724ba675SRob Herring		reg = <0x1e>;
463*724ba675SRob Herring	};
464*724ba675SRob Herring};
465*724ba675SRob Herring
466*724ba675SRob Herring&mcspi1 {
467*724ba675SRob Herring	pinctrl-names = "default";
468*724ba675SRob Herring	pinctrl-0 = <&mcspi1_pins>;
469*724ba675SRob Herring
470*724ba675SRob Herring	eth@0 {
471*724ba675SRob Herring		pinctrl-names = "default";
472*724ba675SRob Herring		pinctrl-0 = <&ks8851_pins>;
473*724ba675SRob Herring
474*724ba675SRob Herring		compatible = "ks8851";
475*724ba675SRob Herring		spi-max-frequency = <24000000>;
476*724ba675SRob Herring		reg = <0>;
477*724ba675SRob Herring		interrupt-parent = <&gpio2>;
478*724ba675SRob Herring		interrupts = <2 IRQ_TYPE_LEVEL_LOW>; /* gpio line 34 */
479*724ba675SRob Herring		vdd-supply = <&vdd_eth>;
480*724ba675SRob Herring		reset-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>;
481*724ba675SRob Herring	};
482*724ba675SRob Herring};
483*724ba675SRob Herring
484*724ba675SRob Herring&mmc1 {
485*724ba675SRob Herring	vmmc-supply = <&vmmc>;
486*724ba675SRob Herring	bus-width = <8>;
487*724ba675SRob Herring};
488*724ba675SRob Herring
489*724ba675SRob Herring&mmc2 {
490*724ba675SRob Herring	vmmc-supply = <&vaux1>;
491*724ba675SRob Herring	bus-width = <8>;
492*724ba675SRob Herring	ti,non-removable;
493*724ba675SRob Herring};
494*724ba675SRob Herring
495*724ba675SRob Herring&mmc3 {
496*724ba675SRob Herring	status = "disabled";
497*724ba675SRob Herring};
498*724ba675SRob Herring
499*724ba675SRob Herring&mmc4 {
500*724ba675SRob Herring	status = "disabled";
501*724ba675SRob Herring};
502*724ba675SRob Herring
503*724ba675SRob Herring&mmc5 {
504*724ba675SRob Herring	pinctrl-names = "default";
505*724ba675SRob Herring	pinctrl-0 = <&wl12xx_pins>;
506*724ba675SRob Herring	vmmc-supply = <&wl12xx_vmmc>;
507*724ba675SRob Herring	non-removable;
508*724ba675SRob Herring	bus-width = <4>;
509*724ba675SRob Herring	cap-power-off-card;
510*724ba675SRob Herring
511*724ba675SRob Herring	#address-cells = <1>;
512*724ba675SRob Herring	#size-cells = <0>;
513*724ba675SRob Herring	wlcore: wlcore@2 {
514*724ba675SRob Herring		compatible = "ti,wl1281";
515*724ba675SRob Herring		reg = <2>;
516*724ba675SRob Herring		interrupt-parent = <&gpio1>;
517*724ba675SRob Herring		interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 53 */
518*724ba675SRob Herring		ref-clock-frequency = <26000000>;
519*724ba675SRob Herring		tcxo-clock-frequency = <26000000>;
520*724ba675SRob Herring	};
521*724ba675SRob Herring};
522*724ba675SRob Herring
523*724ba675SRob Herring&emif1 {
524*724ba675SRob Herring	cs1-used;
525*724ba675SRob Herring	device-handle = <&elpida_ECB240ABACN>;
526*724ba675SRob Herring};
527*724ba675SRob Herring
528*724ba675SRob Herring&emif2 {
529*724ba675SRob Herring	cs1-used;
530*724ba675SRob Herring	device-handle = <&elpida_ECB240ABACN>;
531*724ba675SRob Herring};
532*724ba675SRob Herring
533*724ba675SRob Herring&keypad {
534*724ba675SRob Herring	keypad,num-rows = <8>;
535*724ba675SRob Herring	keypad,num-columns = <8>;
536*724ba675SRob Herring	linux,keymap = <0x00000012	/* KEY_E */
537*724ba675SRob Herring			0x00010013	/* KEY_R */
538*724ba675SRob Herring			0x00020014	/* KEY_T */
539*724ba675SRob Herring			0x00030066	/* KEY_HOME */
540*724ba675SRob Herring			0x0004003f	/* KEY_F5 */
541*724ba675SRob Herring			0x000500f0	/* KEY_UNKNOWN */
542*724ba675SRob Herring			0x00060017	/* KEY_I */
543*724ba675SRob Herring			0x0007002a	/* KEY_LEFTSHIFT */
544*724ba675SRob Herring			0x01000020	/* KEY_D*/
545*724ba675SRob Herring			0x01010021	/* KEY_F */
546*724ba675SRob Herring			0x01020022	/* KEY_G */
547*724ba675SRob Herring			0x010300e7	/* KEY_SEND */
548*724ba675SRob Herring			0x01040040	/* KEY_F6 */
549*724ba675SRob Herring			0x010500f0	/* KEY_UNKNOWN */
550*724ba675SRob Herring			0x01060025	/* KEY_K */
551*724ba675SRob Herring			0x0107001c	/* KEY_ENTER */
552*724ba675SRob Herring			0x0200002d	/* KEY_X */
553*724ba675SRob Herring			0x0201002e	/* KEY_C */
554*724ba675SRob Herring			0x0202002f	/* KEY_V */
555*724ba675SRob Herring			0x0203006b	/* KEY_END */
556*724ba675SRob Herring			0x02040041	/* KEY_F7 */
557*724ba675SRob Herring			0x020500f0	/* KEY_UNKNOWN */
558*724ba675SRob Herring			0x02060034	/* KEY_DOT */
559*724ba675SRob Herring			0x0207003a	/* KEY_CAPSLOCK */
560*724ba675SRob Herring			0x0300002c	/* KEY_Z */
561*724ba675SRob Herring			0x0301004e	/* KEY_KPLUS */
562*724ba675SRob Herring			0x03020030	/* KEY_B */
563*724ba675SRob Herring			0x0303003b	/* KEY_F1 */
564*724ba675SRob Herring			0x03040042	/* KEY_F8 */
565*724ba675SRob Herring			0x030500f0	/* KEY_UNKNOWN */
566*724ba675SRob Herring			0x03060018	/* KEY_O */
567*724ba675SRob Herring			0x03070039	/* KEY_SPACE */
568*724ba675SRob Herring			0x04000011	/* KEY_W */
569*724ba675SRob Herring			0x04010015	/* KEY_Y */
570*724ba675SRob Herring			0x04020016	/* KEY_U */
571*724ba675SRob Herring			0x0403003c	/* KEY_F2 */
572*724ba675SRob Herring			0x04040073	/* KEY_VOLUMEUP */
573*724ba675SRob Herring			0x040500f0	/* KEY_UNKNOWN */
574*724ba675SRob Herring			0x04060026	/* KEY_L */
575*724ba675SRob Herring			0x04070069	/* KEY_LEFT */
576*724ba675SRob Herring			0x0500001f	/* KEY_S */
577*724ba675SRob Herring			0x05010023	/* KEY_H */
578*724ba675SRob Herring			0x05020024	/* KEY_J */
579*724ba675SRob Herring			0x0503003d	/* KEY_F3 */
580*724ba675SRob Herring			0x05040043	/* KEY_F9 */
581*724ba675SRob Herring			0x05050072	/* KEY_VOLUMEDOWN */
582*724ba675SRob Herring			0x05060032	/* KEY_M */
583*724ba675SRob Herring			0x0507006a	/* KEY_RIGHT */
584*724ba675SRob Herring			0x06000010	/* KEY_Q */
585*724ba675SRob Herring			0x0601001e	/* KEY_A */
586*724ba675SRob Herring			0x06020031	/* KEY_N */
587*724ba675SRob Herring			0x0603009e	/* KEY_BACK */
588*724ba675SRob Herring			0x0604000e	/* KEY_BACKSPACE */
589*724ba675SRob Herring			0x060500f0	/* KEY_UNKNOWN */
590*724ba675SRob Herring			0x06060019	/* KEY_P */
591*724ba675SRob Herring			0x06070067	/* KEY_UP */
592*724ba675SRob Herring			0x07000094	/* KEY_PROG1 */
593*724ba675SRob Herring			0x07010095	/* KEY_PROG2 */
594*724ba675SRob Herring			0x070200ca	/* KEY_PROG3 */
595*724ba675SRob Herring			0x070300cb	/* KEY_PROG4 */
596*724ba675SRob Herring			0x0704003e	/* KEY_F4 */
597*724ba675SRob Herring			0x070500f0	/* KEY_UNKNOWN */
598*724ba675SRob Herring			0x07060160	/* KEY_OK */
599*724ba675SRob Herring			0x0707006c>;	/* KEY_DOWN */
600*724ba675SRob Herring	linux,input-no-autorepeat;
601*724ba675SRob Herring};
602*724ba675SRob Herring
603*724ba675SRob Herring&uart2 {
604*724ba675SRob Herring	interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
605*724ba675SRob Herring			       &omap4_pmx_core OMAP4_UART2_RX>;
606*724ba675SRob Herring	pinctrl-names = "default";
607*724ba675SRob Herring	pinctrl-0 = <&uart2_pins>;
608*724ba675SRob Herring};
609*724ba675SRob Herring
610*724ba675SRob Herring&uart3 {
611*724ba675SRob Herring	interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
612*724ba675SRob Herring			       &omap4_pmx_core OMAP4_UART3_RX>;
613*724ba675SRob Herring	pinctrl-names = "default";
614*724ba675SRob Herring	pinctrl-0 = <&uart3_pins>;
615*724ba675SRob Herring};
616*724ba675SRob Herring
617*724ba675SRob Herring&uart4 {
618*724ba675SRob Herring	interrupts-extended = <&wakeupgen GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
619*724ba675SRob Herring			       &omap4_pmx_core OMAP4_UART4_RX>;
620*724ba675SRob Herring	pinctrl-names = "default";
621*724ba675SRob Herring	pinctrl-0 = <&uart4_pins>;
622*724ba675SRob Herring};
623*724ba675SRob Herring
624*724ba675SRob Herring&mcbsp1 {
625*724ba675SRob Herring	pinctrl-names = "default";
626*724ba675SRob Herring	pinctrl-0 = <&mcbsp1_pins>;
627*724ba675SRob Herring	status = "okay";
628*724ba675SRob Herring};
629*724ba675SRob Herring
630*724ba675SRob Herring&mcbsp2 {
631*724ba675SRob Herring	pinctrl-names = "default";
632*724ba675SRob Herring	pinctrl-0 = <&mcbsp2_pins>;
633*724ba675SRob Herring	status = "okay";
634*724ba675SRob Herring};
635*724ba675SRob Herring
636*724ba675SRob Herring&dmic {
637*724ba675SRob Herring	pinctrl-names = "default";
638*724ba675SRob Herring	pinctrl-0 = <&dmic_pins>;
639*724ba675SRob Herring	status = "okay";
640*724ba675SRob Herring};
641*724ba675SRob Herring
642*724ba675SRob Herring&twl_usb_comparator {
643*724ba675SRob Herring	usb-supply = <&vusb>;
644*724ba675SRob Herring};
645*724ba675SRob Herring
646*724ba675SRob Herring&usb_otg_hs {
647*724ba675SRob Herring	interface-type = <1>;
648*724ba675SRob Herring	mode = <3>;
649*724ba675SRob Herring	power = <50>;
650*724ba675SRob Herring};
651*724ba675SRob Herring
652*724ba675SRob Herring&dss {
653*724ba675SRob Herring	status = "okay";
654*724ba675SRob Herring};
655*724ba675SRob Herring
656*724ba675SRob Herring&dsi1 {
657*724ba675SRob Herring	status = "okay";
658*724ba675SRob Herring	vdd-supply = <&vcxio>;
659*724ba675SRob Herring
660*724ba675SRob Herring	port {
661*724ba675SRob Herring		dsi1_out_ep: endpoint {
662*724ba675SRob Herring			remote-endpoint = <&lcd0_in>;
663*724ba675SRob Herring			lanes = <0 1 2 3 4 5>;
664*724ba675SRob Herring		};
665*724ba675SRob Herring	};
666*724ba675SRob Herring
667*724ba675SRob Herring	lcd0: panel@0 {
668*724ba675SRob Herring		compatible = "tpo,taal", "panel-dsi-cm";
669*724ba675SRob Herring		reg = <0>;
670*724ba675SRob Herring		label = "lcd0";
671*724ba675SRob Herring
672*724ba675SRob Herring		reset-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;	/* 102 */
673*724ba675SRob Herring
674*724ba675SRob Herring		port {
675*724ba675SRob Herring			lcd0_in: endpoint {
676*724ba675SRob Herring				remote-endpoint = <&dsi1_out_ep>;
677*724ba675SRob Herring			};
678*724ba675SRob Herring		};
679*724ba675SRob Herring	};
680*724ba675SRob Herring};
681*724ba675SRob Herring
682*724ba675SRob Herring&dsi2 {
683*724ba675SRob Herring	status = "okay";
684*724ba675SRob Herring	vdd-supply = <&vcxio>;
685*724ba675SRob Herring
686*724ba675SRob Herring	port {
687*724ba675SRob Herring		dsi2_out_ep: endpoint {
688*724ba675SRob Herring			remote-endpoint = <&lcd1_in>;
689*724ba675SRob Herring			lanes = <0 1 2 3 4 5>;
690*724ba675SRob Herring		};
691*724ba675SRob Herring	};
692*724ba675SRob Herring
693*724ba675SRob Herring	lcd1: panel@0 {
694*724ba675SRob Herring		compatible = "tpo,taal", "panel-dsi-cm";
695*724ba675SRob Herring		reg = <0>;
696*724ba675SRob Herring		label = "lcd1";
697*724ba675SRob Herring
698*724ba675SRob Herring		reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>;	/* 104 */
699*724ba675SRob Herring
700*724ba675SRob Herring		port {
701*724ba675SRob Herring			lcd1_in: endpoint {
702*724ba675SRob Herring				remote-endpoint = <&dsi2_out_ep>;
703*724ba675SRob Herring			};
704*724ba675SRob Herring		};
705*724ba675SRob Herring	};
706*724ba675SRob Herring};
707*724ba675SRob Herring
708*724ba675SRob Herring&hdmi {
709*724ba675SRob Herring	status = "okay";
710*724ba675SRob Herring	vdda-supply = <&vdac>;
711*724ba675SRob Herring
712*724ba675SRob Herring	port {
713*724ba675SRob Herring		hdmi_out: endpoint {
714*724ba675SRob Herring			remote-endpoint = <&tpd12s015_in>;
715*724ba675SRob Herring		};
716*724ba675SRob Herring	};
717*724ba675SRob Herring};
718