1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright 2017 Toradex AG
4 */
5
6/ {
7	chosen {
8		stdout-path = "serial0:115200n8";
9	};
10
11	/* fixed crystal dedicated to mcp2515 */
12	clk16m: clk16m {
13		compatible = "fixed-clock";
14		#clock-cells = <0>;
15		clock-frequency = <16000000>;
16	};
17
18	panel: panel {
19		compatible = "edt,et057090dhu";
20		backlight = <&bl>;
21		power-supply = <&reg_3v3>;
22
23		port {
24			panel_in: endpoint {
25				remote-endpoint = <&lcdif_out>;
26			};
27		};
28	};
29
30	reg_3v3: regulator-3v3 {
31		compatible = "regulator-fixed";
32		regulator-name = "3.3V";
33		regulator-min-microvolt = <3300000>;
34		regulator-max-microvolt = <3300000>;
35	};
36
37	reg_5v0: regulator-5v0 {
38		compatible = "regulator-fixed";
39		regulator-name = "5V";
40		regulator-min-microvolt = <5000000>;
41		regulator-max-microvolt = <5000000>;
42	};
43
44	reg_usbh_vbus: regulator-usbh-vbus {
45		compatible = "regulator-fixed";
46		pinctrl-names = "default";
47		pinctrl-0 = <&pinctrl_usbh_reg>;
48		regulator-name = "VCC_USB[1-4]";
49		regulator-min-microvolt = <5000000>;
50		regulator-max-microvolt = <5000000>;
51		gpio = <&gpio1 2 GPIO_ACTIVE_LOW>;
52		vin-supply = <&reg_5v0>;
53	};
54};
55
56&adc1 {
57	status = "okay";
58};
59
60&bl {
61	brightness-levels = <0 4 8 16 32 64 128 255>;
62	default-brightness-level = <6>;
63	power-supply = <&reg_3v3>;
64	pwms = <&pwm4 0 5000000 1>;
65	status = "okay";
66};
67
68&ecspi1 {
69	status = "okay";
70
71	mcp2515: can@0 {
72		compatible = "microchip,mcp2515";
73		pinctrl-names = "default";
74		pinctrl-0 = <&pinctrl_can_int>;
75		reg = <0>;
76		clocks = <&clk16m>;
77		interrupt-parent = <&gpio2>;
78		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
79		spi-max-frequency = <10000000>;
80		vdd-supply = <&reg_3v3>;
81		xceiver-supply = <&reg_5v0>;
82		status = "okay";
83	};
84};
85
86&i2c1 {
87	status = "okay";
88
89	/* M41T0M6 real time clock on carrier board */
90	m41t0m6: rtc@68 {
91		compatible = "st,m41t0";
92		reg = <0x68>;
93	};
94};
95
96&lcdif {
97	status = "okay";
98
99	port {
100		lcdif_out: endpoint {
101			remote-endpoint = <&panel_in>;
102		};
103	};
104};
105
106/* PWM <A> */
107&pwm4 {
108	status = "okay";
109};
110
111/* PWM <B> */
112&pwm5 {
113	status = "okay";
114};
115
116/* PWM <C> */
117&pwm6 {
118	status = "okay";
119};
120
121/* PWM <D> */
122&pwm7 {
123	status = "okay";
124};
125
126&uart1 {
127	status = "okay";
128};
129
130&uart2 {
131	status = "okay";
132};
133
134&uart5 {
135	status = "okay";
136};
137
138&usbotg1 {
139	status = "okay";
140};
141
142&usbotg2 {
143	vbus-supply = <&reg_usbh_vbus>;
144	status = "okay";
145};
146
147&usdhc1 {
148	pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
149	pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_snvs_usdhc1_cd>;
150	pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_snvs_usdhc1_cd>;
151	pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_snvs_usdhc1_cd>;
152	pinctrl-3 = <&pinctrl_usdhc1 &pinctrl_snvs_usdhc1_sleep_cd>;
153	cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
154	disable-wp;
155	wakeup-source;
156	keep-power-in-suspend;
157	vmmc-supply = <&reg_3v3>;
158	vqmmc-supply = <&reg_sd1_vmmc>;
159	sd-uhs-sdr12;
160	sd-uhs-sdr25;
161	sd-uhs-sdr50;
162	sd-uhs-sdr104;
163	status = "okay";
164};
165