imx28-tx28.dts revision 279377
1279377Simp/*
2279377Simp * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
3279377Simp * Copyright 2013 Lothar Wa��mann <LW@KARO-electronics.de>
4279377Simp *
5279377Simp * The code contained herein is licensed under the GNU General Public
6279377Simp * License. You may obtain a copy of the GNU General Public License
7279377Simp * Version 2 at the following locations:
8279377Simp *
9279377Simp * http://www.opensource.org/licenses/gpl-license.html
10279377Simp * http://www.gnu.org/copyleft/gpl.html
11279377Simp */
12279377Simp
13279377Simp/dts-v1/;
14279377Simp#include "imx28.dtsi"
15279377Simp#include <dt-bindings/gpio/gpio.h>
16279377Simp
17279377Simp/ {
18279377Simp	model = "Ka-Ro electronics TX28 module";
19279377Simp	compatible = "karo,tx28", "fsl,imx28";
20279377Simp
21279377Simp	aliases {
22279377Simp		can0 = &can0;
23279377Simp		can1 = &can1;
24279377Simp		display = &display0;
25279377Simp		ds1339 = &ds1339;
26279377Simp		gpio5 = &gpio5;
27279377Simp		lcdif = &lcdif;
28279377Simp		lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
29279377Simp		lcdif_24bit_pins = &lcdif_24bit_pins_a;
30279377Simp		reg_can_xcvr = &reg_can_xcvr;
31279377Simp		spi_gpio = &spi_gpio;
32279377Simp		spi_mxs = &ssp3;
33279377Simp		stk5led = &user_led;
34279377Simp		usbotg = &usb0;
35279377Simp	};
36279377Simp
37279377Simp	memory {
38279377Simp		reg = <0 0>; /* will be filled in by U-Boot */
39279377Simp	};
40279377Simp
41279377Simp	onewire {
42279377Simp		compatible = "w1-gpio";
43279377Simp		gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
44279377Simp		status = "disabled";
45279377Simp	};
46279377Simp
47279377Simp	regulators {
48279377Simp		compatible = "simple-bus";
49279377Simp		#address-cells = <1>;
50279377Simp		#size-cells = <0>;
51279377Simp
52279377Simp		reg_usb0_vbus: regulator@0 {
53279377Simp			compatible = "regulator-fixed";
54279377Simp			reg = <0>;
55279377Simp			regulator-name = "usb0_vbus";
56279377Simp			regulator-min-microvolt = <5000000>;
57279377Simp			regulator-max-microvolt = <5000000>;
58279377Simp			gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
59279377Simp			enable-active-high;
60279377Simp		};
61279377Simp
62279377Simp		reg_usb1_vbus: regulator@1 {
63279377Simp			compatible = "regulator-fixed";
64279377Simp			reg = <1>;
65279377Simp			regulator-name = "usb1_vbus";
66279377Simp			regulator-min-microvolt = <5000000>;
67279377Simp			regulator-max-microvolt = <5000000>;
68279377Simp			gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
69279377Simp			enable-active-high;
70279377Simp		};
71279377Simp
72279377Simp		reg_2p5v: regulator@2 {
73279377Simp			compatible = "regulator-fixed";
74279377Simp			reg = <2>;
75279377Simp			regulator-name = "2P5V";
76279377Simp			regulator-min-microvolt = <2500000>;
77279377Simp			regulator-max-microvolt = <2500000>;
78279377Simp			regulator-always-on;
79279377Simp		};
80279377Simp
81279377Simp		reg_3p3v: regulator@3 {
82279377Simp			compatible = "regulator-fixed";
83279377Simp			reg = <3>;
84279377Simp			regulator-name = "3P3V";
85279377Simp			regulator-min-microvolt = <3300000>;
86279377Simp			regulator-max-microvolt = <3300000>;
87279377Simp			regulator-always-on;
88279377Simp		};
89279377Simp
90279377Simp		reg_can_xcvr: regulator@4 {
91279377Simp			compatible = "regulator-fixed";
92279377Simp			reg = <4>;
93279377Simp			regulator-name = "CAN XCVR";
94279377Simp			regulator-min-microvolt = <3300000>;
95279377Simp			regulator-max-microvolt = <3300000>;
96279377Simp			gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
97279377Simp			pinctrl-names = "default";
98279377Simp			pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
99279377Simp		};
100279377Simp
101279377Simp		reg_lcd: regulator@5 {
102279377Simp			compatible = "regulator-fixed";
103279377Simp			reg = <5>;
104279377Simp			regulator-name = "LCD POWER";
105279377Simp			regulator-min-microvolt = <3300000>;
106279377Simp			regulator-max-microvolt = <3300000>;
107279377Simp			gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
108279377Simp			enable-active-high;
109279377Simp		};
110279377Simp
111279377Simp		reg_lcd_reset: regulator@6 {
112279377Simp			compatible = "regulator-fixed";
113279377Simp			reg = <6>;
114279377Simp			regulator-name = "LCD RESET";
115279377Simp			regulator-min-microvolt = <3300000>;
116279377Simp			regulator-max-microvolt = <3300000>;
117279377Simp			gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
118279377Simp			startup-delay-us = <300000>;
119279377Simp			enable-active-high;
120279377Simp			regulator-always-on;
121279377Simp			regulator-boot-on;
122279377Simp		};
123279377Simp	};
124279377Simp
125279377Simp	clocks {
126279377Simp		#address-cells = <1>;
127279377Simp		#size-cells = <0>;
128279377Simp		mclk: clock@0 {
129279377Simp			compatible = "fixed-clock";
130279377Simp			reg = <0>;
131279377Simp			#clock-cells = <0>;
132279377Simp			clock-frequency = <27000000>;
133279377Simp		};
134279377Simp	};
135279377Simp
136279377Simp	sound {
137279377Simp		compatible = "fsl,imx28-tx28-sgtl5000",
138279377Simp			     "fsl,mxs-audio-sgtl5000";
139279377Simp		model = "imx28-tx28-sgtl5000";
140279377Simp		saif-controllers = <&saif0 &saif1>;
141279377Simp		audio-codec = <&sgtl5000>;
142279377Simp	};
143279377Simp
144279377Simp	leds {
145279377Simp		compatible = "gpio-leds";
146279377Simp
147279377Simp		user_led: user {
148279377Simp			label = "Heartbeat";
149279377Simp			gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
150279377Simp			linux,default-trigger = "heartbeat";
151279377Simp		};
152279377Simp	};
153279377Simp
154279377Simp	backlight {
155279377Simp		compatible = "pwm-backlight";
156279377Simp		pwms = <&pwm 0 500000>;
157279377Simp		/*
158279377Simp		 * a silly way to create a 1:1 relationship between the
159279377Simp		 * PWM value and the actual duty cycle
160279377Simp		 */
161279377Simp		brightness-levels = < 0  1  2  3  4  5  6  7  8  9
162279377Simp				     10 11 12 13 14 15 16 17 18 19
163279377Simp				     20 21 22 23 24 25 26 27 28 29
164279377Simp				     30 31 32 33 34 35 36 37 38 39
165279377Simp				     40 41 42 43 44 45 46 47 48 49
166279377Simp				     50 51 52 53 54 55 56 57 58 59
167279377Simp				     60 61 62 63 64 65 66 67 68 69
168279377Simp				     70 71 72 73 74 75 76 77 78 79
169279377Simp				     80 81 82 83 84 85 86 87 88 89
170279377Simp				     90 91 92 93 94 95 96 97 98 99
171279377Simp				    100>;
172279377Simp		default-brightness-level = <50>;
173279377Simp	};
174279377Simp
175279377Simp	matrix_keypad: matrix-keypad@0 {
176279377Simp		compatible = "gpio-matrix-keypad";
177279377Simp		col-gpios = <
178279377Simp			&gpio5 0 GPIO_ACTIVE_HIGH
179279377Simp			&gpio5 1 GPIO_ACTIVE_HIGH
180279377Simp			&gpio5 2 GPIO_ACTIVE_HIGH
181279377Simp			&gpio5 3 GPIO_ACTIVE_HIGH
182279377Simp		>;
183279377Simp		row-gpios = <
184279377Simp			&gpio5 4 GPIO_ACTIVE_HIGH
185279377Simp			&gpio5 5 GPIO_ACTIVE_HIGH
186279377Simp			&gpio5 6 GPIO_ACTIVE_HIGH
187279377Simp			&gpio5 7 GPIO_ACTIVE_HIGH
188279377Simp		>;
189279377Simp		/* sample keymap */
190279377Simp		linux,keymap = <
191279377Simp			0x00000074 /* row 0, col 0, KEY_POWER */
192279377Simp			0x00010052 /* row 0, col 1, KEY_KP0 */
193279377Simp			0x0002004f /* row 0, col 2, KEY_KP1 */
194279377Simp			0x00030050 /* row 0, col 3, KEY_KP2 */
195279377Simp			0x01000051 /* row 1, col 0, KEY_KP3 */
196279377Simp			0x0101004b /* row 1, col 1, KEY_KP4 */
197279377Simp			0x0102004c /* row 1, col 2, KEY_KP5 */
198279377Simp			0x0103004d /* row 1, col 3, KEY_KP6 */
199279377Simp			0x02000047 /* row 2, col 0, KEY_KP7 */
200279377Simp			0x02010048 /* row 2, col 1, KEY_KP8 */
201279377Simp			0x02020049 /* row 2, col 2, KEY_KP9 */
202279377Simp		>;
203279377Simp		gpio-activelow;
204279377Simp		linux,wakeup;
205279377Simp		debounce-delay-ms = <100>;
206279377Simp		col-scan-delay-us = <5000>;
207279377Simp		linux,no-autorepeat;
208279377Simp	};
209279377Simp
210279377Simp	spi_gpio: spi-gpio {
211279377Simp		compatible = "spi-gpio";
212279377Simp		#address-cells = <1>;
213279377Simp		#size-cells = <0>;
214279377Simp		pinctrl-names = "default";
215279377Simp		pinctrl-0 = <&tx28_spi_gpio_pins>;
216279377Simp
217279377Simp		gpio-sck = <&gpio2 24 GPIO_ACTIVE_HIGH>;
218279377Simp		gpio-mosi = <&gpio2 25 GPIO_ACTIVE_HIGH>;
219279377Simp		gpio-miso = <&gpio2 26 GPIO_ACTIVE_HIGH>;
220279377Simp		num-chipselects = <3>;
221279377Simp		cs-gpios = <
222279377Simp			&gpio2 27 GPIO_ACTIVE_LOW
223279377Simp			&gpio3 8 GPIO_ACTIVE_LOW
224279377Simp			&gpio3 9 GPIO_ACTIVE_LOW
225279377Simp		>;
226279377Simp		/* enable this and disable ssp3 below, if you need full duplex SPI transfer */
227279377Simp		status = "disabled";
228279377Simp
229279377Simp		spi@0 {
230279377Simp			compatible = "spidev";
231279377Simp			reg = <0>;
232279377Simp			spi-max-frequency = <57600000>;
233279377Simp		};
234279377Simp
235279377Simp		spi@1 {
236279377Simp			compatible = "spidev";
237279377Simp			reg = <1>;
238279377Simp			spi-max-frequency = <57600000>;
239279377Simp		};
240279377Simp
241279377Simp		spi@2 {
242279377Simp			compatible = "spidev";
243279377Simp			reg = <2>;
244279377Simp			spi-max-frequency = <57600000>;
245279377Simp		};
246279377Simp	};
247279377Simp};
248279377Simp
249279377Simp/* 2nd TX-Std UART - (A)UART1  */
250279377Simp&auart1 {
251279377Simp	pinctrl-names = "default";
252279377Simp	pinctrl-0 = <&auart1_pins_a>;
253279377Simp	status = "okay";
254279377Simp};
255279377Simp
256279377Simp/* 3rd TX-Std UART - (A)UART3  */
257279377Simp&auart3 {
258279377Simp	pinctrl-names = "default";
259279377Simp	pinctrl-0 = <&auart3_pins_a>;
260279377Simp	status = "okay";
261279377Simp};
262279377Simp
263279377Simp&can0 {
264279377Simp	pinctrl-names = "default";
265279377Simp	pinctrl-0 = <&can0_pins_a>;
266279377Simp	xceiver-supply = <&reg_can_xcvr>;
267279377Simp	status = "okay";
268279377Simp};
269279377Simp
270279377Simp&can1 {
271279377Simp	pinctrl-names = "default";
272279377Simp	pinctrl-0 = <&can1_pins_a>;
273279377Simp	xceiver-supply = <&reg_can_xcvr>;
274279377Simp	status = "okay";
275279377Simp};
276279377Simp
277279377Simp&digctl {
278279377Simp	status = "okay";
279279377Simp};
280279377Simp
281279377Simp/* 1st TX-Std UART - (D)UART */
282279377Simp&duart {
283279377Simp	pinctrl-names = "default";
284279377Simp	pinctrl-0 = <&duart_4pins_a>;
285279377Simp	status = "okay";
286279377Simp};
287279377Simp
288279377Simp&gpmi {
289279377Simp	pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
290279377Simp	nand-on-flash-bbt;
291279377Simp	status = "okay";
292279377Simp};
293279377Simp
294279377Simp&i2c0 {
295279377Simp	pinctrl-names = "default";
296279377Simp	pinctrl-0 = <&i2c0_pins_a>;
297279377Simp	clock-frequency = <400000>;
298279377Simp	status = "okay";
299279377Simp
300279377Simp	sgtl5000: sgtl5000@0a {
301279377Simp		compatible = "fsl,sgtl5000";
302279377Simp		reg = <0x0a>;
303279377Simp		VDDA-supply = <&reg_2p5v>;
304279377Simp		VDDIO-supply = <&reg_3p3v>;
305279377Simp		clocks = <&mclk>;
306279377Simp	};
307279377Simp
308279377Simp	gpio5: pca953x@20 {
309279377Simp		compatible = "nxp,pca9554";
310279377Simp		reg = <0x20>;
311279377Simp		pinctrl-names = "default";
312279377Simp		pinctrl-0 = <&tx28_pca9554_pins>;
313279377Simp		interrupt-parent = <&gpio3>;
314279377Simp		interrupts = <28 0>;
315279377Simp		gpio-controller;
316279377Simp		#gpio-cells = <2>;
317279377Simp		interrupt-controller;
318279377Simp		#interrupt-cells = <2>;
319279377Simp	};
320279377Simp
321279377Simp	polytouch: edt-ft5x06@38 {
322279377Simp		compatible = "edt,edt-ft5x06";
323279377Simp		reg = <0x38>;
324279377Simp		pinctrl-names = "default";
325279377Simp		pinctrl-0 = <&tx28_edt_ft5x06_pins>;
326279377Simp		interrupt-parent = <&gpio2>;
327279377Simp		interrupts = <5 0>;
328279377Simp		reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
329279377Simp		wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
330279377Simp	};
331279377Simp
332279377Simp	touchscreen: tsc2007@48 {
333279377Simp		compatible = "ti,tsc2007";
334279377Simp		reg = <0x48>;
335279377Simp		pinctrl-names = "default";
336279377Simp		pinctrl-0 = <&tx28_tsc2007_pins>;
337279377Simp		interrupt-parent = <&gpio3>;
338279377Simp		interrupts = <20 0>;
339279377Simp		pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
340279377Simp		ti,x-plate-ohms = /bits/ 16 <660>;
341279377Simp	};
342279377Simp
343279377Simp	ds1339: rtc@68 {
344279377Simp		compatible = "mxim,ds1339";
345279377Simp		reg = <0x68>;
346279377Simp	};
347279377Simp};
348279377Simp
349279377Simp&lcdif {
350279377Simp	pinctrl-names = "default";
351279377Simp	pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
352279377Simp	lcd-supply = <&reg_lcd>;
353279377Simp	display = <&display0>;
354279377Simp	status = "okay";
355279377Simp
356279377Simp	display0: display0 {
357279377Simp		bits-per-pixel = <32>;
358279377Simp		bus-width = <24>;
359279377Simp		display-timings {
360279377Simp			native-mode = <&timing5>;
361279377Simp			timing0: timing0 {
362279377Simp				panel-name = "VGA";
363279377Simp				clock-frequency = <25175000>;
364279377Simp				hactive = <640>;
365279377Simp				vactive = <480>;
366279377Simp				hback-porch = <48>;
367279377Simp				hsync-len = <96>;
368279377Simp				hfront-porch = <16>;
369279377Simp				vback-porch = <33>;
370279377Simp				vsync-len = <2>;
371279377Simp				vfront-porch = <10>;
372279377Simp				hsync-active = <0>;
373279377Simp				vsync-active = <0>;
374279377Simp				de-active = <1>;
375279377Simp				pixelclk-active = <1>;
376279377Simp			};
377279377Simp
378279377Simp			timing1: timing1 {
379279377Simp				panel-name = "ETV570";
380279377Simp				clock-frequency = <25175000>;
381279377Simp				hactive = <640>;
382279377Simp				vactive = <480>;
383279377Simp				hback-porch = <114>;
384279377Simp				hsync-len = <30>;
385279377Simp				hfront-porch = <16>;
386279377Simp				vback-porch = <32>;
387279377Simp				vsync-len = <3>;
388279377Simp				vfront-porch = <10>;
389279377Simp				hsync-active = <0>;
390279377Simp				vsync-active = <0>;
391279377Simp				de-active = <1>;
392279377Simp				pixelclk-active = <1>;
393279377Simp			};
394279377Simp
395279377Simp			timing2: timing2 {
396279377Simp				panel-name = "ET0350";
397279377Simp				clock-frequency = <6500000>;
398279377Simp				hactive = <320>;
399279377Simp				vactive = <240>;
400279377Simp				hback-porch = <34>;
401279377Simp				hsync-len = <34>;
402279377Simp				hfront-porch = <20>;
403279377Simp				vback-porch = <15>;
404279377Simp				vsync-len = <3>;
405279377Simp				vfront-porch = <4>;
406279377Simp				hsync-active = <0>;
407279377Simp				vsync-active = <0>;
408279377Simp				de-active = <1>;
409279377Simp				pixelclk-active = <1>;
410279377Simp			};
411279377Simp
412279377Simp			timing3: timing3 {
413279377Simp				panel-name = "ET0430";
414279377Simp				clock-frequency = <9000000>;
415279377Simp				hactive = <480>;
416279377Simp				vactive = <272>;
417279377Simp				hback-porch = <2>;
418279377Simp				hsync-len = <41>;
419279377Simp				hfront-porch = <2>;
420279377Simp				vback-porch = <2>;
421279377Simp				vsync-len = <10>;
422279377Simp				vfront-porch = <2>;
423279377Simp				hsync-active = <0>;
424279377Simp				vsync-active = <0>;
425279377Simp				de-active = <1>;
426279377Simp				pixelclk-active = <1>;
427279377Simp			};
428279377Simp
429279377Simp			timing4: timing4 {
430279377Simp				panel-name = "ET0500", "ET0700";
431279377Simp				clock-frequency = <33260000>;
432279377Simp				hactive = <800>;
433279377Simp				vactive = <480>;
434279377Simp				hback-porch = <88>;
435279377Simp				hsync-len = <128>;
436279377Simp				hfront-porch = <40>;
437279377Simp				vback-porch = <33>;
438279377Simp				vsync-len = <2>;
439279377Simp				vfront-porch = <10>;
440279377Simp				hsync-active = <0>;
441279377Simp				vsync-active = <0>;
442279377Simp				de-active = <1>;
443279377Simp				pixelclk-active = <1>;
444279377Simp			};
445279377Simp
446279377Simp			timing5: timing5 {
447279377Simp				panel-name = "ETQ570";
448279377Simp				clock-frequency = <6400000>;
449279377Simp				hactive = <320>;
450279377Simp				vactive = <240>;
451279377Simp				hback-porch = <38>;
452279377Simp				hsync-len = <30>;
453279377Simp				hfront-porch = <30>;
454279377Simp				vback-porch = <16>;
455279377Simp				vsync-len = <3>;
456279377Simp				vfront-porch = <4>;
457279377Simp				hsync-active = <0>;
458279377Simp				vsync-active = <0>;
459279377Simp				de-active = <1>;
460279377Simp				pixelclk-active = <1>;
461279377Simp			};
462279377Simp		};
463279377Simp	};
464279377Simp};
465279377Simp
466279377Simp&lradc {
467279377Simp	fsl,lradc-touchscreen-wires = <4>;
468279377Simp	status = "okay";
469279377Simp};
470279377Simp
471279377Simp&mac0 {
472279377Simp	phy-mode = "rmii";
473279377Simp	pinctrl-names = "default", "gpio_mode";
474279377Simp	pinctrl-0 = <&mac0_pins_a>;
475279377Simp	pinctrl-1 = <&tx28_mac0_pins_gpio>;
476279377Simp	status = "okay";
477279377Simp};
478279377Simp
479279377Simp&mac1 {
480279377Simp	phy-mode = "rmii";
481279377Simp	pinctrl-names = "default";
482279377Simp	pinctrl-0 = <&mac1_pins_a>;
483279377Simp	/* not enabled by default */
484279377Simp};
485279377Simp
486279377Simp&mxs_rtc {
487279377Simp	status = "okay";
488279377Simp};
489279377Simp
490279377Simp&ocotp {
491279377Simp	status = "okay";
492279377Simp};
493279377Simp
494279377Simp&pwm {
495279377Simp	pinctrl-names = "default";
496279377Simp	pinctrl-0 = <&pwm0_pins_a>;
497279377Simp	status = "okay";
498279377Simp};
499279377Simp
500279377Simp&pinctrl {
501279377Simp	pinctrl-names = "default";
502279377Simp	pinctrl-0 = <&hog_pins_a>;
503279377Simp
504279377Simp	hog_pins_a: hog@0 {
505279377Simp		reg = <0>;
506279377Simp		fsl,pinmux-ids = <
507279377Simp			MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
508279377Simp		>;
509279377Simp		fsl,drive-strength = <MXS_DRIVE_4mA>;
510279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
511279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
512279377Simp	};
513279377Simp
514279377Simp	tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins {
515279377Simp		fsl,pinmux-ids = <
516279377Simp			MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
517279377Simp			MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
518279377Simp			MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
519279377Simp		>;
520279377Simp		fsl,drive-strength = <MXS_DRIVE_4mA>;
521279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
522279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
523279377Simp	};
524279377Simp
525279377Simp	tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins {
526279377Simp		fsl,pinmux-ids = <
527279377Simp			MX28_PAD_LCD_D00__GPIO_1_0
528279377Simp		>;
529279377Simp		fsl,drive-strength = <MXS_DRIVE_4mA>;
530279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
531279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
532279377Simp	};
533279377Simp
534279377Simp	tx28_lcdif_23bit_pins: tx28-lcdif-23bit {
535279377Simp		fsl,pinmux-ids = <
536279377Simp			/* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
537279377Simp			MX28_PAD_LCD_D01__LCD_D1
538279377Simp			MX28_PAD_LCD_D02__LCD_D2
539279377Simp			MX28_PAD_LCD_D03__LCD_D3
540279377Simp			MX28_PAD_LCD_D04__LCD_D4
541279377Simp			MX28_PAD_LCD_D05__LCD_D5
542279377Simp			MX28_PAD_LCD_D06__LCD_D6
543279377Simp			MX28_PAD_LCD_D07__LCD_D7
544279377Simp			MX28_PAD_LCD_D08__LCD_D8
545279377Simp			MX28_PAD_LCD_D09__LCD_D9
546279377Simp			MX28_PAD_LCD_D10__LCD_D10
547279377Simp			MX28_PAD_LCD_D11__LCD_D11
548279377Simp			MX28_PAD_LCD_D12__LCD_D12
549279377Simp			MX28_PAD_LCD_D13__LCD_D13
550279377Simp			MX28_PAD_LCD_D14__LCD_D14
551279377Simp			MX28_PAD_LCD_D15__LCD_D15
552279377Simp			MX28_PAD_LCD_D16__LCD_D16
553279377Simp			MX28_PAD_LCD_D17__LCD_D17
554279377Simp			MX28_PAD_LCD_D18__LCD_D18
555279377Simp			MX28_PAD_LCD_D19__LCD_D19
556279377Simp			MX28_PAD_LCD_D20__LCD_D20
557279377Simp			MX28_PAD_LCD_D21__LCD_D21
558279377Simp			MX28_PAD_LCD_D22__LCD_D22
559279377Simp			MX28_PAD_LCD_D23__LCD_D23
560279377Simp		>;
561279377Simp		fsl,drive-strength = <MXS_DRIVE_4mA>;
562279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
563279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
564279377Simp	};
565279377Simp
566279377Simp	tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl {
567279377Simp		fsl,pinmux-ids = <
568279377Simp			MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
569279377Simp			MX28_PAD_LCD_RESET__GPIO_3_30  /* Reset */
570279377Simp		>;
571279377Simp		fsl,drive-strength = <MXS_DRIVE_4mA>;
572279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
573279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
574279377Simp	};
575279377Simp
576279377Simp	tx28_mac0_pins_gpio: tx28-mac0-gpio-pins {
577279377Simp		fsl,pinmux-ids = <
578279377Simp			MX28_PAD_ENET0_MDC__GPIO_4_0
579279377Simp			MX28_PAD_ENET0_MDIO__GPIO_4_1
580279377Simp			MX28_PAD_ENET0_RX_EN__GPIO_4_2
581279377Simp			MX28_PAD_ENET0_RXD0__GPIO_4_3
582279377Simp			MX28_PAD_ENET0_RXD1__GPIO_4_4
583279377Simp			MX28_PAD_ENET0_TX_EN__GPIO_4_6
584279377Simp			MX28_PAD_ENET0_TXD0__GPIO_4_7
585279377Simp			MX28_PAD_ENET0_TXD1__GPIO_4_8
586279377Simp			MX28_PAD_ENET_CLK__GPIO_4_16
587279377Simp		>;
588279377Simp		fsl,drive-strength = <MXS_DRIVE_4mA>;
589279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
590279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
591279377Simp	};
592279377Simp
593279377Simp	tx28_pca9554_pins: tx28-pca9554-pins {
594279377Simp		fsl,pinmux-ids = <
595279377Simp			MX28_PAD_PWM3__GPIO_3_28
596279377Simp		>;
597279377Simp		fsl,drive-strength = <MXS_DRIVE_4mA>;
598279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
599279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
600279377Simp	};
601279377Simp
602279377Simp	tx28_spi_gpio_pins: spi-gpiogrp {
603279377Simp		fsl,pinmux-ids = <
604279377Simp			MX28_PAD_AUART2_RX__GPIO_3_8
605279377Simp			MX28_PAD_AUART2_TX__GPIO_3_9
606279377Simp			MX28_PAD_SSP3_SCK__GPIO_2_24
607279377Simp			MX28_PAD_SSP3_MOSI__GPIO_2_25
608279377Simp			MX28_PAD_SSP3_MISO__GPIO_2_26
609279377Simp			MX28_PAD_SSP3_SS0__GPIO_2_27
610279377Simp		>;
611279377Simp		fsl,drive-strength = <MXS_DRIVE_8mA>;
612279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
613279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
614279377Simp	};
615279377Simp
616279377Simp	tx28_tsc2007_pins: tx28-tsc2007-pins {
617279377Simp		fsl,pinmux-ids = <
618279377Simp			MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
619279377Simp		>;
620279377Simp		fsl,drive-strength = <MXS_DRIVE_4mA>;
621279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
622279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
623279377Simp	};
624279377Simp
625279377Simp
626279377Simp	tx28_usbphy0_pins: tx28-usbphy0-pins {
627279377Simp		fsl,pinmux-ids = <
628279377Simp			MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
629279377Simp			MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
630279377Simp		>;
631279377Simp		fsl,drive-strength = <MXS_DRIVE_12mA>;
632279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
633279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
634279377Simp	};
635279377Simp
636279377Simp	tx28_usbphy1_pins: tx28-usbphy1-pins {
637279377Simp		fsl,pinmux-ids = <
638279377Simp			MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
639279377Simp			MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
640279377Simp		>;
641279377Simp		fsl,drive-strength = <MXS_DRIVE_12mA>;
642279377Simp		fsl,voltage = <MXS_VOLTAGE_HIGH>;
643279377Simp		fsl,pull-up = <MXS_PULL_DISABLE>;
644279377Simp	};
645279377Simp};
646279377Simp
647279377Simp&saif0 {
648279377Simp	pinctrl-names = "default";
649279377Simp	pinctrl-0 = <&saif0_pins_b>;
650279377Simp	fsl,saif-master;
651279377Simp	status = "okay";
652279377Simp};
653279377Simp
654279377Simp&saif1 {
655279377Simp	pinctrl-names = "default";
656279377Simp	pinctrl-0 = <&saif1_pins_a>;
657279377Simp	status = "okay";
658279377Simp};
659279377Simp
660279377Simp&ssp0 {
661279377Simp	compatible = "fsl,imx28-mmc";
662279377Simp	pinctrl-names = "default", "special";
663279377Simp	pinctrl-0 = <&mmc0_4bit_pins_a
664279377Simp		     &mmc0_cd_cfg
665279377Simp		     &mmc0_sck_cfg>;
666279377Simp	bus-width = <4>;
667279377Simp	status = "okay";
668279377Simp};
669279377Simp
670279377Simp&ssp3 {
671279377Simp	compatible = "fsl,imx28-spi";
672279377Simp	pinctrl-names = "default";
673279377Simp	pinctrl-0 = <&spi3_pins_a>;
674279377Simp	clock-frequency = <57600000>;
675279377Simp	status = "okay";
676279377Simp
677279377Simp	spi@0 {
678279377Simp		compatible = "spidev";
679279377Simp		reg = <0>;
680279377Simp		spi-max-frequency = <57600000>;
681279377Simp	};
682279377Simp
683279377Simp	spi@1 {
684279377Simp		compatible = "spidev";
685279377Simp		reg = <1>;
686279377Simp		spi-max-frequency = <57600000>;
687279377Simp	};
688279377Simp
689279377Simp	spi@2 {
690279377Simp		compatible = "spidev";
691279377Simp		reg = <2>;
692279377Simp		spi-max-frequency = <57600000>;
693279377Simp	};
694279377Simp};
695279377Simp
696279377Simp&usb0 {
697279377Simp	vbus-supply = <&reg_usb0_vbus>;
698279377Simp	disable-over-current;
699279377Simp	dr_mode = "peripheral";
700279377Simp	status = "okay";
701279377Simp};
702279377Simp
703279377Simp&usb1 {
704279377Simp	vbus-supply = <&reg_usb1_vbus>;
705279377Simp	disable-over-current;
706279377Simp	dr_mode = "host";
707279377Simp	status = "okay";
708279377Simp};
709279377Simp
710279377Simp&usbphy0 {
711279377Simp	pinctrl-names = "default";
712279377Simp	pinctrl-0 = <&tx28_usbphy0_pins>;
713279377Simp	phy_type = "utmi";
714279377Simp	status = "okay";
715279377Simp};
716279377Simp
717279377Simp&usbphy1 {
718279377Simp	pinctrl-names = "default";
719279377Simp	pinctrl-0 = <&tx28_usbphy1_pins>;
720279377Simp	phy_type = "utmi";
721279377Simp	status = "okay";
722279377Simp};
723