xref: /linux/arch/arm/boot/dts/nxp/imx/imx27-phytec-phycore-rdk.dts (revision e948cbdc41d6f4417586b4058bf818afcc255d3d)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 */
4
5#include "imx27-phytec-phycore-som.dtsi"
6
7/ {
8	model = "Phytec pcm970";
9	compatible = "phytec,imx27-pcm970", "phytec,imx27-pcm038", "fsl,imx27";
10
11	chosen {
12		stdout-path = &uart1;
13	};
14
15	display0: LQ035Q7 {
16		model = "Sharp-LQ035Q7";
17		bits-per-pixel = <16>;
18		fsl,pcr = <0xf00080c0>;
19
20		display-timings {
21			native-mode = <&timing0>;
22			timing0: timing0 {
23				clock-frequency = <5500000>;
24				hactive = <240>;
25				vactive = <320>;
26				hback-porch = <5>;
27				hsync-len = <7>;
28				hfront-porch = <16>;
29				vback-porch = <7>;
30				vsync-len = <1>;
31				vfront-porch = <9>;
32				pixelclk-active = <1>;
33				hsync-active = <1>;
34				vsync-active = <1>;
35				de-active = <0>;
36			};
37		};
38	};
39
40	regulator-2 {
41		compatible = "regulator-fixed";
42		pinctrl-names = "default";
43		pinctrl-0 = <&pinctrl_csien>;
44		regulator-name = "CSI_EN";
45		regulator-min-microvolt = <3300000>;
46		regulator-max-microvolt = <3300000>;
47		gpio = <&gpio2 24 GPIO_ACTIVE_LOW>;
48		regulator-always-on;
49	};
50
51	usbphy2: usbphy {
52		compatible = "usb-nop-xceiv";
53		vcc-supply = <&reg_5v0>;
54		clocks = <&clks IMX27_CLK_DUMMY>;
55		clock-names = "main_clk";
56		#phy-cells = <0>;
57	};
58};
59
60&cspi1 {
61	pinctrl-0 = <&pinctrl_cspi1>, <&pinctrl_cspi1cs1>;
62	cs-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>,
63		   <&gpio4 27 GPIO_ACTIVE_LOW>;
64};
65
66&fb {
67	pinctrl-names = "default";
68	pinctrl-0 = <&pinctrl_imxfb1>;
69	display = <&display0>;
70	lcd-supply = <&reg_5v0>;
71	fsl,dmacr = <0x00020010>;
72	fsl,lscr1 = <0x00120300>;
73	fsl,lpccr = <0x00a903ff>;
74	status = "okay";
75};
76
77&i2c1 {
78	clock-frequency = <400000>;
79	pinctrl-names = "default";
80	pinctrl-0 = <&pinctrl_i2c1>;
81	status = "okay";
82
83	camgpio: pca9536@41 {
84		compatible = "nxp,pca9536";
85		reg = <0x41>;
86		gpio-controller;
87		#gpio-cells = <2>;
88	};
89};
90
91&iomuxc {
92	pinctrl_csien: csiengrp {
93		fsl,pins = <
94			MX27_PAD_USB_OC_B__GPIO2_24 0x0
95		>;
96	};
97
98	pinctrl_cspi1cs1: cspi1cs1grp {
99		fsl,pins = <
100			MX27_PAD_CSPI1_SS1__GPIO4_27 0x0
101		>;
102	};
103
104	pinctrl_imxfb1: imxfbgrp {
105		fsl,pins = <
106			MX27_PAD_LD0__LD0 0x0
107			MX27_PAD_LD1__LD1 0x0
108			MX27_PAD_LD2__LD2 0x0
109			MX27_PAD_LD3__LD3 0x0
110			MX27_PAD_LD4__LD4 0x0
111			MX27_PAD_LD5__LD5 0x0
112			MX27_PAD_LD6__LD6 0x0
113			MX27_PAD_LD7__LD7 0x0
114			MX27_PAD_LD8__LD8 0x0
115			MX27_PAD_LD9__LD9 0x0
116			MX27_PAD_LD10__LD10 0x0
117			MX27_PAD_LD11__LD11 0x0
118			MX27_PAD_LD12__LD12 0x0
119			MX27_PAD_LD13__LD13 0x0
120			MX27_PAD_LD14__LD14 0x0
121			MX27_PAD_LD15__LD15 0x0
122			MX27_PAD_LD16__LD16 0x0
123			MX27_PAD_LD17__LD17 0x0
124			MX27_PAD_CLS__CLS 0x0
125			MX27_PAD_CONTRAST__CONTRAST 0x0
126			MX27_PAD_LSCLK__LSCLK 0x0
127			MX27_PAD_OE_ACD__OE_ACD 0x0
128			MX27_PAD_PS__PS 0x0
129			MX27_PAD_REV__REV 0x0
130			MX27_PAD_SPL_SPR__SPL_SPR 0x0
131			MX27_PAD_HSYNC__HSYNC 0x0
132			MX27_PAD_VSYNC__VSYNC 0x0
133		>;
134	};
135
136	pinctrl_i2c1: i2c1grp {
137		/* Add pullup to DATA line */
138		fsl,pins = <
139			MX27_PAD_I2C_DATA__I2C_DATA	0x1
140			MX27_PAD_I2C_CLK__I2C_CLK	0x0
141		>;
142	};
143
144	pinctrl_owire1: owire1grp {
145		fsl,pins = <
146			MX27_PAD_RTCK__OWIRE 0x0
147		>;
148	};
149
150	pinctrl_sdhc2: sdhc2grp {
151		fsl,pins = <
152			MX27_PAD_SD2_CLK__SD2_CLK 0x0
153			MX27_PAD_SD2_CMD__SD2_CMD 0x0
154			MX27_PAD_SD2_D0__SD2_D0 0x0
155			MX27_PAD_SD2_D1__SD2_D1 0x0
156			MX27_PAD_SD2_D2__SD2_D2 0x0
157			MX27_PAD_SD2_D3__SD2_D3 0x0
158			MX27_PAD_SSI3_FS__GPIO3_28	0x0 /* WP */
159			MX27_PAD_SSI3_RXDAT__GPIO3_29	0x0 /* CD */
160		>;
161	};
162
163	pinctrl_uart1: uart1grp {
164		fsl,pins = <
165			MX27_PAD_UART1_TXD__UART1_TXD 0x0
166			MX27_PAD_UART1_RXD__UART1_RXD 0x0
167			MX27_PAD_UART1_CTS__UART1_CTS 0x0
168			MX27_PAD_UART1_RTS__UART1_RTS 0x0
169		>;
170	};
171
172	pinctrl_uart2: uart2grp {
173		fsl,pins = <
174			MX27_PAD_UART2_TXD__UART2_TXD 0x0
175			MX27_PAD_UART2_RXD__UART2_RXD 0x0
176			MX27_PAD_UART2_CTS__UART2_CTS 0x0
177			MX27_PAD_UART2_RTS__UART2_RTS 0x0
178		>;
179	};
180
181	pinctrl_usbh2: usbh2grp {
182		fsl,pins = <
183			MX27_PAD_USBH2_CLK__USBH2_CLK 0x0
184			MX27_PAD_USBH2_DIR__USBH2_DIR 0x0
185			MX27_PAD_USBH2_NXT__USBH2_NXT 0x0
186			MX27_PAD_USBH2_STP__USBH2_STP 0x0
187			MX27_PAD_CSPI2_SCLK__USBH2_DATA0 0x0
188			MX27_PAD_CSPI2_MOSI__USBH2_DATA1 0x0
189			MX27_PAD_CSPI2_MISO__USBH2_DATA2 0x0
190			MX27_PAD_CSPI2_SS1__USBH2_DATA3 0x0
191			MX27_PAD_CSPI2_SS2__USBH2_DATA4 0x0
192			MX27_PAD_CSPI1_SS2__USBH2_DATA5 0x0
193			MX27_PAD_CSPI2_SS0__USBH2_DATA6 0x0
194			MX27_PAD_USBH2_DATA7__USBH2_DATA7 0x0
195		>;
196	};
197
198	pinctrl_weim: weimgrp {
199		fsl,pins = <
200			MX27_PAD_CS4_B__CS4_B		0x0 /* CS4 */
201			MX27_PAD_SD1_D1__GPIO5_19	0x0 /* CAN IRQ */
202		>;
203	};
204};
205
206&owire {
207	pinctrl-names = "default";
208	pinctrl-0 = <&pinctrl_owire1>;
209	status = "okay";
210};
211
212&pmicleds {
213	ledr1: led@3 {
214		reg = <3>;
215		label = "system:red1:user";
216	};
217
218	ledg1: led@4 {
219		reg = <4>;
220		label = "system:green1:user";
221	};
222
223	ledb1: led@5 {
224		reg = <5>;
225		label = "system:blue1:user";
226	};
227
228	ledr2: led@6 {
229		reg = <6>;
230		label = "system:red2:user";
231	};
232
233	ledg2: led@7 {
234		reg = <7>;
235		label = "system:green2:user";
236	};
237
238	ledb2: led@8 {
239		reg = <8>;
240		label = "system:blue2:user";
241	};
242
243	ledr3: led@9 {
244		reg = <9>;
245		label = "system:red3:nand";
246		linux,default-trigger = "nand-disk";
247	};
248
249	ledg3: led@a {
250		reg = <0xa>;
251		label = "system:green3:live";
252		linux,default-trigger = "heartbeat";
253	};
254
255	ledb3: led@b {
256		reg = <0xb>;
257		label = "system:blue3:cpu";
258		linux,default-trigger = "cpu0";
259	};
260};
261
262&sdhci2 {
263	pinctrl-names = "default";
264	pinctrl-0 = <&pinctrl_sdhc2>;
265	bus-width = <4>;
266	cd-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
267	wp-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
268	vmmc-supply = <&vmmc1_reg>;
269	status = "okay";
270};
271
272&uart1 {
273	uart-has-rtscts;
274	pinctrl-names = "default";
275	pinctrl-0 = <&pinctrl_uart1>;
276	status = "okay";
277};
278
279&uart2 {
280	uart-has-rtscts;
281	pinctrl-names = "default";
282	pinctrl-0 = <&pinctrl_uart2>;
283	status = "okay";
284};
285
286&usbh2 {
287	pinctrl-names = "default";
288	pinctrl-0 = <&pinctrl_usbh2>;
289	dr_mode = "host";
290	phy_type = "ulpi";
291	vbus-supply = <&reg_5v0>;
292	fsl,usbphy = <&usbphy2>;
293	disable-over-current;
294	status = "okay";
295};
296
297&weim {
298	pinctrl-names = "default";
299	pinctrl-0 = <&pinctrl_weim>;
300
301	can@4,0 {
302		compatible = "nxp,sja1000";
303		reg = <4 0x00000000 0x00000100>;
304		interrupt-parent = <&gpio5>;
305		interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
306		nxp,external-clock-frequency = <16000000>;
307		nxp,tx-output-config = <0x16>;
308		nxp,no-comparator-bypass;
309		fsl,weim-cs-timing = <0x0000dcf6 0x444a0301 0x44443302>;
310	};
311};
312