xref: /openbmc/u-boot/arch/arm/dts/stm32429i-eval.dts (revision 0093b3fc)
1/*
2 * Copyright (C) 2015, STMicroelectronics - All Rights Reserved
3 * Author: Maxime Coquelin <mcoquelin.stm32@gmail.com> for STMicroelectronics.
4 *
5 * SPDX-License-Identifier:	GPL-2.0+
6 */
7
8/dts-v1/;
9#include "stm32f429.dtsi"
10#include "stm32f429-pinctrl.dtsi"
11#include <dt-bindings/input/input.h>
12#include <dt-bindings/gpio/gpio.h>
13
14/ {
15	model = "STMicroelectronics STM32429i-EVAL board";
16	compatible = "st,stm32429i-eval", "st,stm32f429";
17
18	chosen {
19		bootargs = "root=/dev/ram";
20		stdout-path = "serial0:115200n8";
21	};
22
23	memory {
24		reg = <0x00000000 0x2000000>;
25	};
26
27	aliases {
28		serial0 = &usart1;
29	};
30
31	clocks {
32		clk_ext_camera: clk-ext-camera {
33			#clock-cells = <0>;
34			compatible = "fixed-clock";
35			clock-frequency = <24000000>;
36		};
37	};
38
39	soc {
40		dma-ranges = <0xc0000000 0x0 0x10000000>;
41	};
42
43	regulators {
44		compatible = "simple-bus";
45		#address-cells = <1>;
46		#size-cells = <0>;
47
48		reg_vref: regulator@0 {
49			compatible = "regulator-fixed";
50			reg = <0>;
51			regulator-name = "vref";
52			regulator-min-microvolt = <3300000>;
53			regulator-max-microvolt = <3300000>;
54		};
55	};
56
57	leds {
58		compatible = "gpio-leds";
59		green {
60			gpios = <&gpiog 6 1>;
61			linux,default-trigger = "heartbeat";
62		};
63		orange {
64			gpios = <&gpiog 7 1>;
65		};
66		red {
67			gpios = <&gpiog 10 1>;
68		};
69		blue {
70			gpios = <&gpiog 12 1>;
71		};
72	};
73
74	gpio_keys {
75		compatible = "gpio-keys";
76		#address-cells = <1>;
77		#size-cells = <0>;
78		autorepeat;
79		button@0 {
80			label = "Wake up";
81			linux,code = <KEY_WAKEUP>;
82			gpios = <&gpioa 0 0>;
83		};
84		button@1 {
85			label = "Tamper";
86			linux,code = <KEY_RESTART>;
87			gpios = <&gpioc 13 0>;
88		};
89	};
90
91	usbotg_hs_phy: usbphy {
92		#phy-cells = <0>;
93		compatible = "usb-nop-xceiv";
94		clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHSULPI)>;
95		clock-names = "main_clk";
96	};
97
98	panel_rgb: panel-rgb {
99		compatible = "ampire,am-480272h3tmqw-t01h";
100		status = "okay";
101		port {
102			panel_in_rgb: endpoint {
103				remote-endpoint = <&ltdc_out_rgb>;
104			};
105		};
106	};
107
108	mmc_vcard: mmc_vcard {
109		compatible = "regulator-fixed";
110		regulator-name = "mmc_vcard";
111		regulator-min-microvolt = <3300000>;
112		regulator-max-microvolt = <3300000>;
113	};
114};
115
116&adc {
117	pinctrl-names = "default";
118	pinctrl-0 = <&adc3_in8_pin>;
119	vref-supply = <&reg_vref>;
120	status = "okay";
121	adc3: adc@200 {
122		st,adc-channels = <8>;
123		status = "okay";
124	};
125};
126
127&clk_hse {
128	clock-frequency = <25000000>;
129};
130
131&crc {
132	status = "okay";
133};
134
135&dcmi {
136	status = "okay";
137
138	port {
139		dcmi_0: endpoint {
140			remote-endpoint = <&ov2640_0>;
141			bus-width = <8>;
142			hsync-active = <0>;
143			vsync-active = <0>;
144			pclk-sample = <1>;
145		};
146	};
147};
148
149&i2c1 {
150	pinctrl-0 = <&i2c1_pins>;
151	pinctrl-names = "default";
152	status = "okay";
153
154	ov2640: camera@30 {
155		compatible = "ovti,ov2640";
156		reg = <0x30>;
157		resetb-gpios = <&stmpegpio 2 GPIO_ACTIVE_HIGH>;
158		pwdn-gpios = <&stmpegpio 0 GPIO_ACTIVE_LOW>;
159		clocks = <&clk_ext_camera>;
160		clock-names = "xvclk";
161		status = "okay";
162
163		port {
164			ov2640_0: endpoint {
165				remote-endpoint = <&dcmi_0>;
166			};
167		};
168	};
169
170	stmpe1600: stmpe1600@42 {
171		compatible = "st,stmpe1600";
172		reg = <0x42>;
173		interrupts = <8 3>;
174		interrupt-parent = <&gpioi>;
175		interrupt-controller;
176		wakeup-source;
177
178		stmpegpio: stmpe_gpio {
179			compatible = "st,stmpe-gpio";
180			gpio-controller;
181			#gpio-cells = <2>;
182		};
183	};
184};
185
186&iwdg {
187	status = "okay";
188	timeout-sec = <32>;
189};
190
191&ltdc {
192	status = "okay";
193	pinctrl-0 = <&ltdc_pins>;
194	pinctrl-names = "default";
195	dma-ranges;
196
197	port {
198		ltdc_out_rgb: endpoint {
199			remote-endpoint = <&panel_in_rgb>;
200		};
201	};
202};
203
204&mac {
205	status = "okay";
206	pinctrl-0	= <&ethernet_mii>;
207	pinctrl-names	= "default";
208	phy-mode	= "mii";
209	phy-handle	= <&phy1>;
210	mdio0 {
211		#address-cells = <1>;
212		#size-cells = <0>;
213		compatible = "snps,dwmac-mdio";
214		phy1: ethernet-phy@1 {
215			reg = <1>;
216		};
217	};
218};
219
220&rtc {
221	status = "okay";
222};
223
224&sdio {
225	status = "okay";
226	vmmc-supply = <&mmc_vcard>;
227	cd-gpios = <&stmpegpio 15 GPIO_ACTIVE_HIGH>;
228	cd-inverted;
229	pinctrl-names = "default", "opendrain";
230	pinctrl-0 = <&sdio_pins>;
231	pinctrl-1 = <&sdio_pins_od>;
232	bus-width = <4>;
233};
234
235&timers1 {
236	status = "okay";
237
238	pwm {
239		pinctrl-0 = <&pwm1_pins>;
240		pinctrl-names = "default";
241		status = "okay";
242	};
243
244	timer@0 {
245		status = "okay";
246	};
247};
248
249&timers3 {
250	status = "okay";
251
252	pwm {
253		pinctrl-0 = <&pwm3_pins>;
254		pinctrl-names = "default";
255		status = "okay";
256	};
257
258	timer@2 {
259		status = "okay";
260	};
261};
262
263&usart1 {
264	pinctrl-0 = <&usart1_pins_a>;
265	pinctrl-names = "default";
266	status = "okay";
267};
268
269&usbotg_hs {
270	dr_mode = "host";
271	phys = <&usbotg_hs_phy>;
272	phy-names = "usb2-phy";
273	pinctrl-0 = <&usbotg_hs_pins_a>;
274	pinctrl-names = "default";
275	status = "okay";
276};
277