Merge branch 'master' of git://git.denx.de/u-boot-sh
[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                 #size-cells = <0>;
76                 autorepeat;
77                 button@0 {
78                         label = "Wake up";
79                         linux,code = <KEY_WAKEUP>;
80                         gpios = <&gpioa 0 0>;
81                 };
82                 button@1 {
83                         label = "Tamper";
84                         linux,code = <KEY_RESTART>;
85                         gpios = <&gpioc 13 0>;
86                 };
87         };
88
89         usbotg_hs_phy: usbphy {
90                 #phy-cells = <0>;
91                 compatible = "usb-nop-xceiv";
92                 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHSULPI)>;
93                 clock-names = "main_clk";
94         };
95
96         panel_rgb: panel-rgb {
97                 compatible = "ampire,am-480272h3tmqw-t01h";
98                 status = "okay";
99                 port {
100                         panel_in_rgb: endpoint {
101                                 remote-endpoint = <&ltdc_out_rgb>;
102                         };
103                 };
104         };
105
106         mmc_vcard: mmc_vcard {
107                 compatible = "regulator-fixed";
108                 regulator-name = "mmc_vcard";
109                 regulator-min-microvolt = <3300000>;
110                 regulator-max-microvolt = <3300000>;
111         };
112 };
113
114 &adc {
115         pinctrl-names = "default";
116         pinctrl-0 = <&adc3_in8_pin>;
117         vref-supply = <&reg_vref>;
118         status = "okay";
119         adc3: adc@200 {
120                 st,adc-channels = <8>;
121                 status = "okay";
122         };
123 };
124
125 &clk_hse {
126         clock-frequency = <25000000>;
127 };
128
129 &crc {
130         status = "okay";
131 };
132
133 &dcmi {
134         status = "okay";
135
136         port {
137                 dcmi_0: endpoint {
138                         remote-endpoint = <&ov2640_0>;
139                         bus-width = <8>;
140                         hsync-active = <0>;
141                         vsync-active = <0>;
142                         pclk-sample = <1>;
143                 };
144         };
145 };
146
147 &i2c1 {
148         pinctrl-0 = <&i2c1_pins>;
149         pinctrl-names = "default";
150         status = "okay";
151
152         ov2640: camera@30 {
153                 compatible = "ovti,ov2640";
154                 reg = <0x30>;
155                 resetb-gpios = <&stmpegpio 2 GPIO_ACTIVE_HIGH>;
156                 pwdn-gpios = <&stmpegpio 0 GPIO_ACTIVE_LOW>;
157                 clocks = <&clk_ext_camera>;
158                 clock-names = "xvclk";
159                 status = "okay";
160
161                 port {
162                         ov2640_0: endpoint {
163                                 remote-endpoint = <&dcmi_0>;
164                         };
165                 };
166         };
167
168         stmpe1600: stmpe1600@42 {
169                 compatible = "st,stmpe1600";
170                 reg = <0x42>;
171                 interrupts = <8 3>;
172                 interrupt-parent = <&gpioi>;
173                 interrupt-controller;
174                 wakeup-source;
175
176                 stmpegpio: stmpe_gpio {
177                         compatible = "st,stmpe-gpio";
178                         gpio-controller;
179                         #gpio-cells = <2>;
180                 };
181         };
182 };
183
184 &iwdg {
185         status = "okay";
186         timeout-sec = <32>;
187 };
188
189 &ltdc {
190         status = "okay";
191         pinctrl-0 = <&ltdc_pins>;
192         pinctrl-names = "default";
193         dma-ranges;
194
195         port {
196                 ltdc_out_rgb: endpoint {
197                         remote-endpoint = <&panel_in_rgb>;
198                 };
199         };
200 };
201
202 &mac {
203         status = "okay";
204         pinctrl-0       = <&ethernet_mii>;
205         pinctrl-names   = "default";
206         phy-mode        = "mii";
207         phy-handle      = <&phy1>;
208         mdio0 {
209                 #address-cells = <1>;
210                 #size-cells = <0>;
211                 compatible = "snps,dwmac-mdio";
212                 phy1: ethernet-phy@1 {
213                         reg = <1>;
214                 };
215         };
216 };
217
218 &rtc {
219         status = "okay";
220 };
221
222 &sdio {
223         status = "okay";
224         vmmc-supply = <&mmc_vcard>;
225         cd-gpios = <&stmpegpio 15 GPIO_ACTIVE_LOW>;
226         pinctrl-names = "default", "opendrain";
227         pinctrl-0 = <&sdio_pins>;
228         pinctrl-1 = <&sdio_pins_od>;
229         bus-width = <4>;
230         max-frequency = <14000000>;
231 };
232
233 &timers1 {
234         status = "okay";
235
236         pwm {
237                 pinctrl-0 = <&pwm1_pins>;
238                 pinctrl-names = "default";
239                 status = "okay";
240         };
241
242         timer@0 {
243                 status = "okay";
244         };
245 };
246
247 &timers3 {
248         status = "okay";
249
250         pwm {
251                 pinctrl-0 = <&pwm3_pins>;
252                 pinctrl-names = "default";
253                 status = "okay";
254         };
255
256         timer@2 {
257                 status = "okay";
258         };
259 };
260
261 &usart1 {
262         pinctrl-0 = <&usart1_pins_a>;
263         pinctrl-names = "default";
264         status = "okay";
265 };
266
267 &usbotg_hs {
268         dr_mode = "host";
269         phys = <&usbotg_hs_phy>;
270         phy-names = "usb2-phy";
271         pinctrl-0 = <&usbotg_hs_pins_a>;
272         pinctrl-names = "default";
273         status = "okay";
274 };