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