Merge branch 'master' of git://git.denx.de/u-boot-video
[oweals/u-boot.git] / arch / arm / dts / stm32429i-eval.dts
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_LOW>;
227         pinctrl-names = "default", "opendrain";
228         pinctrl-0 = <&sdio_pins>;
229         pinctrl-1 = <&sdio_pins_od>;
230         bus-width = <4>;
231         max-frequency = <14000000>;
232 };
233
234 &timers1 {
235         status = "okay";
236
237         pwm {
238                 pinctrl-0 = <&pwm1_pins>;
239                 pinctrl-names = "default";
240                 status = "okay";
241         };
242
243         timer@0 {
244                 status = "okay";
245         };
246 };
247
248 &timers3 {
249         status = "okay";
250
251         pwm {
252                 pinctrl-0 = <&pwm3_pins>;
253                 pinctrl-names = "default";
254                 status = "okay";
255         };
256
257         timer@2 {
258                 status = "okay";
259         };
260 };
261
262 &usart1 {
263         pinctrl-0 = <&usart1_pins_a>;
264         pinctrl-names = "default";
265         status = "okay";
266 };
267
268 &usbotg_hs {
269         dr_mode = "host";
270         phys = <&usbotg_hs_phy>;
271         phy-names = "usb2-phy";
272         pinctrl-0 = <&usbotg_hs_pins_a>;
273         pinctrl-names = "default";
274         status = "okay";
275 };