xref: /linux/arch/arm/boot/dts/st/stm32mp135f-dk.dts (revision d4e12273a7848e63bde6a38ab0721f83065db200)
1724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2724ba675SRob Herring/*
3724ba675SRob Herring * Copyright (C) STMicroelectronics 2021 - All Rights Reserved
4724ba675SRob Herring * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5724ba675SRob Herring */
6724ba675SRob Herring
7724ba675SRob Herring/dts-v1/;
8724ba675SRob Herring
9724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
10724ba675SRob Herring#include <dt-bindings/input/input.h>
11724ba675SRob Herring#include <dt-bindings/leds/common.h>
124c757f6bSEtienne Carriere#include <dt-bindings/regulator/st,stm32mp13-regulator.h>
13724ba675SRob Herring#include "stm32mp135.dtsi"
14724ba675SRob Herring#include "stm32mp13xf.dtsi"
15724ba675SRob Herring#include "stm32mp13-pinctrl.dtsi"
16724ba675SRob Herring
17724ba675SRob Herring/ {
18724ba675SRob Herring	model = "STMicroelectronics STM32MP135F-DK Discovery Board";
19724ba675SRob Herring	compatible = "st,stm32mp135f-dk", "st,stm32mp135";
20724ba675SRob Herring
21724ba675SRob Herring	aliases {
22724ba675SRob Herring		serial0 = &uart4;
23724ba675SRob Herring		serial1 = &usart1;
24724ba675SRob Herring		serial2 = &uart8;
25724ba675SRob Herring		serial3 = &usart2;
26724ba675SRob Herring	};
27724ba675SRob Herring
28724ba675SRob Herring	chosen {
29724ba675SRob Herring		stdout-path = "serial0:115200n8";
30724ba675SRob Herring	};
31724ba675SRob Herring
32724ba675SRob Herring	memory@c0000000 {
33724ba675SRob Herring		device_type = "memory";
34724ba675SRob Herring		reg = <0xc0000000 0x20000000>;
35724ba675SRob Herring	};
36724ba675SRob Herring
37724ba675SRob Herring	reserved-memory {
38724ba675SRob Herring		#address-cells = <1>;
39724ba675SRob Herring		#size-cells = <1>;
40724ba675SRob Herring		ranges;
41724ba675SRob Herring
42724ba675SRob Herring		optee@dd000000 {
43724ba675SRob Herring			reg = <0xdd000000 0x3000000>;
44724ba675SRob Herring			no-map;
45724ba675SRob Herring		};
46724ba675SRob Herring	};
47724ba675SRob Herring
48724ba675SRob Herring	gpio-keys {
49724ba675SRob Herring		compatible = "gpio-keys";
50724ba675SRob Herring
51724ba675SRob Herring		button-user {
52724ba675SRob Herring			label = "User-PA13";
53724ba675SRob Herring			linux,code = <BTN_1>;
54724ba675SRob Herring			gpios = <&gpioa 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
55724ba675SRob Herring		};
56724ba675SRob Herring	};
57724ba675SRob Herring
58724ba675SRob Herring	leds {
59724ba675SRob Herring		compatible = "gpio-leds";
60724ba675SRob Herring
61724ba675SRob Herring		led-blue {
62724ba675SRob Herring			function = LED_FUNCTION_HEARTBEAT;
63724ba675SRob Herring			color = <LED_COLOR_ID_BLUE>;
64724ba675SRob Herring			gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
65724ba675SRob Herring			linux,default-trigger = "heartbeat";
66724ba675SRob Herring			default-state = "off";
67724ba675SRob Herring		};
68724ba675SRob Herring	};
69724ba675SRob Herring};
70724ba675SRob Herring
71724ba675SRob Herring&adc_1 {
72724ba675SRob Herring	pinctrl-names = "default";
73724ba675SRob Herring	pinctrl-0 = <&adc1_usb_cc_pins_a>;
744c757f6bSEtienne Carriere	vdda-supply = <&scmi_vdd_adc>;
754c757f6bSEtienne Carriere	vref-supply = <&scmi_vdd_adc>;
76724ba675SRob Herring	status = "okay";
77724ba675SRob Herring	adc1: adc@0 {
78724ba675SRob Herring		status = "okay";
79724ba675SRob Herring		/*
80724ba675SRob Herring		 * Type-C USB_PWR_CC1 & USB_PWR_CC2 on in6 & in12.
81724ba675SRob Herring		 * Use at least 5 * RC time, e.g. 5 * (Rp + Rd) * C:
82724ba675SRob Herring		 * 5 * (5.1 + 47kOhms) * 5pF => 1.3us.
83724ba675SRob Herring		 * Use arbitrary margin here (e.g. 5us).
84724ba675SRob Herring		 */
85724ba675SRob Herring		channel@6 {
86724ba675SRob Herring			reg = <6>;
87724ba675SRob Herring			st,min-sample-time-ns = <5000>;
88724ba675SRob Herring		};
89724ba675SRob Herring		channel@12 {
90724ba675SRob Herring			reg = <12>;
91724ba675SRob Herring			st,min-sample-time-ns = <5000>;
92724ba675SRob Herring		};
93724ba675SRob Herring	};
94724ba675SRob Herring};
95724ba675SRob Herring
96*d4e12273SLionel Debieve&crc1 {
97*d4e12273SLionel Debieve	status = "okay";
98*d4e12273SLionel Debieve};
99*d4e12273SLionel Debieve
100724ba675SRob Herring&i2c1 {
101724ba675SRob Herring	pinctrl-names = "default", "sleep";
102724ba675SRob Herring	pinctrl-0 = <&i2c1_pins_a>;
103724ba675SRob Herring	pinctrl-1 = <&i2c1_sleep_pins_a>;
104724ba675SRob Herring	i2c-scl-rising-time-ns = <96>;
105724ba675SRob Herring	i2c-scl-falling-time-ns = <3>;
106724ba675SRob Herring	clock-frequency = <1000000>;
107724ba675SRob Herring	status = "okay";
108724ba675SRob Herring	/* spare dmas for other usage */
109724ba675SRob Herring	/delete-property/dmas;
110724ba675SRob Herring	/delete-property/dma-names;
111724ba675SRob Herring
112724ba675SRob Herring	mcp23017: pinctrl@21 {
113724ba675SRob Herring		compatible = "microchip,mcp23017";
114724ba675SRob Herring		reg = <0x21>;
115724ba675SRob Herring		gpio-controller;
116724ba675SRob Herring		#gpio-cells = <2>;
117724ba675SRob Herring		interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
118724ba675SRob Herring		interrupt-parent = <&gpiog>;
119724ba675SRob Herring		pinctrl-names = "default";
120724ba675SRob Herring		pinctrl-0 = <&mcp23017_pins_a>;
121724ba675SRob Herring		interrupt-controller;
122724ba675SRob Herring		#interrupt-cells = <2>;
123724ba675SRob Herring		microchip,irq-mirror;
124724ba675SRob Herring	};
125724ba675SRob Herring
126724ba675SRob Herring	typec@53 {
127724ba675SRob Herring		compatible = "st,stm32g0-typec";
128724ba675SRob Herring		reg = <0x53>;
129724ba675SRob Herring		/* Alert pin on PI2 */
130724ba675SRob Herring		interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
131724ba675SRob Herring		interrupt-parent = <&gpioi>;
132724ba675SRob Herring		/* Internal pull-up on PI2 */
133724ba675SRob Herring		pinctrl-names = "default";
134724ba675SRob Herring		pinctrl-0 = <&stm32g0_intn_pins_a>;
135724ba675SRob Herring		firmware-name = "stm32g0-ucsi.mp135f-dk.fw";
136724ba675SRob Herring		connector {
137724ba675SRob Herring			compatible = "usb-c-connector";
138724ba675SRob Herring			label = "USB-C";
139724ba675SRob Herring
140724ba675SRob Herring			port {
141724ba675SRob Herring				con_usb_c_g0_ep: endpoint {
142724ba675SRob Herring					remote-endpoint = <&usbotg_hs_ep>;
143724ba675SRob Herring				};
144724ba675SRob Herring			};
145724ba675SRob Herring		};
146724ba675SRob Herring	};
147724ba675SRob Herring};
148724ba675SRob Herring
149724ba675SRob Herring&i2c5 {
150724ba675SRob Herring	pinctrl-names = "default", "sleep";
151724ba675SRob Herring	pinctrl-0 = <&i2c5_pins_a>;
152724ba675SRob Herring	pinctrl-1 = <&i2c5_sleep_pins_a>;
153724ba675SRob Herring	i2c-scl-rising-time-ns = <170>;
154724ba675SRob Herring	i2c-scl-falling-time-ns = <5>;
155724ba675SRob Herring	clock-frequency = <400000>;
156724ba675SRob Herring	status = "okay";
157724ba675SRob Herring	/* spare dmas for other usage */
158724ba675SRob Herring	/delete-property/dmas;
159724ba675SRob Herring	/delete-property/dma-names;
160724ba675SRob Herring};
161724ba675SRob Herring
162724ba675SRob Herring&iwdg2 {
163724ba675SRob Herring	timeout-sec = <32>;
164724ba675SRob Herring	status = "okay";
165724ba675SRob Herring};
166724ba675SRob Herring
167724ba675SRob Herring&rtc {
168724ba675SRob Herring	status = "okay";
169724ba675SRob Herring};
170724ba675SRob Herring
1714c757f6bSEtienne Carriere&scmi_regu {
1724c757f6bSEtienne Carriere	scmi_vdd_adc: regulator@10 {
1734c757f6bSEtienne Carriere		reg = <VOLTD_SCMI_STPMIC1_LDO1>;
1744c757f6bSEtienne Carriere		regulator-name = "vdd_adc";
1754c757f6bSEtienne Carriere	};
1764c757f6bSEtienne Carriere	scmi_vdd_usb: regulator@13 {
1774c757f6bSEtienne Carriere		reg = <VOLTD_SCMI_STPMIC1_LDO4>;
1784c757f6bSEtienne Carriere		regulator-name = "vdd_usb";
1794c757f6bSEtienne Carriere	};
1804c757f6bSEtienne Carriere	scmi_vdd_sd: regulator@14 {
1814c757f6bSEtienne Carriere		reg = <VOLTD_SCMI_STPMIC1_LDO5>;
1824c757f6bSEtienne Carriere		regulator-name = "vdd_sd";
1834c757f6bSEtienne Carriere	};
1844c757f6bSEtienne Carriere	scmi_v1v8_periph: regulator@15 {
1854c757f6bSEtienne Carriere		reg = <VOLTD_SCMI_STPMIC1_LDO6>;
1864c757f6bSEtienne Carriere		regulator-name = "v1v8_periph";
1874c757f6bSEtienne Carriere	};
1884c757f6bSEtienne Carriere	scmi_v3v3_sw: regulator@19 {
1894c757f6bSEtienne Carriere		reg = <VOLTD_SCMI_STPMIC1_PWR_SW2>;
1904c757f6bSEtienne Carriere		regulator-name = "v3v3_sw";
1914c757f6bSEtienne Carriere	};
1924c757f6bSEtienne Carriere};
1934c757f6bSEtienne Carriere
194724ba675SRob Herring&sdmmc1 {
195724ba675SRob Herring	pinctrl-names = "default", "opendrain", "sleep";
196724ba675SRob Herring	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_clk_pins_a>;
197724ba675SRob Herring	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_clk_pins_a>;
198724ba675SRob Herring	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
199724ba675SRob Herring	cd-gpios = <&gpioh 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
200724ba675SRob Herring	disable-wp;
201724ba675SRob Herring	st,neg-edge;
202724ba675SRob Herring	bus-width = <4>;
2034c757f6bSEtienne Carriere	vmmc-supply = <&scmi_vdd_sd>;
204724ba675SRob Herring	status = "okay";
205724ba675SRob Herring};
206724ba675SRob Herring
207724ba675SRob Herring&spi5 {
208724ba675SRob Herring	pinctrl-names = "default", "sleep";
209724ba675SRob Herring	pinctrl-0 = <&spi5_pins_a>;
210724ba675SRob Herring	pinctrl-1 = <&spi5_sleep_pins_a>;
211724ba675SRob Herring	status = "disabled";
212724ba675SRob Herring};
213724ba675SRob Herring
214724ba675SRob Herring&timers3 {
215724ba675SRob Herring	/delete-property/dmas;
216724ba675SRob Herring	/delete-property/dma-names;
217724ba675SRob Herring	status = "disabled";
218724ba675SRob Herring	pwm {
219724ba675SRob Herring		pinctrl-0 = <&pwm3_pins_a>;
220724ba675SRob Herring		pinctrl-1 = <&pwm3_sleep_pins_a>;
221724ba675SRob Herring		pinctrl-names = "default", "sleep";
222724ba675SRob Herring		status = "okay";
223724ba675SRob Herring	};
224724ba675SRob Herring	timer@2 {
225724ba675SRob Herring		status = "okay";
226724ba675SRob Herring	};
227724ba675SRob Herring};
228724ba675SRob Herring
229724ba675SRob Herring&timers4 {
230724ba675SRob Herring	/delete-property/dmas;
231724ba675SRob Herring	/delete-property/dma-names;
232724ba675SRob Herring	status = "disabled";
233724ba675SRob Herring	pwm {
234724ba675SRob Herring		pinctrl-0 = <&pwm4_pins_a>;
235724ba675SRob Herring		pinctrl-1 = <&pwm4_sleep_pins_a>;
236724ba675SRob Herring		pinctrl-names = "default", "sleep";
237724ba675SRob Herring		status = "okay";
238724ba675SRob Herring	};
239724ba675SRob Herring	timer@3 {
240724ba675SRob Herring		status = "okay";
241724ba675SRob Herring	};
242724ba675SRob Herring};
243724ba675SRob Herring
244724ba675SRob Herring&timers8 {
245724ba675SRob Herring	/delete-property/dmas;
246724ba675SRob Herring	/delete-property/dma-names;
247724ba675SRob Herring	status = "disabled";
248724ba675SRob Herring	pwm {
249724ba675SRob Herring		pinctrl-0 = <&pwm8_pins_a>;
250724ba675SRob Herring		pinctrl-1 = <&pwm8_sleep_pins_a>;
251724ba675SRob Herring		pinctrl-names = "default", "sleep";
252724ba675SRob Herring		status = "okay";
253724ba675SRob Herring	};
254724ba675SRob Herring	timer@7 {
255724ba675SRob Herring		status = "okay";
256724ba675SRob Herring	};
257724ba675SRob Herring};
258724ba675SRob Herring
259724ba675SRob Herring&timers14 {
260724ba675SRob Herring	status = "disabled";
261724ba675SRob Herring	pwm {
262724ba675SRob Herring		pinctrl-0 = <&pwm14_pins_a>;
263724ba675SRob Herring		pinctrl-1 = <&pwm14_sleep_pins_a>;
264724ba675SRob Herring		pinctrl-names = "default", "sleep";
265724ba675SRob Herring		status = "okay";
266724ba675SRob Herring	};
267724ba675SRob Herring	timer@13 {
268724ba675SRob Herring		status = "okay";
269724ba675SRob Herring	};
270724ba675SRob Herring};
271724ba675SRob Herring
272724ba675SRob Herring&uart4 {
273724ba675SRob Herring	pinctrl-names = "default", "sleep", "idle";
274724ba675SRob Herring	pinctrl-0 = <&uart4_pins_a>;
275724ba675SRob Herring	pinctrl-1 = <&uart4_sleep_pins_a>;
276724ba675SRob Herring	pinctrl-2 = <&uart4_idle_pins_a>;
277724ba675SRob Herring	/delete-property/dmas;
278724ba675SRob Herring	/delete-property/dma-names;
279724ba675SRob Herring	status = "okay";
280724ba675SRob Herring};
281724ba675SRob Herring
282724ba675SRob Herring&uart8 {
283724ba675SRob Herring	pinctrl-names = "default", "sleep", "idle";
284724ba675SRob Herring	pinctrl-0 = <&uart8_pins_a>;
285724ba675SRob Herring	pinctrl-1 = <&uart8_sleep_pins_a>;
286724ba675SRob Herring	pinctrl-2 = <&uart8_idle_pins_a>;
287724ba675SRob Herring	/delete-property/dmas;
288724ba675SRob Herring	/delete-property/dma-names;
289724ba675SRob Herring	status = "disabled";
290724ba675SRob Herring};
291724ba675SRob Herring
292724ba675SRob Herring&usart1 {
293724ba675SRob Herring	pinctrl-names = "default", "sleep", "idle";
294724ba675SRob Herring	pinctrl-0 = <&usart1_pins_a>;
295724ba675SRob Herring	pinctrl-1 = <&usart1_sleep_pins_a>;
296724ba675SRob Herring	pinctrl-2 = <&usart1_idle_pins_a>;
297724ba675SRob Herring	uart-has-rtscts;
298724ba675SRob Herring	status = "disabled";
299724ba675SRob Herring};
300724ba675SRob Herring
301724ba675SRob Herring/* Bluetooth */
302724ba675SRob Herring&usart2 {
303724ba675SRob Herring	pinctrl-names = "default", "sleep", "idle";
304724ba675SRob Herring	pinctrl-0 = <&usart2_pins_a>;
305724ba675SRob Herring	pinctrl-1 = <&usart2_sleep_pins_a>;
306724ba675SRob Herring	pinctrl-2 = <&usart2_idle_pins_a>;
307724ba675SRob Herring	uart-has-rtscts;
308724ba675SRob Herring	status = "okay";
309724ba675SRob Herring};
310724ba675SRob Herring
311724ba675SRob Herring&usbh_ehci {
312724ba675SRob Herring	phys = <&usbphyc_port0>;
313724ba675SRob Herring	status = "okay";
314724ba675SRob Herring	#address-cells = <1>;
315724ba675SRob Herring	#size-cells = <0>;
316724ba675SRob Herring	/* onboard HUB */
317724ba675SRob Herring	hub@1 {
318724ba675SRob Herring		compatible = "usb424,2514";
319724ba675SRob Herring		reg = <1>;
3204c757f6bSEtienne Carriere		vdd-supply = <&scmi_v3v3_sw>;
321724ba675SRob Herring	};
322724ba675SRob Herring};
323724ba675SRob Herring
324724ba675SRob Herring&usbotg_hs {
325724ba675SRob Herring	phys = <&usbphyc_port1 0>;
326724ba675SRob Herring	phy-names = "usb2-phy";
327724ba675SRob Herring	usb-role-switch;
328724ba675SRob Herring	status = "okay";
329724ba675SRob Herring	port {
330724ba675SRob Herring		usbotg_hs_ep: endpoint {
331724ba675SRob Herring			remote-endpoint = <&con_usb_c_g0_ep>;
332724ba675SRob Herring		};
333724ba675SRob Herring	};
334724ba675SRob Herring};
335724ba675SRob Herring
336724ba675SRob Herring&usbphyc {
337724ba675SRob Herring	status = "okay";
338724ba675SRob Herring};
339724ba675SRob Herring
340724ba675SRob Herring&usbphyc_port0 {
3414c757f6bSEtienne Carriere	phy-supply = <&scmi_vdd_usb>;
342724ba675SRob Herring	st,current-boost-microamp = <1000>;
343724ba675SRob Herring	st,decrease-hs-slew-rate;
344724ba675SRob Herring	st,tune-hs-dc-level = <2>;
345724ba675SRob Herring	st,enable-hs-rftime-reduction;
346724ba675SRob Herring	st,trim-hs-current = <11>;
347724ba675SRob Herring	st,trim-hs-impedance = <2>;
348724ba675SRob Herring	st,tune-squelch-level = <1>;
349724ba675SRob Herring	st,enable-hs-rx-gain-eq;
350724ba675SRob Herring	st,no-hs-ftime-ctrl;
351724ba675SRob Herring	st,no-lsfs-sc;
352724ba675SRob Herring};
353724ba675SRob Herring
354724ba675SRob Herring&usbphyc_port1 {
3554c757f6bSEtienne Carriere	phy-supply = <&scmi_vdd_usb>;
356724ba675SRob Herring	st,current-boost-microamp = <1000>;
357724ba675SRob Herring	st,decrease-hs-slew-rate;
358724ba675SRob Herring	st,tune-hs-dc-level = <2>;
359724ba675SRob Herring	st,enable-hs-rftime-reduction;
360724ba675SRob Herring	st,trim-hs-current = <11>;
361724ba675SRob Herring	st,trim-hs-impedance = <2>;
362724ba675SRob Herring	st,tune-squelch-level = <1>;
363724ba675SRob Herring	st,enable-hs-rx-gain-eq;
364724ba675SRob Herring	st,no-hs-ftime-ctrl;
365724ba675SRob Herring	st,no-lsfs-sc;
366724ba675SRob Herring};
367