]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/arm/boot/dts/stm32429i-eval.dts
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi...
[karo-tx-linux.git] / arch / arm / boot / dts / stm32429i-eval.dts
1 /*
2  * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
3  *
4  * This file is dual-licensed: you can use it either under the terms
5  * of the GPL or the X11 license, at your option. Note that this dual
6  * licensing only applies to this file, and not this project as a
7  * whole.
8  *
9  *  a) This file is free software; you can redistribute it and/or
10  *     modify it under the terms of the GNU General Public License as
11  *     published by the Free Software Foundation; either version 2 of the
12  *     License, or (at your option) any later version.
13  *
14  *     This file is distributed in the hope that it will be useful,
15  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *     GNU General Public License for more details.
18  *
19  *     You should have received a copy of the GNU General Public
20  *     License along with this file; if not, write to the Free
21  *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22  *     MA 02110-1301 USA
23  *
24  * Or, alternatively,
25  *
26  *  b) Permission is hereby granted, free of charge, to any person
27  *     obtaining a copy of this software and associated documentation
28  *     files (the "Software"), to deal in the Software without
29  *     restriction, including without limitation the rights to use,
30  *     copy, modify, merge, publish, distribute, sublicense, and/or
31  *     sell copies of the Software, and to permit persons to whom the
32  *     Software is furnished to do so, subject to the following
33  *     conditions:
34  *
35  *     The above copyright notice and this permission notice shall be
36  *     included in all copies or substantial portions of the Software.
37  *
38  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45  *     OTHER DEALINGS IN THE SOFTWARE.
46  */
47
48 /dts-v1/;
49 #include "stm32f429.dtsi"
50 #include <dt-bindings/input/input.h>
51 #include <dt-bindings/gpio/gpio.h>
52
53 / {
54         model = "STMicroelectronics STM32429i-EVAL board";
55         compatible = "st,stm32429i-eval", "st,stm32f429";
56
57         chosen {
58                 bootargs = "root=/dev/ram rdinit=/linuxrc";
59                 stdout-path = "serial0:115200n8";
60         };
61
62         memory {
63                 reg = <0x00000000 0x2000000>;
64         };
65
66         aliases {
67                 serial0 = &usart1;
68         };
69
70         clocks {
71                 clk_ext_camera: clk-ext-camera {
72                         #clock-cells = <0>;
73                         compatible = "fixed-clock";
74                         clock-frequency = <24000000>;
75                 };
76         };
77
78         soc {
79                 dma-ranges = <0xc0000000 0x0 0x10000000>;
80         };
81
82         regulators {
83                 compatible = "simple-bus";
84                 #address-cells = <1>;
85                 #size-cells = <0>;
86
87                 reg_vref: regulator@0 {
88                         compatible = "regulator-fixed";
89                         reg = <0>;
90                         regulator-name = "vref";
91                         regulator-min-microvolt = <3300000>;
92                         regulator-max-microvolt = <3300000>;
93                 };
94         };
95
96         leds {
97                 compatible = "gpio-leds";
98                 green {
99                         gpios = <&gpiog 6 1>;
100                         linux,default-trigger = "heartbeat";
101                 };
102                 orange {
103                         gpios = <&gpiog 7 1>;
104                 };
105                 red {
106                         gpios = <&gpiog 10 1>;
107                 };
108                 blue {
109                         gpios = <&gpiog 12 1>;
110                 };
111         };
112
113         gpio_keys {
114                 compatible = "gpio-keys";
115                 #address-cells = <1>;
116                 #size-cells = <0>;
117                 autorepeat;
118                 button@0 {
119                         label = "Wake up";
120                         linux,code = <KEY_WAKEUP>;
121                         gpios = <&gpioa 0 0>;
122                 };
123                 button@1 {
124                         label = "Tamper";
125                         linux,code = <KEY_RESTART>;
126                         gpios = <&gpioc 13 0>;
127                 };
128         };
129
130         usbotg_hs_phy: usbphy {
131                 #phy-cells = <0>;
132                 compatible = "usb-nop-xceiv";
133                 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHSULPI)>;
134                 clock-names = "main_clk";
135         };
136
137         panel_rgb: panel-rgb {
138                 compatible = "ampire,am-480272h3tmqw-t01h";
139                 status = "okay";
140                 port {
141                         panel_in_rgb: endpoint {
142                                 remote-endpoint = <&ltdc_out_rgb>;
143                         };
144                 };
145         };
146 };
147
148 &adc {
149         pinctrl-names = "default";
150         pinctrl-0 = <&adc3_in8_pin>;
151         vref-supply = <&reg_vref>;
152         status = "okay";
153         adc3: adc@200 {
154                 st,adc-channels = <8>;
155                 status = "okay";
156         };
157 };
158
159 &clk_hse {
160         clock-frequency = <25000000>;
161 };
162
163 &crc {
164         status = "okay";
165 };
166
167 &dcmi {
168         status = "okay";
169
170         port {
171                 dcmi_0: endpoint {
172                         remote-endpoint = <&ov2640_0>;
173                         bus-width = <8>;
174                         hsync-active = <0>;
175                         vsync-active = <0>;
176                         pclk-sample = <1>;
177                 };
178         };
179 };
180
181 &i2c1 {
182         pinctrl-0 = <&i2c1_pins>;
183         pinctrl-names = "default";
184         status = "okay";
185
186         ov2640: camera@30 {
187                 compatible = "ovti,ov2640";
188                 reg = <0x30>;
189                 resetb-gpios = <&stmpegpio 2 GPIO_ACTIVE_HIGH>;
190                 pwdn-gpios = <&stmpegpio 0 GPIO_ACTIVE_LOW>;
191                 clocks = <&clk_ext_camera>;
192                 clock-names = "xvclk";
193                 status = "okay";
194
195                 port {
196                         ov2640_0: endpoint {
197                                 remote-endpoint = <&dcmi_0>;
198                         };
199                 };
200         };
201
202         stmpe1600: stmpe1600@42 {
203                 compatible = "st,stmpe1600";
204                 reg = <0x42>;
205                 irq-gpio = <&gpioi 8 0>;
206                 irq-trigger = <3>;
207                 interrupts = <8 3>;
208                 interrupt-parent = <&exti>;
209                 interrupt-controller;
210                 wakeup-source;
211
212                 stmpegpio: stmpe_gpio {
213                         compatible = "st,stmpe-gpio";
214                         gpio-controller;
215                         #gpio-cells = <2>;
216                 };
217         };
218 };
219
220 &iwdg {
221         status = "okay";
222         timeout-sec = <32>;
223 };
224
225 &ltdc {
226         status = "okay";
227         pinctrl-0 = <&ltdc_pins>;
228         pinctrl-names = "default";
229         dma-ranges;
230
231         port {
232                 ltdc_out_rgb: endpoint {
233                         remote-endpoint = <&panel_in_rgb>;
234                 };
235         };
236 };
237
238 &mac {
239         status = "okay";
240         pinctrl-0       = <&ethernet_mii>;
241         pinctrl-names   = "default";
242         phy-mode        = "mii";
243         phy-handle      = <&phy1>;
244         mdio0 {
245                 #address-cells = <1>;
246                 #size-cells = <0>;
247                 compatible = "snps,dwmac-mdio";
248                 phy1: ethernet-phy@1 {
249                         reg = <1>;
250                 };
251         };
252 };
253
254 &rtc {
255         status = "okay";
256 };
257
258 &timers1 {
259         status = "okay";
260
261         pwm {
262                 pinctrl-0 = <&pwm1_pins>;
263                 pinctrl-names = "default";
264                 status = "okay";
265         };
266
267         timer@0 {
268                 status = "okay";
269         };
270 };
271
272 &timers3 {
273         status = "okay";
274
275         pwm {
276                 pinctrl-0 = <&pwm3_pins>;
277                 pinctrl-names = "default";
278                 status = "okay";
279         };
280
281         timer@2 {
282                 status = "okay";
283         };
284 };
285
286 &usart1 {
287         pinctrl-0 = <&usart1_pins_a>;
288         pinctrl-names = "default";
289         status = "okay";
290 };
291
292 &usbotg_hs {
293         dr_mode = "host";
294         phys = <&usbotg_hs_phy>;
295         phy-names = "usb2-phy";
296         pinctrl-0 = <&usbotg_hs_pins_a>;
297         pinctrl-names = "default";
298         status = "okay";
299 };