1// SPDX-License-Identifier: GPL-2.0+ OR X11
2/*
3 * Copyright 2016 - Lee Jones <lee.jones@linaro.org>
4 *
5 */
6
7/dts-v1/;
8#include "stm32f469.dtsi"
9#include "stm32f469-pinctrl.dtsi"
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/input/input.h>
12
13/ {
14	model = "STMicroelectronics STM32F469i-DISCO board";
15	compatible = "st,stm32f469i-disco", "st,stm32f469";
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 0x1000000>;
25	};
26
27	aliases {
28		serial0 = &usart3;
29	};
30
31	mmc_vcard: mmc_vcard {
32		compatible = "regulator-fixed";
33		regulator-name = "mmc_vcard";
34		regulator-min-microvolt = <3300000>;
35		regulator-max-microvolt = <3300000>;
36	};
37
38	vdd_dsi: vdd-dsi {
39		compatible = "regulator-fixed";
40		regulator-name = "vdd_dsi";
41		regulator-min-microvolt = <3300000>;
42		regulator-max-microvolt = <3300000>;
43	};
44
45	soc {
46		dma-ranges = <0xc0000000 0x0 0x10000000>;
47	};
48
49	leds {
50		compatible = "gpio-leds";
51		led-green {
52			gpios = <&gpiog 6 GPIO_ACTIVE_LOW>;
53			linux,default-trigger = "heartbeat";
54		};
55		led-orange {
56			gpios = <&gpiod 4 GPIO_ACTIVE_LOW>;
57		};
58		led-red {
59			gpios = <&gpiod 5 GPIO_ACTIVE_LOW>;
60		};
61		led-blue {
62			gpios = <&gpiok 3 GPIO_ACTIVE_LOW>;
63		};
64	};
65
66	gpio_keys {
67		compatible = "gpio-keys";
68		#address-cells = <1>;
69		#size-cells = <0>;
70		autorepeat;
71		button@0 {
72			label = "User";
73			linux,code = <KEY_WAKEUP>;
74			gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
75		};
76	};
77
78	/* This turns on vbus for otg for host mode (dwc2) */
79	vcc5v_otg: vcc5v-otg-regulator {
80		compatible = "regulator-fixed";
81		enable-active-high;
82		gpio = <&gpiob 2 GPIO_ACTIVE_HIGH>;
83		regulator-name = "vcc5_host1";
84		regulator-always-on;
85	};
86};
87
88&rcc {
89	compatible = "st,stm32f469-rcc", "st,stm32f42xx-rcc", "st,stm32-rcc";
90};
91
92&clk_hse {
93	clock-frequency = <8000000>;
94};
95
96&dsi {
97	#address-cells = <1>;
98	#size-cells = <0>;
99	status = "okay";
100
101	ports {
102		#address-cells = <1>;
103		#size-cells = <0>;
104
105		port@0 {
106			reg = <0>;
107			dsi_in: endpoint {
108				remote-endpoint = <&ltdc_out_dsi>;
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 = "orisetech,otm8009a";
122		reg = <0>; /* dsi virtual channel (0..3) */
123		reset-gpios = <&gpioh 7 GPIO_ACTIVE_LOW>;
124		power-supply = <&vdd_dsi>;
125		status = "okay";
126
127		port {
128			dsi_panel_in: endpoint {
129				remote-endpoint = <&dsi_out>;
130			};
131		};
132	};
133};
134
135&ltdc {
136	status = "okay";
137
138	port {
139		ltdc_out_dsi: endpoint@0 {
140			remote-endpoint = <&dsi_in>;
141		};
142	};
143};
144
145&rtc {
146	status = "okay";
147};
148
149&timers1 {
150	status = "okay";
151
152	pwm {
153		pinctrl-0 = <&pwm1_pins>;
154		pinctrl-names = "default";
155		status = "okay";
156	};
157
158	timer@0 {
159		status = "okay";
160	};
161};
162
163&timers3 {
164	status = "okay";
165
166	pwm {
167		pinctrl-0 = <&pwm3_pins>;
168		pinctrl-names = "default";
169		status = "okay";
170	};
171
172	timer@2 {
173		status = "okay";
174	};
175};
176
177&sdio {
178	status = "okay";
179	vmmc-supply = <&mmc_vcard>;
180	cd-gpios = <&gpiog 2 GPIO_ACTIVE_LOW>;
181	broken-cd;
182	pinctrl-names = "default", "opendrain";
183	pinctrl-0 = <&sdio_pins>;
184	pinctrl-1 = <&sdio_pins_od>;
185	bus-width = <4>;
186};
187
188&usart3 {
189	pinctrl-0 = <&usart3_pins_a>;
190	pinctrl-names = "default";
191	status = "okay";
192};
193
194&usbotg_fs {
195	dr_mode = "host";
196	pinctrl-0 = <&usbotg_fs_pins_a>;
197	pinctrl-names = "default";
198	status = "okay";
199};
200