blob: eea740d097c72ff1f866c540f7147a20993db6ae [file] [log] [blame]
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2021 - All Rights Reserved
4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5 */
6
7/dts-v1/;
8
Patrick Delaunay53dfe692022-06-30 10:20:17 +02009#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/leds/common.h>
Patrice Chotard02d88c02023-09-26 17:09:18 +020012#include <dt-bindings/regulator/st,stm32mp13-regulator.h>
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +020013#include "stm32mp135.dtsi"
14#include "stm32mp13xf.dtsi"
15#include "stm32mp13-pinctrl.dtsi"
16
17/ {
18 model = "STMicroelectronics STM32MP135F-DK Discovery Board";
19 compatible = "st,stm32mp135f-dk", "st,stm32mp135";
20
21 aliases {
22 serial0 = &uart4;
Patrick Delaunay4597d262023-07-10 10:38:45 +020023 serial1 = &usart1;
24 serial2 = &uart8;
25 serial3 = &usart2;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +020026 };
27
Patrick Delaunay4597d262023-07-10 10:38:45 +020028 chosen {
29 stdout-path = "serial0:115200n8";
30 };
31
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +020032 memory@c0000000 {
33 device_type = "memory";
34 reg = <0xc0000000 0x20000000>;
35 };
36
Patrick Delaunayabf20ae2022-07-06 18:20:24 +020037 reserved-memory {
38 #address-cells = <1>;
39 #size-cells = <1>;
40 ranges;
41
Patrick Delaunay75785d42022-09-07 13:42:23 +020042 optee@dd000000 {
43 reg = <0xdd000000 0x3000000>;
Patrick Delaunayabf20ae2022-07-06 18:20:24 +020044 no-map;
45 };
46 };
47
Patrick Delaunay53dfe692022-06-30 10:20:17 +020048 gpio-keys {
49 compatible = "gpio-keys";
50
Patrick Delaunay7f2cba42023-04-24 16:21:10 +020051 button-user {
Patrick Delaunay53dfe692022-06-30 10:20:17 +020052 label = "User-PA13";
53 linux,code = <BTN_1>;
54 gpios = <&gpioa 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
55 };
56 };
57
58 leds {
59 compatible = "gpio-leds";
60
61 led-blue {
62 function = LED_FUNCTION_HEARTBEAT;
63 color = <LED_COLOR_ID_BLUE>;
64 gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
65 linux,default-trigger = "heartbeat";
66 default-state = "off";
67 };
68 };
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +020069};
70
Patrick Delaunay7f2cba42023-04-24 16:21:10 +020071&adc_1 {
72 pinctrl-names = "default";
73 pinctrl-0 = <&adc1_usb_cc_pins_a>;
Patrice Chotard02d88c02023-09-26 17:09:18 +020074 vdda-supply = <&scmi_vdd_adc>;
75 vref-supply = <&scmi_vdd_adc>;
Patrick Delaunay7f2cba42023-04-24 16:21:10 +020076 status = "okay";
77 adc1: adc@0 {
78 status = "okay";
79 /*
80 * Type-C USB_PWR_CC1 & USB_PWR_CC2 on in6 & in12.
81 * Use at least 5 * RC time, e.g. 5 * (Rp + Rd) * C:
82 * 5 * (5.1 + 47kOhms) * 5pF => 1.3us.
83 * Use arbitrary margin here (e.g. 5us).
84 */
85 channel@6 {
86 reg = <6>;
87 st,min-sample-time-ns = <5000>;
88 };
89 channel@12 {
90 reg = <12>;
91 st,min-sample-time-ns = <5000>;
92 };
93 };
94};
95
96&i2c1 {
97 pinctrl-names = "default", "sleep";
98 pinctrl-0 = <&i2c1_pins_a>;
99 pinctrl-1 = <&i2c1_sleep_pins_a>;
100 i2c-scl-rising-time-ns = <96>;
101 i2c-scl-falling-time-ns = <3>;
102 clock-frequency = <1000000>;
103 status = "okay";
104 /* spare dmas for other usage */
105 /delete-property/dmas;
106 /delete-property/dma-names;
107
108 mcp23017: pinctrl@21 {
109 compatible = "microchip,mcp23017";
110 reg = <0x21>;
111 gpio-controller;
112 #gpio-cells = <2>;
113 interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
114 interrupt-parent = <&gpiog>;
115 pinctrl-names = "default";
116 pinctrl-0 = <&mcp23017_pins_a>;
117 interrupt-controller;
118 #interrupt-cells = <2>;
119 microchip,irq-mirror;
120 };
121
122 typec@53 {
123 compatible = "st,stm32g0-typec";
124 reg = <0x53>;
125 /* Alert pin on PI2 */
126 interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
127 interrupt-parent = <&gpioi>;
128 /* Internal pull-up on PI2 */
129 pinctrl-names = "default";
130 pinctrl-0 = <&stm32g0_intn_pins_a>;
131 firmware-name = "stm32g0-ucsi.mp135f-dk.fw";
132 connector {
133 compatible = "usb-c-connector";
134 label = "USB-C";
135
136 port {
137 con_usb_c_g0_ep: endpoint {
138 remote-endpoint = <&usbotg_hs_ep>;
139 };
140 };
141 };
142 };
143};
144
145&i2c5 {
146 pinctrl-names = "default", "sleep";
147 pinctrl-0 = <&i2c5_pins_a>;
148 pinctrl-1 = <&i2c5_sleep_pins_a>;
149 i2c-scl-rising-time-ns = <170>;
150 i2c-scl-falling-time-ns = <5>;
151 clock-frequency = <400000>;
152 status = "okay";
153 /* spare dmas for other usage */
154 /delete-property/dmas;
155 /delete-property/dma-names;
156};
157
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200158&iwdg2 {
159 timeout-sec = <32>;
160 status = "okay";
161};
162
Patrick Delaunay53dfe692022-06-30 10:20:17 +0200163&rtc {
164 status = "okay";
165};
166
Patrice Chotard02d88c02023-09-26 17:09:18 +0200167&scmi_regu {
168 scmi_vdd_adc: regulator@10 {
169 reg = <VOLTD_SCMI_STPMIC1_LDO1>;
170 regulator-name = "vdd_adc";
171 };
172 scmi_vdd_usb: regulator@13 {
173 reg = <VOLTD_SCMI_STPMIC1_LDO4>;
174 regulator-name = "vdd_usb";
175 };
176 scmi_vdd_sd: regulator@14 {
177 reg = <VOLTD_SCMI_STPMIC1_LDO5>;
178 regulator-name = "vdd_sd";
179 };
180 scmi_v1v8_periph: regulator@15 {
181 reg = <VOLTD_SCMI_STPMIC1_LDO6>;
182 regulator-name = "v1v8_periph";
183 };
184 scmi_v3v3_sw: regulator@19 {
185 reg = <VOLTD_SCMI_STPMIC1_PWR_SW2>;
186 regulator-name = "v3v3_sw";
187 };
188};
189
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200190&sdmmc1 {
191 pinctrl-names = "default", "opendrain", "sleep";
192 pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_clk_pins_a>;
193 pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_clk_pins_a>;
194 pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
Yann Gautierc69095d2022-11-02 14:53:48 +0100195 cd-gpios = <&gpioh 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200196 disable-wp;
197 st,neg-edge;
198 bus-width = <4>;
Patrice Chotard02d88c02023-09-26 17:09:18 +0200199 vmmc-supply = <&scmi_vdd_sd>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200200 status = "okay";
201};
202
Patrick Delaunay7f2cba42023-04-24 16:21:10 +0200203&spi5 {
204 pinctrl-names = "default", "sleep";
205 pinctrl-0 = <&spi5_pins_a>;
206 pinctrl-1 = <&spi5_sleep_pins_a>;
207 status = "disabled";
208};
209
210&timers3 {
211 /delete-property/dmas;
212 /delete-property/dma-names;
213 status = "disabled";
214 pwm {
215 pinctrl-0 = <&pwm3_pins_a>;
216 pinctrl-1 = <&pwm3_sleep_pins_a>;
217 pinctrl-names = "default", "sleep";
218 status = "okay";
219 };
220 timer@2 {
221 status = "okay";
222 };
223};
224
225&timers4 {
226 /delete-property/dmas;
227 /delete-property/dma-names;
228 status = "disabled";
229 pwm {
230 pinctrl-0 = <&pwm4_pins_a>;
231 pinctrl-1 = <&pwm4_sleep_pins_a>;
232 pinctrl-names = "default", "sleep";
233 status = "okay";
234 };
235 timer@3 {
236 status = "okay";
237 };
238};
239
240&timers8 {
241 /delete-property/dmas;
242 /delete-property/dma-names;
243 status = "disabled";
244 pwm {
245 pinctrl-0 = <&pwm8_pins_a>;
246 pinctrl-1 = <&pwm8_sleep_pins_a>;
247 pinctrl-names = "default", "sleep";
248 status = "okay";
249 };
250 timer@7 {
251 status = "okay";
252 };
253};
254
255&timers14 {
256 status = "disabled";
257 pwm {
258 pinctrl-0 = <&pwm14_pins_a>;
259 pinctrl-1 = <&pwm14_sleep_pins_a>;
260 pinctrl-names = "default", "sleep";
261 status = "okay";
262 };
263 timer@13 {
264 status = "okay";
265 };
266};
267
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200268&uart4 {
Patrick Delaunay4597d262023-07-10 10:38:45 +0200269 pinctrl-names = "default", "sleep", "idle";
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200270 pinctrl-0 = <&uart4_pins_a>;
Patrick Delaunay4597d262023-07-10 10:38:45 +0200271 pinctrl-1 = <&uart4_sleep_pins_a>;
272 pinctrl-2 = <&uart4_idle_pins_a>;
273 /delete-property/dmas;
274 /delete-property/dma-names;
275 status = "okay";
276};
277
278&uart8 {
279 pinctrl-names = "default", "sleep", "idle";
280 pinctrl-0 = <&uart8_pins_a>;
281 pinctrl-1 = <&uart8_sleep_pins_a>;
282 pinctrl-2 = <&uart8_idle_pins_a>;
283 /delete-property/dmas;
284 /delete-property/dma-names;
285 status = "disabled";
286};
287
288&usart1 {
289 pinctrl-names = "default", "sleep", "idle";
290 pinctrl-0 = <&usart1_pins_a>;
291 pinctrl-1 = <&usart1_sleep_pins_a>;
292 pinctrl-2 = <&usart1_idle_pins_a>;
293 uart-has-rtscts;
294 status = "disabled";
295};
296
297/* Bluetooth */
298&usart2 {
299 pinctrl-names = "default", "sleep", "idle";
300 pinctrl-0 = <&usart2_pins_a>;
301 pinctrl-1 = <&usart2_sleep_pins_a>;
302 pinctrl-2 = <&usart2_idle_pins_a>;
303 uart-has-rtscts;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200304 status = "okay";
305};
Patrick Delaunay7f2cba42023-04-24 16:21:10 +0200306
307&usbh_ehci {
308 phys = <&usbphyc_port0>;
309 status = "okay";
310 #address-cells = <1>;
311 #size-cells = <0>;
312 /* onboard HUB */
313 hub@1 {
314 compatible = "usb424,2514";
315 reg = <1>;
Patrice Chotard02d88c02023-09-26 17:09:18 +0200316 vdd-supply = <&scmi_v3v3_sw>;
Patrick Delaunay7f2cba42023-04-24 16:21:10 +0200317 };
318};
319
320&usbotg_hs {
321 phys = <&usbphyc_port1 0>;
322 phy-names = "usb2-phy";
323 usb-role-switch;
324 status = "okay";
325 port {
326 usbotg_hs_ep: endpoint {
327 remote-endpoint = <&con_usb_c_g0_ep>;
328 };
329 };
330};
331
332&usbphyc {
333 status = "okay";
334};
335
336&usbphyc_port0 {
Patrice Chotard02d88c02023-09-26 17:09:18 +0200337 phy-supply = <&scmi_vdd_usb>;
Patrick Delaunay7f2cba42023-04-24 16:21:10 +0200338 st,current-boost-microamp = <1000>;
339 st,decrease-hs-slew-rate;
340 st,tune-hs-dc-level = <2>;
341 st,enable-hs-rftime-reduction;
342 st,trim-hs-current = <11>;
343 st,trim-hs-impedance = <2>;
344 st,tune-squelch-level = <1>;
345 st,enable-hs-rx-gain-eq;
346 st,no-hs-ftime-ctrl;
347 st,no-lsfs-sc;
348};
349
350&usbphyc_port1 {
Patrice Chotard02d88c02023-09-26 17:09:18 +0200351 phy-supply = <&scmi_vdd_usb>;
Patrick Delaunay7f2cba42023-04-24 16:21:10 +0200352 st,current-boost-microamp = <1000>;
353 st,decrease-hs-slew-rate;
354 st,tune-hs-dc-level = <2>;
355 st,enable-hs-rftime-reduction;
356 st,trim-hs-current = <11>;
357 st,trim-hs-impedance = <2>;
358 st,tune-squelch-level = <1>;
359 st,enable-hs-rx-gain-eq;
360 st,no-hs-ftime-ctrl;
361 st,no-lsfs-sc;
362};