xref: /linux/arch/arm/boot/dts/st/stm32mp157f-dk2.dts (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
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		status = "okay";
55
56		port {
57			panel_in: endpoint {
58				remote-endpoint = <&dsi_out>;
59			};
60		};
61	};
62};
63
64&dsi_in {
65	remote-endpoint = <&ltdc_ep1_out>;
66};
67
68&dsi_out {
69	remote-endpoint = <&panel_in>;
70};
71
72&i2c1 {
73	touchscreen@38 {
74		compatible = "focaltech,ft6236";
75		reg = <0x38>;
76		interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
77		interrupt-parent = <&gpiof>;
78		touchscreen-size-x = <480>;
79		touchscreen-size-y = <800>;
80		status = "okay";
81	};
82};
83
84/* I2C4 is managed by OP-TEE */
85&i2c4 {
86	status = "disabled";
87
88	/* i2c4 subnodes, which won't be managed by Linux */
89	typec@28 {
90		status = "disabled";
91		connector {
92			status = "disabled";
93		};
94	};
95
96	stpmic@33 {
97		status = "disabled";
98	};
99};
100
101&ltdc {
102	status = "okay";
103
104	port {
105		#address-cells = <1>;
106		#size-cells = <0>;
107
108		ltdc_ep1_out: endpoint@1 {
109			reg = <1>;
110			remote-endpoint = <&dsi_in>;
111		};
112	};
113};
114
115&rtc {
116	pinctrl-names = "default";
117	pinctrl-0 = <&rtc_rsvd_pins_a>;
118
119	rtc_lsco_pins_a: rtc-lsco-0 {
120		pins = "out2_rmp";
121		function = "lsco";
122	};
123};
124
125/* Wifi */
126&sdmmc2 {
127	pinctrl-names = "default", "opendrain", "sleep";
128	pinctrl-0 = <&sdmmc2_b4_pins_a>;
129	pinctrl-1 = <&sdmmc2_b4_od_pins_a>;
130	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a>;
131	non-removable;
132	cap-sdio-irq;
133	st,neg-edge;
134	bus-width = <4>;
135	vmmc-supply = <&scmi_v3v3>;
136	mmc-pwrseq = <&wifi_pwrseq>;
137	#address-cells = <1>;
138	#size-cells = <0>;
139	status = "okay";
140
141	brcmf: wifi@1 {
142		reg = <1>;
143		compatible = "brcm,bcm4329-fmac";
144		pinctrl-names = "default";
145		pinctrl-0 = <&rtc_lsco_pins_a>;
146	};
147};
148
149/* Bluetooth */
150&usart2 {
151	pinctrl-names = "default", "sleep", "idle";
152	pinctrl-0 = <&usart2_pins_c>;
153	pinctrl-1 = <&usart2_sleep_pins_c>;
154	pinctrl-2 = <&usart2_idle_pins_c>;
155	uart-has-rtscts;
156	status = "okay";
157
158	bluetooth {
159		shutdown-gpios = <&gpioz 6 GPIO_ACTIVE_HIGH>;
160		compatible = "brcm,bcm43438-bt";
161		max-speed = <3000000>;
162		vbat-supply = <&scmi_v3v3>;
163		vddio-supply = <&scmi_v3v3>;
164	};
165};
166
167/* Since I2C4 is disabled, STUSB1600 is also disabled so there is no Type-C support */
168&usbotg_hs {
169	dr_mode = "peripheral";
170	role-switch-default-mode = "peripheral";
171	/*
172	 * Forcing dr_mode = "peripheral"/"role-switch-default-mode = "peripheral";
173	 * will cause the pull-up on D+/D- to be raised as soon as the OTG is configured at runtime,
174	 * regardless of the presence of VBUS. Notice that on self-powered devices like
175	 * stm32mp157f-dk2, this isn't compliant with the USB standard. That's why usbotg_hs is kept
176	 * disabled here.
177	 */
178	status = "disabled";
179};
180