Linux Audio

Check our new training course

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