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