xref: /linux/arch/arm/boot/dts/st/stm32mp157f-dk2.dts (revision 55a42f78ffd386e01a5404419f8c5ded7db70a21)
1// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2025 - All Rights Reserved
4 * Author: Amelie Delaunay <amelie.delaunay@foss.st.com> for STMicroelectronics.
5 */
6
7/dts-v1/;
8
9#include "stm32mp157.dtsi"
10#include "stm32mp15xf.dtsi"
11#include "stm32mp15-pinctrl.dtsi"
12#include "stm32mp15xxac-pinctrl.dtsi"
13#include "stm32mp15xx-dkx.dtsi"
14#include "stm32mp157f-dk2-scmi.dtsi"
15
16/ {
17	model = "STMicroelectronics STM32MP157F-DK2 Discovery Board";
18	compatible = "st,stm32mp157f-dk2", "st,stm32mp157";
19
20	aliases {
21		ethernet0 = &ethernet0;
22		serial3 = &usart2;
23	};
24
25	chosen {
26		stdout-path = "serial0:115200n8";
27	};
28
29	wifi_pwrseq: wifi-pwrseq {
30		compatible = "mmc-pwrseq-simple";
31		reset-gpios = <&gpioh 4 GPIO_ACTIVE_LOW>;
32	};
33};
34
35&arm_wdt {
36	timeout-sec = <32>;
37	status = "okay";
38};
39
40&cryp1 {
41	status = "okay";
42};
43
44&dsi {
45	#address-cells = <1>;
46	#size-cells = <0>;
47	status = "okay";
48
49	panel@0 {
50		compatible = "orisetech,otm8009a";
51		reg = <0>;
52		reset-gpios = <&gpioe 4 GPIO_ACTIVE_LOW>;
53		power-supply = <&scmi_v3v3>;
54
55		port {
56			panel_in: endpoint {
57				remote-endpoint = <&dsi_out>;
58			};
59		};
60	};
61};
62
63&dsi_in {
64	remote-endpoint = <&ltdc_ep1_out>;
65};
66
67&dsi_out {
68	remote-endpoint = <&panel_in>;
69};
70
71&i2c1 {
72	touchscreen@38 {
73		compatible = "focaltech,ft6236";
74		reg = <0x38>;
75		interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
76		interrupt-parent = <&gpiof>;
77		touchscreen-size-x = <480>;
78		touchscreen-size-y = <800>;
79	};
80};
81
82/* I2C4 is managed by OP-TEE */
83&i2c4 {
84	status = "disabled";
85
86	/* i2c4 subnodes, which won't be managed by Linux */
87	typec@28 {
88		status = "disabled";
89		connector {
90			status = "disabled";
91		};
92	};
93
94	stpmic@33 {
95		status = "disabled";
96	};
97};
98
99&ltdc {
100	status = "okay";
101
102	port {
103		#address-cells = <1>;
104		#size-cells = <0>;
105
106		ltdc_ep1_out: endpoint@1 {
107			reg = <1>;
108			remote-endpoint = <&dsi_in>;
109		};
110	};
111};
112
113&rtc {
114	pinctrl-names = "default";
115	pinctrl-0 = <&rtc_rsvd_pins_a>;
116
117	rtc_lsco_pins_a: rtc-lsco-0 {
118		pins = "out2_rmp";
119		function = "lsco";
120	};
121};
122
123/* Wifi */
124&sdmmc2 {
125	pinctrl-names = "default", "opendrain", "sleep";
126	pinctrl-0 = <&sdmmc2_b4_pins_a>;
127	pinctrl-1 = <&sdmmc2_b4_od_pins_a>;
128	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a>;
129	non-removable;
130	cap-sdio-irq;
131	st,neg-edge;
132	bus-width = <4>;
133	vmmc-supply = <&scmi_v3v3>;
134	mmc-pwrseq = <&wifi_pwrseq>;
135	#address-cells = <1>;
136	#size-cells = <0>;
137	status = "okay";
138
139	brcmf: wifi@1 {
140		reg = <1>;
141		compatible = "brcm,bcm4329-fmac";
142		pinctrl-names = "default";
143		pinctrl-0 = <&rtc_lsco_pins_a>;
144	};
145};
146
147/* Bluetooth */
148&usart2 {
149	pinctrl-names = "default", "sleep", "idle";
150	pinctrl-0 = <&usart2_pins_c>;
151	pinctrl-1 = <&usart2_sleep_pins_c>;
152	pinctrl-2 = <&usart2_idle_pins_c>;
153	uart-has-rtscts;
154	status = "okay";
155
156	bluetooth {
157		shutdown-gpios = <&gpioz 6 GPIO_ACTIVE_HIGH>;
158		compatible = "brcm,bcm43438-bt";
159		max-speed = <3000000>;
160		vbat-supply = <&scmi_v3v3>;
161		vddio-supply = <&scmi_v3v3>;
162	};
163};
164
165/* Since I2C4 is disabled, STUSB1600 is also disabled so there is no Type-C support */
166&usbotg_hs {
167	dr_mode = "peripheral";
168	role-switch-default-mode = "peripheral";
169	/*
170	 * Forcing dr_mode = "peripheral"/"role-switch-default-mode = "peripheral";
171	 * will cause the pull-up on D+/D- to be raised as soon as the OTG is configured at runtime,
172	 * regardless of the presence of VBUS. Notice that on self-powered devices like
173	 * stm32mp157f-dk2, this isn't compliant with the USB standard. That's why usbotg_hs is kept
174	 * disabled here.
175	 */
176	status = "disabled";
177};
178