blob: 46f81ce92ec6e2ef7e03208fbcc1239edbfd64a3 [file] [log] [blame]
Patrick Delaunay5f16f652018-07-09 15:17:22 +02001// 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"
Patrick Delaunay35a54d42019-07-11 11:15:28 +02009#include <dt-bindings/gpio/gpio.h>
Patrick Delaunayfe915332019-07-30 19:16:12 +020010#include <dt-bindings/input/input.h>
Patrick Delaunay5f16f652018-07-09 15:17:22 +020011
12/ {
13 model = "STMicroelectronics STM32MP157C eval daughter on eval mother";
14 compatible = "st,stm32mp157c-ev1", "st,stm32mp157c-ed1", "st,stm32mp157";
15
Patrice Chotard23661602019-02-12 16:50:38 +010016 chosen {
17 stdout-path = "serial0:115200n8";
18 };
19
20 aliases {
21 serial0 = &uart4;
22 ethernet0 = &ethernet0;
23 };
24
Patrick Delaunayfe915332019-07-30 19:16:12 +020025 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";
Patrick Delaunayfe915332019-07-30 19:16:12 +020035 pinctrl-0 = <&joystick_pins>;
36 pinctrl-names = "default";
37 button-0 {
38 label = "JoySel";
39 linux,code = <KEY_ENTER>;
40 interrupt-parent = <&stmfx_pinctrl>;
41 interrupts = <0 IRQ_TYPE_EDGE_RISING>;
42 };
43 button-1 {
44 label = "JoyDown";
45 linux,code = <KEY_DOWN>;
46 interrupt-parent = <&stmfx_pinctrl>;
47 interrupts = <1 IRQ_TYPE_EDGE_RISING>;
48 };
49 button-2 {
50 label = "JoyLeft";
51 linux,code = <KEY_LEFT>;
52 interrupt-parent = <&stmfx_pinctrl>;
53 interrupts = <2 IRQ_TYPE_EDGE_RISING>;
54 };
55 button-3 {
56 label = "JoyRight";
57 linux,code = <KEY_RIGHT>;
58 interrupt-parent = <&stmfx_pinctrl>;
59 interrupts = <3 IRQ_TYPE_EDGE_RISING>;
60 };
61 button-4 {
62 label = "JoyUp";
63 linux,code = <KEY_UP>;
64 interrupt-parent = <&stmfx_pinctrl>;
65 interrupts = <4 IRQ_TYPE_EDGE_RISING>;
66 };
67 };
68
Patrice Chotard23661602019-02-12 16:50:38 +010069 panel_backlight: panel-backlight {
70 compatible = "gpio-backlight";
71 gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;
72 default-on;
73 status = "okay";
74 };
Patrick Delaunay5f16f652018-07-09 15:17:22 +020075};
76
77&cec {
78 pinctrl-names = "default";
79 pinctrl-0 = <&cec_pins_a>;
80 status = "okay";
81};
82
Patrick Delaunayfe915332019-07-30 19:16:12 +020083&dcmi {
84 status = "okay";
85 pinctrl-names = "default", "sleep";
86 pinctrl-0 = <&dcmi_pins_a>;
87 pinctrl-1 = <&dcmi_sleep_pins_a>;
88
89 port {
90 dcmi_0: endpoint {
91 remote-endpoint = <&ov5640_0>;
92 bus-width = <8>;
93 hsync-active = <0>;
94 vsync-active = <0>;
95 pclk-sample = <1>;
96 };
97 };
98};
99
Patrice Chotard23661602019-02-12 16:50:38 +0100100&dsi {
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100101 phy-dsi-supply = <&reg18>;
Patrice Chotard23661602019-02-12 16:50:38 +0100102 status = "okay";
103
104 ports {
Patrice Chotard23661602019-02-12 16:50:38 +0100105 port@0 {
106 reg = <0>;
107 dsi_in: endpoint {
108 remote-endpoint = <&ltdc_ep0_out>;
109 };
110 };
111
112 port@1 {
113 reg = <1>;
114 dsi_out: endpoint {
115 remote-endpoint = <&dsi_panel_in>;
116 };
117 };
118 };
119
120 panel-dsi@0 {
121 compatible = "raydium,rm68200";
122 reg = <0>;
123 reset-gpios = <&gpiof 15 GPIO_ACTIVE_LOW>;
124 backlight = <&panel_backlight>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200125 power-supply = <&v3v3>;
Patrice Chotard23661602019-02-12 16:50:38 +0100126 status = "okay";
127
128 port {
129 dsi_panel_in: endpoint {
130 remote-endpoint = <&dsi_out>;
131 };
132 };
133 };
134};
135
136&ethernet0 {
137 status = "okay";
138 pinctrl-0 = <&ethernet0_rgmii_pins_a>;
Patrick Delaunay500327e2020-07-06 13:26:53 +0200139 pinctrl-1 = <&ethernet0_rgmii_sleep_pins_a>;
Patrice Chotard23661602019-02-12 16:50:38 +0100140 pinctrl-names = "default", "sleep";
Christophe Roullierc8ef9532019-05-17 15:08:45 +0200141 phy-mode = "rgmii-id";
Patrice Chotard23661602019-02-12 16:50:38 +0100142 max-speed = <1000>;
143 phy-handle = <&phy0>;
144
145 mdio0 {
146 #address-cells = <1>;
147 #size-cells = <0>;
148 compatible = "snps,dwmac-mdio";
149 phy0: ethernet-phy@0 {
150 reg = <0>;
151 };
152 };
153};
154
Patrick Delaunayc4a739a2019-04-08 15:30:52 +0200155&fmc {
156 pinctrl-names = "default", "sleep";
157 pinctrl-0 = <&fmc_pins_a>;
158 pinctrl-1 = <&fmc_sleep_pins_a>;
159 status = "okay";
Patrick Delaunayc4a739a2019-04-08 15:30:52 +0200160
Christophe Kerelloacdaae62020-07-31 09:53:44 +0200161 nand-controller@4,0 {
162 status = "okay";
163
164 nand@0 {
165 reg = <0>;
166 nand-on-flash-bbt;
167 #address-cells = <1>;
168 #size-cells = <1>;
169 };
Patrick Delaunayc4a739a2019-04-08 15:30:52 +0200170 };
171};
172
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200173&i2c2 {
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +0200174 pinctrl-names = "default", "sleep";
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200175 pinctrl-0 = <&i2c2_pins_a>;
Patrick Delaunay500327e2020-07-06 13:26:53 +0200176 pinctrl-1 = <&i2c2_sleep_pins_a>;
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200177 i2c-scl-rising-time-ns = <185>;
178 i2c-scl-falling-time-ns = <20>;
179 status = "okay";
Patrick Delaunay1258e462019-04-12 14:38:28 +0200180
Patrick Delaunayfe915332019-07-30 19:16:12 +0200181 ov5640: camera@3c {
182 compatible = "ovti,ov5640";
Patrick Delaunayfe915332019-07-30 19:16:12 +0200183 reg = <0x3c>;
184 clocks = <&clk_ext_camera>;
185 clock-names = "xclk";
186 DOVDD-supply = <&v2v8>;
Patrick Delaunay4f280922020-01-28 10:10:58 +0100187 powerdown-gpios = <&stmfx_pinctrl 18 (GPIO_ACTIVE_HIGH | GPIO_PUSH_PULL)>;
188 reset-gpios = <&stmfx_pinctrl 19 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200189 rotation = <180>;
190 status = "okay";
191
192 port {
193 ov5640_0: endpoint {
194 remote-endpoint = <&dcmi_0>;
195 bus-width = <8>;
196 data-shift = <2>; /* lines 9:2 are used */
197 hsync-active = <0>;
198 vsync-active = <0>;
199 pclk-sample = <1>;
200 };
201 };
202 };
203
Patrick Delaunay1258e462019-04-12 14:38:28 +0200204 stmfx: stmfx@42 {
205 compatible = "st,stmfx-0300";
206 reg = <0x42>;
207 interrupts = <8 IRQ_TYPE_EDGE_RISING>;
208 interrupt-parent = <&gpioi>;
209 vdd-supply = <&v3v3>;
210
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +0200211 stmfx_pinctrl: pinctrl {
Patrick Delaunay1258e462019-04-12 14:38:28 +0200212 compatible = "st,stmfx-0300-pinctrl";
213 gpio-controller;
214 #gpio-cells = <2>;
215 interrupt-controller;
216 #interrupt-cells = <2>;
217 gpio-ranges = <&stmfx_pinctrl 0 0 24>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200218
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +0200219 joystick_pins: joystick-pins {
Patrick Delaunayfe915332019-07-30 19:16:12 +0200220 pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4";
Patrick Delaunayfe915332019-07-30 19:16:12 +0200221 bias-pull-down;
222 };
Patrick Delaunay1258e462019-04-12 14:38:28 +0200223 };
224 };
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200225};
226
227&i2c5 {
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +0200228 pinctrl-names = "default", "sleep";
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200229 pinctrl-0 = <&i2c5_pins_a>;
Patrick Delaunay500327e2020-07-06 13:26:53 +0200230 pinctrl-1 = <&i2c5_sleep_pins_a>;
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200231 i2c-scl-rising-time-ns = <185>;
232 i2c-scl-falling-time-ns = <20>;
233 status = "okay";
234};
235
Patrice Chotard23661602019-02-12 16:50:38 +0100236&ltdc {
237 status = "okay";
238
239 port {
Patrice Chotard23661602019-02-12 16:50:38 +0100240 ltdc_ep0_out: endpoint@0 {
241 reg = <0>;
242 remote-endpoint = <&dsi_in>;
243 };
244 };
245};
246
247&m_can1 {
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200248 pinctrl-names = "default", "sleep";
Patrice Chotard23661602019-02-12 16:50:38 +0100249 pinctrl-0 = <&m_can1_pins_a>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200250 pinctrl-1 = <&m_can1_sleep_pins_a>;
Patrice Chotard23661602019-02-12 16:50:38 +0100251 status = "okay";
252};
253
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200254&qspi {
Patrick Delaunayfe915332019-07-30 19:16:12 +0200255 pinctrl-names = "default", "sleep";
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200256 pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200257 pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200258 reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
259 #address-cells = <1>;
260 #size-cells = <0>;
261 status = "okay";
262
263 flash0: mx66l51235l@0 {
Patrick Delaunayfe915332019-07-30 19:16:12 +0200264 compatible = "jedec,spi-nor";
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200265 reg = <0>;
266 spi-rx-bus-width = <4>;
267 spi-max-frequency = <108000000>;
268 #address-cells = <1>;
269 #size-cells = <1>;
270 };
271
272 flash1: mx66l51235l@1 {
Patrick Delaunayfe915332019-07-30 19:16:12 +0200273 compatible = "jedec,spi-nor";
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200274 reg = <1>;
275 spi-rx-bus-width = <4>;
276 spi-max-frequency = <108000000>;
277 #address-cells = <1>;
278 #size-cells = <1>;
279 };
280};
281
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100282&sdmmc3 {
283 pinctrl-names = "default", "opendrain", "sleep";
284 pinctrl-0 = <&sdmmc3_b4_pins_a>;
285 pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
286 pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
287 broken-cd;
288 st,neg-edge;
289 bus-width = <4>;
290 vmmc-supply = <&v3v3>;
291 status = "disabled";
292};
293
Patrice Chotard23661602019-02-12 16:50:38 +0100294&spi1 {
295 pinctrl-names = "default";
296 pinctrl-0 = <&spi1_pins_a>;
297 status = "disabled";
298};
299
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200300&timers2 {
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200301 /* spare dmas for other usage (un-delete to enable pwm capture) */
302 /delete-property/dmas;
303 /delete-property/dma-names;
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200304 status = "disabled";
305 pwm {
306 pinctrl-0 = <&pwm2_pins_a>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100307 pinctrl-1 = <&pwm2_sleep_pins_a>;
308 pinctrl-names = "default", "sleep";
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200309 status = "okay";
310 };
311 timer@1 {
312 status = "okay";
313 };
314};
315
316&timers8 {
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200317 /delete-property/dmas;
318 /delete-property/dma-names;
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200319 status = "disabled";
320 pwm {
321 pinctrl-0 = <&pwm8_pins_a>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100322 pinctrl-1 = <&pwm8_sleep_pins_a>;
323 pinctrl-names = "default", "sleep";
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200324 status = "okay";
325 };
326 timer@7 {
327 status = "okay";
328 };
329};
330
331&timers12 {
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200332 /delete-property/dmas;
333 /delete-property/dma-names;
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200334 status = "disabled";
335 pwm {
336 pinctrl-0 = <&pwm12_pins_a>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100337 pinctrl-1 = <&pwm12_sleep_pins_a>;
338 pinctrl-names = "default", "sleep";
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200339 status = "okay";
340 };
341 timer@11 {
342 status = "okay";
343 };
344};
345
Patrice Chotardbad48a42018-08-10 17:12:12 +0200346&usbh_ehci {
347 phys = <&usbphyc_port0>;
Patrice Chotardbad48a42018-08-10 17:12:12 +0200348 status = "okay";
349};
350
Patrice Chotard8e9c94d2018-08-10 17:12:11 +0200351&usbotg_hs {
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +0200352 pinctrl-0 = <&usbotg_hs_pins_a>;
353 pinctrl-names = "default";
Patrice Chotard8e9c94d2018-08-10 17:12:11 +0200354 phys = <&usbphyc_port1 0>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100355 phy-names = "usb2-phy";
Patrice Chotard8e9c94d2018-08-10 17:12:11 +0200356 status = "okay";
357};
358
Patrick Delaunay5f16f652018-07-09 15:17:22 +0200359&usbphyc {
360 status = "okay";
361};