Merge tag 'driver-core-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / stm32mp157c-ev1.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2 /*
3  * Copyright (C) STMicroelectronics 2017 - All Rights Reserved
4  * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
5  */
6 /dts-v1/;
7
8 #include "stm32mp157c-ed1.dts"
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/input/input.h>
11
12 / {
13         model = "STMicroelectronics STM32MP157C eval daughter on eval mother";
14         compatible = "st,stm32mp157c-ev1", "st,stm32mp157c-ed1", "st,stm32mp157";
15
16         chosen {
17                 stdout-path = "serial0:115200n8";
18         };
19
20         aliases {
21                 serial0 = &uart4;
22                 ethernet0 = &ethernet0;
23         };
24
25         clocks {
26                 clk_ext_camera: clk-ext-camera {
27                         #clock-cells = <0>;
28                         compatible = "fixed-clock";
29                         clock-frequency = <24000000>;
30                 };
31         };
32
33         joystick {
34                 compatible = "gpio-keys";
35                 #size-cells = <0>;
36                 pinctrl-0 = <&joystick_pins>;
37                 pinctrl-names = "default";
38                 button-0 {
39                         label = "JoySel";
40                         linux,code = <KEY_ENTER>;
41                         interrupt-parent = <&stmfx_pinctrl>;
42                         interrupts = <0 IRQ_TYPE_EDGE_RISING>;
43                 };
44                 button-1 {
45                         label = "JoyDown";
46                         linux,code = <KEY_DOWN>;
47                         interrupt-parent = <&stmfx_pinctrl>;
48                         interrupts = <1 IRQ_TYPE_EDGE_RISING>;
49                 };
50                 button-2 {
51                         label = "JoyLeft";
52                         linux,code = <KEY_LEFT>;
53                         interrupt-parent = <&stmfx_pinctrl>;
54                         interrupts = <2 IRQ_TYPE_EDGE_RISING>;
55                 };
56                 button-3 {
57                         label = "JoyRight";
58                         linux,code = <KEY_RIGHT>;
59                         interrupt-parent = <&stmfx_pinctrl>;
60                         interrupts = <3 IRQ_TYPE_EDGE_RISING>;
61                 };
62                 button-4 {
63                         label = "JoyUp";
64                         linux,code = <KEY_UP>;
65                         interrupt-parent = <&stmfx_pinctrl>;
66                         interrupts = <4 IRQ_TYPE_EDGE_RISING>;
67                 };
68         };
69
70         panel_backlight: panel-backlight {
71                 compatible = "gpio-backlight";
72                 gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;
73                 default-on;
74                 status = "okay";
75         };
76 };
77
78 &cec {
79         pinctrl-names = "default";
80         pinctrl-0 = <&cec_pins_a>;
81         status = "okay";
82 };
83
84 &dcmi {
85         status = "okay";
86         pinctrl-names = "default", "sleep";
87         pinctrl-0 = <&dcmi_pins_a>;
88         pinctrl-1 = <&dcmi_sleep_pins_a>;
89
90         port {
91                 dcmi_0: endpoint {
92                         remote-endpoint = <&ov5640_0>;
93                         bus-width = <8>;
94                         hsync-active = <0>;
95                         vsync-active = <0>;
96                         pclk-sample = <1>;
97                 };
98         };
99 };
100
101 &dsi {
102         #address-cells = <1>;
103         #size-cells = <0>;
104         phy-dsi-supply = <&reg18>;
105         status = "okay";
106
107         ports {
108                 #address-cells = <1>;
109                 #size-cells = <0>;
110
111                 port@0 {
112                         reg = <0>;
113                         dsi_in: endpoint {
114                                 remote-endpoint = <&ltdc_ep0_out>;
115                         };
116                 };
117
118                 port@1 {
119                         reg = <1>;
120                         dsi_out: endpoint {
121                                 remote-endpoint = <&dsi_panel_in>;
122                         };
123                 };
124         };
125
126         panel-dsi@0 {
127                 compatible = "raydium,rm68200";
128                 reg = <0>;
129                 reset-gpios = <&gpiof 15 GPIO_ACTIVE_LOW>;
130                 backlight = <&panel_backlight>;
131                 power-supply = <&v3v3>;
132                 status = "okay";
133
134                 port {
135                         dsi_panel_in: endpoint {
136                                 remote-endpoint = <&dsi_out>;
137                         };
138                 };
139         };
140 };
141
142 &ethernet0 {
143         status = "okay";
144         pinctrl-0 = <&ethernet0_rgmii_pins_a>;
145         pinctrl-1 = <&ethernet0_rgmii_pins_sleep_a>;
146         pinctrl-names = "default", "sleep";
147         phy-mode = "rgmii-id";
148         max-speed = <1000>;
149         phy-handle = <&phy0>;
150
151         mdio0 {
152                 #address-cells = <1>;
153                 #size-cells = <0>;
154                 compatible = "snps,dwmac-mdio";
155                 phy0: ethernet-phy@0 {
156                         reg = <0>;
157                 };
158         };
159 };
160
161 &fmc {
162         pinctrl-names = "default", "sleep";
163         pinctrl-0 = <&fmc_pins_a>;
164         pinctrl-1 = <&fmc_sleep_pins_a>;
165         status = "okay";
166         #address-cells = <1>;
167         #size-cells = <0>;
168
169         nand@0 {
170                 reg = <0>;
171                 nand-on-flash-bbt;
172                 #address-cells = <1>;
173                 #size-cells = <1>;
174         };
175 };
176
177 &i2c2 {
178         pinctrl-names = "default";
179         pinctrl-0 = <&i2c2_pins_a>;
180         i2c-scl-rising-time-ns = <185>;
181         i2c-scl-falling-time-ns = <20>;
182         status = "okay";
183
184         ov5640: camera@3c {
185                 compatible = "ovti,ov5640";
186                 reg = <0x3c>;
187                 clocks = <&clk_ext_camera>;
188                 clock-names = "xclk";
189                 DOVDD-supply = <&v2v8>;
190                 powerdown-gpios = <&stmfx_pinctrl 18 (GPIO_ACTIVE_HIGH | GPIO_PUSH_PULL)>;
191                 reset-gpios = <&stmfx_pinctrl 19 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
192                 rotation = <180>;
193                 status = "okay";
194
195                 port {
196                         ov5640_0: endpoint {
197                                 remote-endpoint = <&dcmi_0>;
198                                 bus-width = <8>;
199                                 data-shift = <2>; /* lines 9:2 are used */
200                                 hsync-active = <0>;
201                                 vsync-active = <0>;
202                                 pclk-sample = <1>;
203                         };
204                 };
205         };
206
207         stmfx: stmfx@42 {
208                 compatible = "st,stmfx-0300";
209                 reg = <0x42>;
210                 interrupts = <8 IRQ_TYPE_EDGE_RISING>;
211                 interrupt-parent = <&gpioi>;
212                 vdd-supply = <&v3v3>;
213
214                 stmfx_pinctrl: stmfx-pin-controller {
215                         compatible = "st,stmfx-0300-pinctrl";
216                         gpio-controller;
217                         #gpio-cells = <2>;
218                         interrupt-controller;
219                         #interrupt-cells = <2>;
220                         gpio-ranges = <&stmfx_pinctrl 0 0 24>;
221
222                         joystick_pins: joystick {
223                                 pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4";
224                                 bias-pull-down;
225                         };
226                 };
227         };
228 };
229
230 &i2c5 {
231         pinctrl-names = "default";
232         pinctrl-0 = <&i2c5_pins_a>;
233         i2c-scl-rising-time-ns = <185>;
234         i2c-scl-falling-time-ns = <20>;
235         status = "okay";
236 };
237
238 &ltdc {
239         status = "okay";
240
241         port {
242                 #address-cells = <1>;
243                 #size-cells = <0>;
244
245                 ltdc_ep0_out: endpoint@0 {
246                         reg = <0>;
247                         remote-endpoint = <&dsi_in>;
248                 };
249         };
250 };
251
252 &m_can1 {
253         pinctrl-names = "default", "sleep";
254         pinctrl-0 = <&m_can1_pins_a>;
255         pinctrl-1 = <&m_can1_sleep_pins_a>;
256         status = "okay";
257 };
258
259 &qspi {
260         pinctrl-names = "default", "sleep";
261         pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
262         pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
263         reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
264         #address-cells = <1>;
265         #size-cells = <0>;
266         status = "okay";
267
268         flash0: mx66l51235l@0 {
269                 compatible = "jedec,spi-nor";
270                 reg = <0>;
271                 spi-rx-bus-width = <4>;
272                 spi-max-frequency = <108000000>;
273                 #address-cells = <1>;
274                 #size-cells = <1>;
275         };
276
277         flash1: mx66l51235l@1 {
278                 compatible = "jedec,spi-nor";
279                 reg = <1>;
280                 spi-rx-bus-width = <4>;
281                 spi-max-frequency = <108000000>;
282                 #address-cells = <1>;
283                 #size-cells = <1>;
284         };
285 };
286
287 &spi1 {
288         pinctrl-names = "default";
289         pinctrl-0 = <&spi1_pins_a>;
290         status = "disabled";
291 };
292
293 &timers2 {
294         /* spare dmas for other usage (un-delete to enable pwm capture) */
295         /delete-property/dmas;
296         /delete-property/dma-names;
297         status = "disabled";
298         pwm {
299                 pinctrl-0 = <&pwm2_pins_a>;
300                 pinctrl-names = "default";
301                 status = "okay";
302         };
303         timer@1 {
304                 status = "okay";
305         };
306 };
307
308 &timers8 {
309         /delete-property/dmas;
310         /delete-property/dma-names;
311         status = "disabled";
312         pwm {
313                 pinctrl-0 = <&pwm8_pins_a>;
314                 pinctrl-names = "default";
315                 status = "okay";
316         };
317         timer@7 {
318                 status = "okay";
319         };
320 };
321
322 &timers12 {
323         /delete-property/dmas;
324         /delete-property/dma-names;
325         status = "disabled";
326         pwm {
327                 pinctrl-0 = <&pwm12_pins_a>;
328                 pinctrl-names = "default";
329                 status = "okay";
330         };
331         timer@11 {
332                 status = "okay";
333         };
334 };
335
336 &usbh_ehci {
337         phys = <&usbphyc_port0>;
338         phy-names = "usb";
339         status = "okay";
340 };
341
342 &usbotg_hs {
343         dr_mode = "peripheral";
344         phys = <&usbphyc_port1 0>;
345         phy-names = "usb2-phy";
346         status = "okay";
347 };
348
349 &usbphyc {
350         status = "okay";
351 };