xref: /openbmc/linux/arch/arm/boot/dts/nxp/imx/imx51-ts4800.dts (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1*724ba675SRob Herring/*
2*724ba675SRob Herring * Copyright 2015 Savoir-faire Linux
3*724ba675SRob Herring *
4*724ba675SRob Herring * This device tree is based on imx51-babbage.dts
5*724ba675SRob Herring *
6*724ba675SRob Herring * Licensed under the X11 license or the GPL v2 (or later)
7*724ba675SRob Herring */
8*724ba675SRob Herring
9*724ba675SRob Herring/dts-v1/;
10*724ba675SRob Herring#include "imx51.dtsi"
11*724ba675SRob Herring
12*724ba675SRob Herring/ {
13*724ba675SRob Herring	model = "Technologic Systems TS-4800";
14*724ba675SRob Herring	compatible = "technologic,imx51-ts4800", "fsl,imx51";
15*724ba675SRob Herring
16*724ba675SRob Herring	chosen {
17*724ba675SRob Herring		stdout-path = &uart1;
18*724ba675SRob Herring	};
19*724ba675SRob Herring
20*724ba675SRob Herring	memory@90000000 {
21*724ba675SRob Herring		device_type = "memory";
22*724ba675SRob Herring		reg = <0x90000000 0x10000000>;
23*724ba675SRob Herring	};
24*724ba675SRob Herring
25*724ba675SRob Herring	clocks {
26*724ba675SRob Herring		ckih1 {
27*724ba675SRob Herring			clock-frequency = <22579200>;
28*724ba675SRob Herring		};
29*724ba675SRob Herring
30*724ba675SRob Herring		ckih2 {
31*724ba675SRob Herring			clock-frequency = <24576000>;
32*724ba675SRob Herring		};
33*724ba675SRob Herring	};
34*724ba675SRob Herring
35*724ba675SRob Herring	backlight_reg: regulator-backlight {
36*724ba675SRob Herring		compatible = "regulator-fixed";
37*724ba675SRob Herring		pinctrl-names = "default";
38*724ba675SRob Herring		pinctrl-0 = <&pinctrl_enable_lcd>;
39*724ba675SRob Herring		regulator-name = "enable_lcd_reg";
40*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
41*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
42*724ba675SRob Herring		gpio = <&gpio4 9 GPIO_ACTIVE_HIGH>;
43*724ba675SRob Herring		enable-active-high;
44*724ba675SRob Herring	};
45*724ba675SRob Herring
46*724ba675SRob Herring	backlight: backlight {
47*724ba675SRob Herring		compatible = "pwm-backlight";
48*724ba675SRob Herring		pwms = <&pwm1 0 78770>;
49*724ba675SRob Herring		brightness-levels = <0 150 200 255>;
50*724ba675SRob Herring		default-brightness-level = <1>;
51*724ba675SRob Herring		power-supply = <&backlight_reg>;
52*724ba675SRob Herring	};
53*724ba675SRob Herring
54*724ba675SRob Herring	display1: disp1 {
55*724ba675SRob Herring		compatible = "fsl,imx-parallel-display";
56*724ba675SRob Herring		interface-pix-fmt = "rgb24";
57*724ba675SRob Herring		pinctrl-names = "default";
58*724ba675SRob Herring		pinctrl-0 = <&pinctrl_lcd>;
59*724ba675SRob Herring
60*724ba675SRob Herring		display-timings {
61*724ba675SRob Herring			800x480p60 {
62*724ba675SRob Herring				native-mode;
63*724ba675SRob Herring				clock-frequency = <30066000>;
64*724ba675SRob Herring				hactive = <800>;
65*724ba675SRob Herring				vactive = <480>;
66*724ba675SRob Herring				hfront-porch = <50>;
67*724ba675SRob Herring				hback-porch = <70>;
68*724ba675SRob Herring				hsync-len = <50>;
69*724ba675SRob Herring				vback-porch = <0>;
70*724ba675SRob Herring				vfront-porch = <0>;
71*724ba675SRob Herring				vsync-len = <50>;
72*724ba675SRob Herring			};
73*724ba675SRob Herring		};
74*724ba675SRob Herring
75*724ba675SRob Herring		port {
76*724ba675SRob Herring			display0_in: endpoint {
77*724ba675SRob Herring				remote-endpoint = <&ipu_di0_disp1>;
78*724ba675SRob Herring			};
79*724ba675SRob Herring		};
80*724ba675SRob Herring	};
81*724ba675SRob Herring};
82*724ba675SRob Herring
83*724ba675SRob Herring&esdhc1 {
84*724ba675SRob Herring	pinctrl-names = "default";
85*724ba675SRob Herring	pinctrl-0 = <&pinctrl_esdhc1>;
86*724ba675SRob Herring	cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
87*724ba675SRob Herring	wp-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
88*724ba675SRob Herring	status = "okay";
89*724ba675SRob Herring};
90*724ba675SRob Herring
91*724ba675SRob Herring&fec {
92*724ba675SRob Herring	pinctrl-names = "default";
93*724ba675SRob Herring	pinctrl-0 = <&pinctrl_fec>;
94*724ba675SRob Herring	phy-mode = "mii";
95*724ba675SRob Herring	phy-reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
96*724ba675SRob Herring	phy-reset-duration = <1>;
97*724ba675SRob Herring	status = "okay";
98*724ba675SRob Herring};
99*724ba675SRob Herring
100*724ba675SRob Herring&i2c2 {
101*724ba675SRob Herring	pinctrl-names = "default";
102*724ba675SRob Herring	pinctrl-0 = <&pinctrl_i2c2>;
103*724ba675SRob Herring	status = "okay";
104*724ba675SRob Herring
105*724ba675SRob Herring	rtc: rtc@68 {
106*724ba675SRob Herring		compatible = "st,m41t00";
107*724ba675SRob Herring		reg = <0x68>;
108*724ba675SRob Herring	};
109*724ba675SRob Herring};
110*724ba675SRob Herring
111*724ba675SRob Herring&ipu_di0_disp1 {
112*724ba675SRob Herring	remote-endpoint = <&display0_in>;
113*724ba675SRob Herring};
114*724ba675SRob Herring
115*724ba675SRob Herring&pwm1 {
116*724ba675SRob Herring	#pwm-cells = <2>;
117*724ba675SRob Herring	pinctrl-names = "default";
118*724ba675SRob Herring	pinctrl-0 = <&pinctrl_pwm_backlight>;
119*724ba675SRob Herring	status = "okay";
120*724ba675SRob Herring};
121*724ba675SRob Herring
122*724ba675SRob Herring&uart1 {
123*724ba675SRob Herring	pinctrl-names = "default";
124*724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart1>;
125*724ba675SRob Herring	status = "okay";
126*724ba675SRob Herring};
127*724ba675SRob Herring
128*724ba675SRob Herring&uart2 {
129*724ba675SRob Herring	pinctrl-names = "default";
130*724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart2>;
131*724ba675SRob Herring	status = "okay";
132*724ba675SRob Herring};
133*724ba675SRob Herring
134*724ba675SRob Herring&uart3 {
135*724ba675SRob Herring	pinctrl-names = "default";
136*724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart3>;
137*724ba675SRob Herring	status = "okay";
138*724ba675SRob Herring};
139*724ba675SRob Herring
140*724ba675SRob Herring&weim {
141*724ba675SRob Herring	pinctrl-names = "default";
142*724ba675SRob Herring	pinctrl-0 = <&pinctrl_weim>;
143*724ba675SRob Herring	status = "okay";
144*724ba675SRob Herring
145*724ba675SRob Herring	fpga@0 {
146*724ba675SRob Herring		compatible = "simple-bus";
147*724ba675SRob Herring		fsl,weim-cs-timing = <0x0061008F 0x00000002 0x1c022000
148*724ba675SRob Herring				      0x00000000 0x1c092480 0x00000000>;
149*724ba675SRob Herring		reg = <0 0x0000000 0x1d000>;
150*724ba675SRob Herring		#address-cells = <1>;
151*724ba675SRob Herring		#size-cells = <1>;
152*724ba675SRob Herring		ranges = <0 0 0 0x1d000>;
153*724ba675SRob Herring
154*724ba675SRob Herring		syscon: syscon@10000 {
155*724ba675SRob Herring			compatible = "syscon", "simple-mfd";
156*724ba675SRob Herring			reg = <0x10000 0x3d>;
157*724ba675SRob Herring			reg-io-width = <2>;
158*724ba675SRob Herring
159*724ba675SRob Herring			wdt {
160*724ba675SRob Herring				compatible = "technologic,ts4800-wdt";
161*724ba675SRob Herring				syscon = <&syscon 0xe>;
162*724ba675SRob Herring			};
163*724ba675SRob Herring		};
164*724ba675SRob Herring
165*724ba675SRob Herring		touchscreen@12000 {
166*724ba675SRob Herring			compatible = "technologic,ts4800-ts";
167*724ba675SRob Herring			reg = <0x12000 0x1000>;
168*724ba675SRob Herring			syscon = <&syscon 0x10 6>;
169*724ba675SRob Herring		};
170*724ba675SRob Herring
171*724ba675SRob Herring		fpga_irqc: fpga-irqc@15000 {
172*724ba675SRob Herring			compatible = "technologic,ts4800-irqc";
173*724ba675SRob Herring			reg = <0x15000 0x1000>;
174*724ba675SRob Herring			pinctrl-names = "default";
175*724ba675SRob Herring			pinctrl-0 = <&pinctrl_interrupt_fpga>;
176*724ba675SRob Herring			interrupt-parent = <&gpio2>;
177*724ba675SRob Herring			interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
178*724ba675SRob Herring			interrupt-controller;
179*724ba675SRob Herring			#interrupt-cells = <1>;
180*724ba675SRob Herring		};
181*724ba675SRob Herring
182*724ba675SRob Herring		can@1a000 {
183*724ba675SRob Herring			compatible = "technologic,sja1000";
184*724ba675SRob Herring			reg = <0x1a000 0x100>;
185*724ba675SRob Herring			interrupt-parent = <&fpga_irqc>;
186*724ba675SRob Herring			interrupts = <1>;
187*724ba675SRob Herring			reg-io-width = <2>;
188*724ba675SRob Herring			nxp,tx-output-config = <0x06>;
189*724ba675SRob Herring			nxp,external-clock-frequency = <24000000>;
190*724ba675SRob Herring		};
191*724ba675SRob Herring	};
192*724ba675SRob Herring};
193*724ba675SRob Herring
194*724ba675SRob Herring&iomuxc {
195*724ba675SRob Herring	pinctrl_ecspi1: ecspi1grp {
196*724ba675SRob Herring		fsl,pins = <
197*724ba675SRob Herring			MX51_PAD_CSPI1_MISO__ECSPI1_MISO	0x185
198*724ba675SRob Herring			MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI	0x185
199*724ba675SRob Herring			MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK	0x185
200*724ba675SRob Herring			MX51_PAD_CSPI1_SS0__GPIO4_24		0x85 /* CS0 */
201*724ba675SRob Herring		>;
202*724ba675SRob Herring	};
203*724ba675SRob Herring
204*724ba675SRob Herring	pinctrl_enable_lcd: enablelcdgrp {
205*724ba675SRob Herring		fsl,pins = <
206*724ba675SRob Herring			MX51_PAD_CSI2_D12__GPIO4_9		0x1c5
207*724ba675SRob Herring		>;
208*724ba675SRob Herring	};
209*724ba675SRob Herring
210*724ba675SRob Herring	pinctrl_esdhc1: esdhc1grp {
211*724ba675SRob Herring		fsl,pins = <
212*724ba675SRob Herring			MX51_PAD_SD1_CMD__SD1_CMD		0x400020d5
213*724ba675SRob Herring			MX51_PAD_SD1_CLK__SD1_CLK		0x20d5
214*724ba675SRob Herring			MX51_PAD_SD1_DATA0__SD1_DATA0		0x20d5
215*724ba675SRob Herring			MX51_PAD_SD1_DATA1__SD1_DATA1		0x20d5
216*724ba675SRob Herring			MX51_PAD_SD1_DATA2__SD1_DATA2		0x20d5
217*724ba675SRob Herring			MX51_PAD_SD1_DATA3__SD1_DATA3		0x20d5
218*724ba675SRob Herring			MX51_PAD_GPIO1_0__GPIO1_0		0x100
219*724ba675SRob Herring			MX51_PAD_GPIO1_1__GPIO1_1		0x100
220*724ba675SRob Herring		>;
221*724ba675SRob Herring	};
222*724ba675SRob Herring
223*724ba675SRob Herring	pinctrl_fec: fecgrp {
224*724ba675SRob Herring		fsl,pins = <
225*724ba675SRob Herring			MX51_PAD_EIM_EB2__FEC_MDIO		0x000001f5
226*724ba675SRob Herring			MX51_PAD_EIM_EB3__FEC_RDATA1		0x00000085
227*724ba675SRob Herring			MX51_PAD_EIM_CS2__FEC_RDATA2		0x00000085
228*724ba675SRob Herring			MX51_PAD_EIM_CS3__FEC_RDATA3		0x00000085
229*724ba675SRob Herring			MX51_PAD_EIM_CS4__FEC_RX_ER		0x00000180
230*724ba675SRob Herring			MX51_PAD_EIM_CS5__FEC_CRS		0x00000180
231*724ba675SRob Herring			MX51_PAD_DISP2_DAT10__FEC_COL		0x00000180
232*724ba675SRob Herring			MX51_PAD_DISP2_DAT11__FEC_RX_CLK	0x00000180
233*724ba675SRob Herring			MX51_PAD_DISP2_DAT14__FEC_RDATA0	0x00002180
234*724ba675SRob Herring			MX51_PAD_DISP2_DAT15__FEC_TDATA0	0x00002004
235*724ba675SRob Herring			MX51_PAD_NANDF_CS2__FEC_TX_ER		0x00002004
236*724ba675SRob Herring			MX51_PAD_DI2_PIN2__FEC_MDC		0x00002004
237*724ba675SRob Herring			MX51_PAD_DISP2_DAT6__FEC_TDATA1		0x00002004
238*724ba675SRob Herring			MX51_PAD_DISP2_DAT7__FEC_TDATA2		0x00002004
239*724ba675SRob Herring			MX51_PAD_DISP2_DAT8__FEC_TDATA3		0x00002004
240*724ba675SRob Herring			MX51_PAD_DISP2_DAT9__FEC_TX_EN		0x00002004
241*724ba675SRob Herring			MX51_PAD_DISP2_DAT13__FEC_TX_CLK	0x00002180
242*724ba675SRob Herring			MX51_PAD_DISP2_DAT12__FEC_RX_DV		0x000020a4
243*724ba675SRob Herring			MX51_PAD_EIM_A20__GPIO2_14		0x00000085 /* Phy Reset */
244*724ba675SRob Herring		>;
245*724ba675SRob Herring	};
246*724ba675SRob Herring
247*724ba675SRob Herring	pinctrl_i2c2: i2c2grp {
248*724ba675SRob Herring		fsl,pins = <
249*724ba675SRob Herring			MX51_PAD_KEY_COL4__I2C2_SCL		0x400001ed
250*724ba675SRob Herring			MX51_PAD_KEY_COL5__I2C2_SDA		0x400001ed
251*724ba675SRob Herring		>;
252*724ba675SRob Herring	};
253*724ba675SRob Herring
254*724ba675SRob Herring	pinctrl_interrupt_fpga: fpgaicgrp {
255*724ba675SRob Herring		fsl,pins = <
256*724ba675SRob Herring			MX51_PAD_EIM_D27__GPIO2_9		0xe5
257*724ba675SRob Herring		>;
258*724ba675SRob Herring	};
259*724ba675SRob Herring
260*724ba675SRob Herring	pinctrl_lcd: lcdgrp {
261*724ba675SRob Herring		fsl,pins = <
262*724ba675SRob Herring			MX51_PAD_DISP1_DAT0__DISP1_DAT0		0x5
263*724ba675SRob Herring			MX51_PAD_DISP1_DAT1__DISP1_DAT1		0x5
264*724ba675SRob Herring			MX51_PAD_DISP1_DAT2__DISP1_DAT2		0x5
265*724ba675SRob Herring			MX51_PAD_DISP1_DAT3__DISP1_DAT3		0x5
266*724ba675SRob Herring			MX51_PAD_DISP1_DAT4__DISP1_DAT4		0x5
267*724ba675SRob Herring			MX51_PAD_DISP1_DAT5__DISP1_DAT5		0x5
268*724ba675SRob Herring			MX51_PAD_DISP1_DAT6__DISP1_DAT6		0x5
269*724ba675SRob Herring			MX51_PAD_DISP1_DAT7__DISP1_DAT7		0x5
270*724ba675SRob Herring			MX51_PAD_DISP1_DAT8__DISP1_DAT8		0x5
271*724ba675SRob Herring			MX51_PAD_DISP1_DAT9__DISP1_DAT9		0x5
272*724ba675SRob Herring			MX51_PAD_DISP1_DAT10__DISP1_DAT10	0x5
273*724ba675SRob Herring			MX51_PAD_DISP1_DAT11__DISP1_DAT11	0x5
274*724ba675SRob Herring			MX51_PAD_DISP1_DAT12__DISP1_DAT12	0x5
275*724ba675SRob Herring			MX51_PAD_DISP1_DAT13__DISP1_DAT13	0x5
276*724ba675SRob Herring			MX51_PAD_DISP1_DAT14__DISP1_DAT14	0x5
277*724ba675SRob Herring			MX51_PAD_DISP1_DAT15__DISP1_DAT15	0x5
278*724ba675SRob Herring			MX51_PAD_DISP1_DAT16__DISP1_DAT16	0x5
279*724ba675SRob Herring			MX51_PAD_DISP1_DAT17__DISP1_DAT17	0x5
280*724ba675SRob Herring			MX51_PAD_DISP1_DAT18__DISP1_DAT18	0x5
281*724ba675SRob Herring			MX51_PAD_DISP1_DAT19__DISP1_DAT19	0x5
282*724ba675SRob Herring			MX51_PAD_DISP1_DAT20__DISP1_DAT20	0x5
283*724ba675SRob Herring			MX51_PAD_DISP1_DAT21__DISP1_DAT21	0x5
284*724ba675SRob Herring			MX51_PAD_DISP1_DAT22__DISP1_DAT22	0x5
285*724ba675SRob Herring			MX51_PAD_DISP1_DAT23__DISP1_DAT23	0x5
286*724ba675SRob Herring			MX51_PAD_DI1_PIN2__DI1_PIN2		0x5
287*724ba675SRob Herring			MX51_PAD_DI1_PIN3__DI1_PIN3		0x5
288*724ba675SRob Herring			MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK	0x5
289*724ba675SRob Herring			MX51_PAD_DI_GP4__DI2_PIN15		0x5
290*724ba675SRob Herring		>;
291*724ba675SRob Herring	};
292*724ba675SRob Herring
293*724ba675SRob Herring	pinctrl_pwm_backlight: backlightgrp {
294*724ba675SRob Herring		fsl,pins = <
295*724ba675SRob Herring			MX51_PAD_GPIO1_2__PWM1_PWMO		0x80000000
296*724ba675SRob Herring		>;
297*724ba675SRob Herring	};
298*724ba675SRob Herring
299*724ba675SRob Herring	pinctrl_uart1: uart1grp {
300*724ba675SRob Herring		fsl,pins = <
301*724ba675SRob Herring			MX51_PAD_UART1_RXD__UART1_RXD		0x1c5
302*724ba675SRob Herring			MX51_PAD_UART1_TXD__UART1_TXD		0x1c5
303*724ba675SRob Herring		>;
304*724ba675SRob Herring	};
305*724ba675SRob Herring
306*724ba675SRob Herring	pinctrl_uart2: uart2grp {
307*724ba675SRob Herring		fsl,pins = <
308*724ba675SRob Herring			MX51_PAD_UART2_RXD__UART2_RXD		0x1c5
309*724ba675SRob Herring			MX51_PAD_UART2_TXD__UART2_TXD		0x1c5
310*724ba675SRob Herring		>;
311*724ba675SRob Herring	};
312*724ba675SRob Herring
313*724ba675SRob Herring	pinctrl_uart3: uart3grp {
314*724ba675SRob Herring		fsl,pins = <
315*724ba675SRob Herring			MX51_PAD_EIM_D25__UART3_RXD		0x1c5
316*724ba675SRob Herring			MX51_PAD_EIM_D26__UART3_TXD		0x1c5
317*724ba675SRob Herring		>;
318*724ba675SRob Herring	};
319*724ba675SRob Herring
320*724ba675SRob Herring	pinctrl_weim: weimgrp {
321*724ba675SRob Herring		fsl,pins = <
322*724ba675SRob Herring			MX51_PAD_EIM_DTACK__EIM_DTACK		0x85
323*724ba675SRob Herring			MX51_PAD_EIM_CS0__EIM_CS0		0x0
324*724ba675SRob Herring			MX51_PAD_EIM_CS1__EIM_CS1		0x0
325*724ba675SRob Herring			MX51_PAD_EIM_EB0__EIM_EB0		0x85
326*724ba675SRob Herring			MX51_PAD_EIM_EB1__EIM_EB1		0x85
327*724ba675SRob Herring			MX51_PAD_EIM_OE__EIM_OE			0x85
328*724ba675SRob Herring			MX51_PAD_EIM_LBA__EIM_LBA		0x85
329*724ba675SRob Herring		>;
330*724ba675SRob Herring	};
331*724ba675SRob Herring};
332