1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright (C) 2014 Alexander Shiyan <shc_work@mail.ru>
4 */
5
6#include "imx27-eukrea-cpuimx27.dtsi"
7
8/ {
9	model = "Eukrea MBIMXSD27";
10	compatible = "eukrea,mbimxsd27-baseboard", "eukrea,cpuimx27", "fsl,imx27";
11
12	display0: CMO-QVGA {
13		model = "CMO-QVGA";
14		bits-per-pixel = <16>;
15		fsl,pcr = <0xfad08b80>;
16
17		display-timings {
18			native-mode = <&timing0>;
19			timing0: 320x240 {
20				clock-frequency = <6500000>;
21				hactive = <320>;
22				vactive = <240>;
23				hback-porch = <20>;
24				hsync-len = <30>;
25				hfront-porch = <38>;
26				vback-porch = <4>;
27				vsync-len = <3>;
28				vfront-porch = <15>;
29			};
30		};
31	};
32
33	backlight {
34		compatible = "gpio-backlight";
35		pinctrl-names = "default";
36		pinctrl-0 = <&pinctrl_backlight>;
37		gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
38	};
39
40	leds {
41		compatible = "gpio-leds";
42		pinctrl-names = "default";
43		pinctrl-0 = <&pinctrl_gpioleds>;
44
45		led1 {
46			label = "system::live";
47			gpios = <&gpio6 16 GPIO_ACTIVE_LOW>;
48			linux,default-trigger = "heartbeat";
49		};
50
51		led2 {
52			label = "system::user";
53			gpios = <&gpio6 19 GPIO_ACTIVE_LOW>;
54		};
55	};
56
57	reg_lcd: regulator-0 {
58		compatible = "regulator-fixed";
59		pinctrl-names = "default";
60		pinctrl-0 = <&pinctrl_lcdreg>;
61		regulator-name = "LCD";
62		regulator-min-microvolt = <5000000>;
63		regulator-max-microvolt = <5000000>;
64		gpio = <&gpio1 25 GPIO_ACTIVE_HIGH>;
65		enable-active-high;
66	};
67};
68
69&cspi1 {
70	pinctrl-0 = <&pinctrl_cspi1>;
71	cs-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
72	status = "okay";
73
74	ads7846@0 {
75		compatible = "ti,ads7846";
76		pinctrl-names = "default";
77		pinctrl-0 = <&pinctrl_touch>;
78		reg = <0>;
79		interrupts = <&gpio4 25 IRQ_TYPE_LEVEL_LOW>;
80		spi-cpol;
81		spi-max-frequency = <1500000>;
82		ti,keep-vref-on;
83	};
84};
85
86&fb {
87	pinctrl-names = "default";
88	pinctrl-0 = <&pinctrl_imxfb>;
89	display = <&display0>;
90	lcd-supply = <&reg_lcd>;
91	fsl,dmacr = <0x00040060>;
92	fsl,lscr1 = <0x00120300>;
93	fsl,lpccr = <0x00a903ff>;
94	status = "okay";
95};
96
97&i2c1 {
98	codec: codec@1a {
99		compatible = "ti,tlv320aic23";
100		reg = <0x1a>;
101	};
102};
103
104&kpp {
105	linux,keymap = <
106		MATRIX_KEY(0, 0, KEY_UP)
107		MATRIX_KEY(0, 1, KEY_DOWN)
108		MATRIX_KEY(1, 0, KEY_RIGHT)
109		MATRIX_KEY(1, 1, KEY_LEFT)
110	>;
111	status = "okay";
112};
113
114&sdhci1 {
115	pinctrl-names = "default";
116	pinctrl-0 = <&pinctrl_sdhc1>;
117	bus-width = <4>;
118	status = "okay";
119};
120
121&ssi1 {
122	pinctrl-names = "default";
123	pinctrl-0 = <&pinctrl_ssi1>;
124	codec-handle = <&codec>;
125	status = "okay";
126};
127
128&uart1 {
129	uart-has-rtscts;
130	pinctrl-names = "default";
131	pinctrl-0 = <&pinctrl_uart1>;
132	status = "okay";
133};
134
135&uart2 {
136	uart-has-rtscts;
137	pinctrl-names = "default";
138	pinctrl-0 = <&pinctrl_uart2>;
139	status = "okay";
140};
141
142&uart3 {
143	uart-has-rtscts;
144	pinctrl-names = "default";
145	pinctrl-0 = <&pinctrl_uart3>;
146	status = "okay";
147};
148
149&iomuxc {
150	imx27-eukrea-cpuimx27-baseboard {
151		pinctrl_cspi1: cspi1grp {
152			fsl,pins = <
153				MX27_PAD_CSPI1_MISO__CSPI1_MISO	0x0
154				MX27_PAD_CSPI1_MOSI__CSPI1_MOSI	0x0
155				MX27_PAD_CSPI1_SCLK__CSPI1_SCLK	0x0
156				MX27_PAD_CSPI1_SS0__GPIO4_28	0x0 /* CS0 */
157			>;
158		};
159
160		pinctrl_backlight: backlightgrp {
161			fsl,pins = <
162				MX27_PAD_PWMO__GPIO5_5		0x0
163			>;
164		};
165
166		pinctrl_gpioleds: gpioledsgrp {
167			fsl,pins = <
168				MX27_PAD_PC_PWRON__GPIO6_16	0x0
169				MX27_PAD_PC_CD2_B__GPIO6_19	0x0
170			>;
171		};
172
173		pinctrl_imxfb: imxfbgrp {
174			fsl,pins = <
175				MX27_PAD_LD0__LD0		0x0
176				MX27_PAD_LD1__LD1		0x0
177				MX27_PAD_LD2__LD2		0x0
178				MX27_PAD_LD3__LD3		0x0
179				MX27_PAD_LD4__LD4		0x0
180				MX27_PAD_LD5__LD5		0x0
181				MX27_PAD_LD6__LD6		0x0
182				MX27_PAD_LD7__LD7		0x0
183				MX27_PAD_LD8__LD8		0x0
184				MX27_PAD_LD9__LD9		0x0
185				MX27_PAD_LD10__LD10		0x0
186				MX27_PAD_LD11__LD11		0x0
187				MX27_PAD_LD12__LD12		0x0
188				MX27_PAD_LD13__LD13		0x0
189				MX27_PAD_LD14__LD14		0x0
190				MX27_PAD_LD15__LD15		0x0
191				MX27_PAD_LD16__LD16		0x0
192				MX27_PAD_LD17__LD17		0x0
193				MX27_PAD_CONTRAST__CONTRAST	0x0
194				MX27_PAD_OE_ACD__OE_ACD		0x0
195				MX27_PAD_HSYNC__HSYNC		0x0
196				MX27_PAD_VSYNC__VSYNC		0x0
197			>;
198		};
199
200		pinctrl_lcdreg: lcdreggrp {
201			fsl,pins = <
202				MX27_PAD_CLS__GPIO1_25		0x0
203			>;
204		};
205
206		pinctrl_sdhc1: sdhc1grp {
207			fsl,pins = <
208				MX27_PAD_SD1_CLK__SD1_CLK	0x0
209				MX27_PAD_SD1_CMD__SD1_CMD	0x0
210				MX27_PAD_SD1_D0__SD1_D0		0x0
211				MX27_PAD_SD1_D1__SD1_D1		0x0
212				MX27_PAD_SD1_D2__SD1_D2		0x0
213				MX27_PAD_SD1_D3__SD1_D3		0x0
214			>;
215		};
216
217		pinctrl_ssi1: ssi1grp {
218			fsl,pins = <
219				MX27_PAD_SSI4_CLK__SSI4_CLK	0x0
220				MX27_PAD_SSI4_FS__SSI4_FS	0x0
221				MX27_PAD_SSI4_RXDAT__SSI4_RXDAT	0x1
222				MX27_PAD_SSI4_TXDAT__SSI4_TXDAT	0x1
223			>;
224		};
225
226		pinctrl_touch: touchgrp {
227			fsl,pins = <
228				MX27_PAD_CSPI1_RDY__GPIO4_25	0x0 /* IRQ */
229			>;
230		};
231
232		pinctrl_uart1: uart1grp {
233			fsl,pins = <
234				MX27_PAD_UART1_TXD__UART1_TXD	0x0
235				MX27_PAD_UART1_RXD__UART1_RXD	0x0
236				MX27_PAD_UART1_CTS__UART1_CTS	0x0
237				MX27_PAD_UART1_RTS__UART1_RTS	0x0
238			>;
239		};
240
241		pinctrl_uart2: uart2grp {
242			fsl,pins = <
243				MX27_PAD_UART2_TXD__UART2_TXD	0x0
244				MX27_PAD_UART2_RXD__UART2_RXD	0x0
245				MX27_PAD_UART2_CTS__UART2_CTS	0x0
246				MX27_PAD_UART2_RTS__UART2_RTS	0x0
247			>;
248		};
249
250		pinctrl_uart3: uart3grp {
251			fsl,pins = <
252				MX27_PAD_UART3_TXD__UART3_TXD	0x0
253				MX27_PAD_UART3_RXD__UART3_RXD	0x0
254				MX27_PAD_UART3_CTS__UART3_CTS	0x0
255				MX27_PAD_UART3_RTS__UART3_RTS	0x0
256			>;
257		};
258	};
259};
260