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