1// SPDX-License-Identifier: GPL-2.0+ OR MIT
2/*
3 * Copyright 2016-2020 Toradex
4 */
5
6/ {
7	aliases {
8		rtc0 = &rtc;
9		rtc1 = &snvs_rtc;
10	};
11
12	chosen {
13		stdout-path = "serial0:115200n8";
14	};
15
16	/* fixed crystal dedicated to mpc258x */
17	clk16m: clk16m {
18		compatible = "fixed-clock";
19		#clock-cells = <0>;
20		clock-frequency = <16000000>;
21	};
22
23	gpio-keys {
24		compatible = "gpio-keys";
25		pinctrl-names = "default";
26		pinctrl-0 = <&pinctrl_gpiokeys>;
27
28		power {
29			label = "Wake-Up";
30			gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
31			linux,code = <KEY_WAKEUP>;
32			debounce-interval = <10>;
33			wakeup-source;
34		};
35	};
36
37	panel: panel {
38		compatible = "edt,et057090dhu";
39		backlight = <&bl>;
40		power-supply = <&reg_3v3>;
41
42		port {
43			panel_in: endpoint {
44				remote-endpoint = <&lcdif_out>;
45			};
46		};
47	};
48
49	reg_3v3: regulator-3v3 {
50		compatible = "regulator-fixed";
51		regulator-name = "3.3V";
52		regulator-min-microvolt = <3300000>;
53		regulator-max-microvolt = <3300000>;
54	};
55
56	reg_5v0: regulator-5v0 {
57		compatible = "regulator-fixed";
58		regulator-name = "5V";
59		regulator-min-microvolt = <5000000>;
60		regulator-max-microvolt = <5000000>;
61	};
62
63	reg_usbh_vbus: regulator-usbh-vbus {
64		compatible = "regulator-fixed";
65		pinctrl-names = "default";
66		pinctrl-0 = <&pinctrl_usbh_reg>;
67		regulator-name = "VCC_USB[1-4]";
68		regulator-min-microvolt = <5000000>;
69		regulator-max-microvolt = <5000000>;
70		gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
71		vin-supply = <&reg_5v0>;
72	};
73};
74
75&bl {
76	brightness-levels = <0 4 8 16 32 64 128 255>;
77	default-brightness-level = <6>;
78	power-supply = <&reg_3v3>;
79
80	status = "okay";
81};
82
83&adc1 {
84	status = "okay";
85};
86
87&adc2 {
88	status = "okay";
89};
90
91&ecspi3 {
92	status = "okay";
93
94	mcp2515: can@0 {
95		compatible = "microchip,mcp2515";
96		pinctrl-names = "default";
97		pinctrl-0 = <&pinctrl_can_int>;
98		reg = <0>;
99		clocks = <&clk16m>;
100		interrupt-parent = <&gpio5>;
101		interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
102		spi-max-frequency = <10000000>;
103		vdd-supply = <&reg_3v3>;
104		xceiver-supply = <&reg_5v0>;
105		status = "okay";
106	};
107};
108
109&fec1 {
110	status = "okay";
111};
112
113&i2c4 {
114	status = "okay";
115
116	/*
117	 * Touchscreen is using SODIMM 28/30, also used for PWM<B>, PWM<C>,
118	 * aka pwm2, pwm3. so if you enable touchscreen, disable the pwms
119	 */
120	touchscreen@4a {
121		compatible = "atmel,maxtouch";
122		pinctrl-names = "default";
123		pinctrl-0 = <&pinctrl_gpiotouch>;
124		reg = <0x4a>;
125		interrupt-parent = <&gpio1>;
126		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;		/* SODIMM 28 */
127		reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;	/* SODIMM 30 */
128		status = "disabled";
129	};
130
131	/* M41T0M6 real time clock on carrier board */
132	rtc: m41t0m6@68 {
133		compatible = "st,m41t0";
134		reg = <0x68>;
135	};
136};
137
138&lcdif {
139	status = "okay";
140
141	port {
142		lcdif_out: endpoint {
143			remote-endpoint = <&panel_in>;
144		};
145	};
146};
147
148&pwm1 {
149	status = "okay";
150};
151
152&pwm2 {
153	status = "okay";
154};
155
156&pwm3 {
157	status = "okay";
158};
159
160&pwm4 {
161	status = "okay";
162};
163
164&uart1 {
165	status = "okay";
166};
167
168&uart2 {
169	status = "okay";
170};
171
172&uart3 {
173	status = "okay";
174};
175
176&usbotg1 {
177	status = "okay";
178};
179
180&usdhc1 {
181	keep-power-in-suspend;
182	wakeup-source;
183	vmmc-supply = <&reg_3v3>;
184	status = "okay";
185};
186
187&iomuxc {
188	pinctrl_gpiotouch: touchgpios {
189		fsl,pins = <
190			MX7D_PAD_GPIO1_IO09__GPIO1_IO9		0x74
191			MX7D_PAD_GPIO1_IO10__GPIO1_IO10		0x14
192		>;
193	};
194};
195