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