]> git.ipfire.org Git - thirdparty/u-boot.git/blame - src/arm/st/stm32mp15xc-lxa-tac.dtsi
Squashed 'dts/upstream/' changes from aaba2d45dc2a..b35b9bd1d4ee
[thirdparty/u-boot.git] / src / arm / st / stm32mp15xc-lxa-tac.dtsi
CommitLineData
53633a89
TR
1// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
2/*
3 * Copyright (C) 2020 STMicroelectronics - All Rights Reserved
4 * Copyright (C) 2021 Rouven Czerwinski, Pengutronix
5 * Copyright (C) 2023 Leonard Göhrs, Pengutronix
6 */
7
8#include "stm32mp15xc.dtsi"
9#include "stm32mp15xx-osd32.dtsi"
10#include "stm32mp15xxac-pinctrl.dtsi"
11
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/input/input.h>
14#include <dt-bindings/leds/common.h>
15#include <dt-bindings/pwm/pwm.h>
16
17/ {
18 aliases {
19 ethernet0 = &ethernet0;
20 ethernet1 = &port_uplink;
21 ethernet2 = &port_dut;
22 mmc1 = &sdmmc2;
23 serial0 = &uart4;
24 serial1 = &usart3;
25 };
26
27 chosen {
28 stdout-path = &uart4;
29 };
30
31 led-controller-0 {
32 compatible = "gpio-leds";
33
34 led-0 {
35 label = "tac:green:user1";
36 gpios = <&gpiof 10 GPIO_ACTIVE_HIGH>;
37 linux,default-trigger = "heartbeat";
38 };
39
40 led-1 {
41 label = "tac:green:user2";
42 gpios = <&gpiog 7 GPIO_ACTIVE_HIGH>;
43 };
44
45 led-2 {
46 label = "tac:green:statusdut";
47 gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
48 };
49
50 /* led-3 and led-4 are internally connected antiparallel to one
51 * another inside the ethernet jack like this:
52 * GPIOA14 ---+---|led-3|>--+--- GPIOD15
53 * +--<|led-4|---+
54 * E.g. only one of the LEDs can be illuminated at a time while
55 * the other output must be driven low.
56 * This should likely be implemented using a multi color LED
57 * driver for antiparallel LEDs.
58 */
59 led-3 {
60 label = "tac:green:statuslab";
61 gpios = <&gpioa 14 GPIO_ACTIVE_HIGH>;
62 };
63
64 led-4 {
65 label = "tac:orange:statuslab";
66 gpios = <&gpiod 15 GPIO_ACTIVE_HIGH>;
67 };
68 };
69
70 gpio-keys {
71 compatible = "gpio-keys";
72
73 button-lower {
74 label = "USER_BTN2";
75 linux,code = <KEY_ESC>;
76 gpios = <&gpioe 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
77 };
78
79 button-upper {
80 label = "USER_BTN";
81 linux,code = <KEY_HOME>;
82 gpios = <&gpioi 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
83 };
84 };
85
86 /* supplied by either barrel connector or PoE */
87 reg_12v: regulator-12v {
88 compatible = "regulator-fixed";
89 regulator-name = "12V";
90 regulator-min-microvolt = <12000000>;
91 regulator-max-microvolt = <12000000>;
92 regulator-always-on;
93 };
94
95 reg_5v: regulator-5v {
96 compatible = "regulator-fixed";
97 regulator-name = "5V";
98 regulator-min-microvolt = <5000000>;
99 regulator-max-microvolt = <5000000>;
100 regulator-always-on;
101 vin-supply = <&reg_12v>;
102 };
103
104 reg_1v2: regulator-1v2 {
105 compatible = "regulator-fixed";
106 regulator-name = "1V2";
107 regulator-min-microvolt = <1200000>;
108 regulator-max-microvolt = <1200000>;
109 regulator-always-on;
110 vin-supply = <&reg_5v>;
111 };
112
113 reg_pb_5v: regulator-pb-5v {
114 compatible = "regulator-fixed";
115 regulator-name = "5V_POWERBOARD";
116 regulator-min-microvolt = <5000000>;
117 regulator-max-microvolt = <5000000>;
118 regulator-always-on;
119 vin-supply = <&reg_5v>;
120 };
121
122 reg_pb_3v3: regulator-pb-3v3 {
123 compatible = "regulator-fixed";
124 regulator-name = "3V3_POWERBOARD";
125 regulator-min-microvolt = <3300000>;
126 regulator-max-microvolt = <3300000>;
127 regulator-always-on;
128 vin-supply = <&reg_pb_5v>;
129 };
130
131 output-iobus-12v {
132 compatible = "regulator-output";
133 vout-supply = <&reg_iobus_12v>;
134 };
135
136 output-vuart {
137 compatible = "regulator-output";
138 vout-supply = <&v3v3_hdmi>;
139 };
140};
141
142baseboard_eeprom: &sip_eeprom {
143};
144
145&adc {
146 pinctrl-names = "default";
147 pinctrl-0 = <&adc1_ain_pins_a>;
148 vdd-supply = <&vdd>;
149 vdda-supply = <&vdda>;
150 vref-supply = <&vrefbuf>;
151 status = "okay";
152
153 adc1: adc@0 {
154 st,adc-channels = <0 1 2 5 9 10 13 15>;
155 st,min-sample-time-nsecs = <5000>;
156 #address-cells = <1>;
157 #size-cells = <0>;
158 status = "okay";
159
160 channel@0 {
161 reg = <0>;
162 label = "HOST_2_CURR_FB";
163 };
164
165 channel@1 {
166 reg = <1>;
167 label = "HOST_3_CURR_FB";
168 };
169
170 channel@2 {
171 reg = <2>;
172 label = "OUT_0_FB";
173 };
174
175 channel@5 {
176 reg = <5>;
177 label = "IOBUS_CURR_FB";
178 };
179
180 channel@9 {
181 reg = <9>;
182 label = "IOBUS_VOLT_FB";
183 };
184
185 channel@10 {
186 reg = <10>;
187 label = "OUT_1_FB";
188 };
189
190 channel@13 {
191 reg = <13>;
192 label = "HOST_CURR_FB";
193 };
194
195 channel@15 {
196 reg = <15>;
197 label = "HOST_1_CURR_FB";
198 };
199 };
200
201 adc2: adc@100 {
202 st,adc-channels = <12>;
203 st,min-sample-time-nsecs = <500000>;
204 #address-cells = <1>;
205 #size-cells = <0>;
206 status = "okay";
207
208 channel@12 {
209 reg = <12>;
210 label = "TEMP_INTERNAL";
211 };
212 };
213};
214
215&crc1 {
216 status = "okay";
217};
218
219&cryp1 {
220 status = "okay";
221};
222
223&dts {
224 status = "okay";
225};
226
227&ethernet0 {
228 assigned-clocks = <&rcc ETHCK_K>, <&rcc PLL4_P>;
229 assigned-clock-parents = <&rcc PLL4_P>;
230 assigned-clock-rates = <125000000>; /* Clock PLL4 to 750Mhz in ATF */
231
232 pinctrl-names = "default", "sleep";
233 pinctrl-0 = <&ethernet0_rgmii_pins_e>;
234 pinctrl-1 = <&ethernet0_rgmii_sleep_pins_e>;
235
236 st,eth-clk-sel;
237 phy-mode = "rgmii-id";
238
239 status = "okay";
240
241 fixed-link {
242 speed = <1000>;
243 full-duplex;
244 };
245};
246
247&ethernet0_rgmii_pins_e {
248 pins1 {
249 /* Reduce EMI emission by reducing RGMII drive strength */
250 slew-rate = <1>;
251 };
252};
253
254&gpiob {
255 gpio-line-names = "", "", "", "", "", /* 0 */
256 "", "USB_RESET", "", "", "", /* 5 */
257 "", "", "", "", "", /* 10 */
258 ""; /* 15 */
259};
260
261&gpiod {
262 gpio-line-names = "", "", "", "", "TP38", /* 0 */
263 "TP39", "", "", "TP41", "TP42", /* 5 */
264 "OLED_DC", "", "", "ETH_CS", "", /* 10 */
265 "ETH_LAB_LEDRN"; /* 15 */
266};
267
268&gpioe {
269 gpio-line-names = "TP35", "", "", "", "CAN_1_120R", /* 0 */
270 "", "", "USER_BTN2", "TP48", "UART_TX_EN", /* 5 */
271 "UART_RX_EN", "TP24", "", "TP25", "TP26", /* 10 */
272 "TP27"; /* 15 */
273};
274
275&gpiof {
276 gpio-line-names = "TP36", "TP37", "", "", "OLED_CS", /* 0 */
277 "", "", "", "", "", /* 5 */
278 "USER_LED1", "", "STACK_CS0", "", "", /* 10 */
279 ""; /* 15 */
280};
281
282&gpiog {
283 gpio-line-names = "ETH_RESET", "", "", "", "", /* 0 */
284 "IOBUS_FLT_FB", "", "USER_LED2", "ETH1_PPS_A", "CAN_0_120R", /* 5 */
285 "TP49", "", "", "", "", /* 10 */
286 ""; /* 15 */
287};
288
289&gpioh {
290 gpio-line-names = "", "", "OUT_1", "OUT_0", "OLED_RESET", /* 0 */
291 "", "", "", "", "", /* 5 */
292 "ETH1_PPS_B", "ETH_GPIO2", "", "IOBUS_PWR_EN", "", /* 10 */
293 "TP33"; /* 15 */
294};
295
296&gpioi {
297 gpio-line-names = "TIM_RTS", "", "", "", "DEVICE_DATA_EN", /* 0 */
298 "", "", "", "ETH_WOL", "TP43", /* 5 */
299 "", "USER_BTN"; /* 10 */
300};
301
302&gpioz {
303 gpio-line-names = "HWID0", "HWID1", "HWID2", "HWID3", "", /* 0 */
304 "", "HWID4", "HWID5"; /* 5 */
305};
306
307&hash1 {
308 status = "okay";
309};
310
311&i2c1 {
312 pinctrl-names = "default", "sleep";
313 pinctrl-0 = <&i2c1_pins_b>;
314 pinctrl-1 = <&i2c1_sleep_pins_b>;
315 status = "okay";
316
317 powerboard_eeprom: eeprom@50 {
318 compatible = "atmel,24c02";
319 reg = <0x50>;
320 vcc-supply = <&v3v3>;
321 };
322
323 temperature-sensor@48 {
324 compatible = "national,lm75a";
325 reg = <0x48>;
326 status = "disabled";
327 };
328};
329
330&i2c5 {
331 /delete-property/dmas;
332 /delete-property/dma-names;
333
334 pinctrl-names = "default", "sleep";
335 pinctrl-0 = <&i2c5_pins_b>;
336 pinctrl-1 = <&i2c5_sleep_pins_b>;
337
338 status = "okay";
339
340 usbhub: usbhub@2c {
341 compatible ="microchip,usb2514b";
342 reg = <0x2c>;
343 vdd-supply = <&v3v3>;
344 reset-gpios = <&gpiob 6 GPIO_ACTIVE_LOW>;
345 };
346};
347
348&iwdg2 {
349 timeout-sec = <8>;
350 status = "okay";
351};
352
353&m_can1 {
354 pinctrl-names = "default", "sleep";
355 pinctrl-0 = <&m_can1_pins_b>;
356 pinctrl-1 = <&m_can1_sleep_pins_b>;
357 status = "okay";
358};
359
360&m_can2 {
361 pinctrl-names = "default", "sleep";
362 pinctrl-0 = <&m_can2_pins_a>;
363 pinctrl-1 = <&m_can2_sleep_pins_a>;
364 status = "okay";
365};
366
367&pmic {
368 regulators {
369 buck1-supply = <&reg_5v>; /* VIN */
370 buck2-supply = <&reg_5v>; /* VIN */
371 buck3-supply = <&reg_5v>; /* VIN */
372 buck4-supply = <&reg_5v>; /* VIN */
373 ldo2-supply = <&reg_5v>; /* PMIC_LDO25IN */
374 ldo4-supply = <&reg_5v>; /* VIN */
375 ldo5-supply = <&reg_5v>; /* PMIC_LDO25IN */
376 vref_ddr-supply = <&reg_5v>; /* VIN */
377 boost-supply = <&reg_5v>; /* PMIC_BSTIN */
378 pwr_sw2-supply = <&bst_out>; /* PMIC_SWIN */
379 };
380};
381
382&pwr_regulators {
383 vdd-supply = <&vdd>;
384 vdd_3v3_usbfs-supply = <&vdd_usb>;
385};
386
387&rtc {
388 status = "okay";
389};
390
391&sdmmc2 {
392 pinctrl-names = "default", "opendrain", "sleep";
393 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>;
394 pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_b>;
395 pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_b>;
396 vmmc-supply = <&v3v3>;
397
398 bus-width = <8>;
399 mmc-ddr-3_3v;
400 no-1-8-v;
401 non-removable;
402 no-sd;
403 no-sdio;
404 st,neg-edge;
405
406 status = "okay";
407};
408
409&spi2 {
410 pinctrl-names = "default";
411 pinctrl-0 = <&spi2_pins_c>;
412 cs-gpios = <&gpiof 12 GPIO_ACTIVE_LOW>;
413 status = "okay";
414};
415
416&spi4 {
417 pinctrl-names = "default";
418 pinctrl-0 = <&spi4_pins_a>;
419 cs-gpios = <&gpiof 4 GPIO_ACTIVE_LOW>;
420 status = "okay";
421
422 lcd: display@0 {
423 compatible = "shineworld,lh133k", "panel-mipi-dbi-spi";
424 reg = <0>;
425 power-supply = <&v3v3>;
426 io-supply = <&v3v3>;
427 backlight = <&backlight>;
428 dc-gpios = <&gpiod 10 GPIO_ACTIVE_HIGH>;
429 reset-gpios = <&gpioh 4 GPIO_ACTIVE_HIGH>;
430 spi-3wire;
431 spi-max-frequency = <32000000>;
432
433 width-mm = <23>;
434 height-mm = <23>;
435 rotation = <180>;
436
437 panel-timing {
438 hactive = <240>;
439 vactive = <240>;
440 hback-porch = <0>;
441 vback-porch = <0>;
442
443 clock-frequency = <0>;
444 hfront-porch = <0>;
445 hsync-len = <0>;
446 vfront-porch = <0>;
447 vsync-len = <0>;
448 };
449 };
450};
451
452&spi5 {
453 pinctrl-names = "default";
454 pinctrl-0 = <&spi5_pins_a>;
455
456 /* spare dmas for other usage */
457 /delete-property/dmas;
458 /delete-property/dma-names;
459
460 cs-gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;
461
462 status = "okay";
463
464 switch: switch@0 {
465 compatible = "microchip,ksz9563";
466 reg = <0>;
467
468 reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>;
469 spi-max-frequency = <44000000>;
470
471 interrupt-parent = <&gpioa>;
472 interrupts = <6 IRQ_TYPE_EDGE_RISING>;
473
474 ports {
475 #address-cells = <1>;
476 #size-cells = <0>;
477 port_dut: port@0 {
478 reg = <0>;
479 label = "dut";
480 };
481
482 port_uplink: port@1 {
483 reg = <1>;
484 label = "uplink";
485 };
486
487 port_cpu: port@2 {
488 reg = <2>;
489 label = "cpu";
490
491 ethernet = <&ethernet0>;
492
493 phy-mode = "rgmii-id";
494 rx-internal-delay-ps = <2000>;
495 tx-internal-delay-ps = <2000>;
496
497 fixed-link {
498 speed = <1000>;
499 full-duplex;
500 };
501 };
502 };
503 };
504};
505
506&timers2 {
507 /* spare dmas for other usage */
508 /delete-property/dmas;
509 /delete-property/dma-names;
510
511 status = "okay";
512
513 timer@1 {
514 status = "okay";
515 };
516};
517
518&timers3 {
519 /* spare dmas for other usage */
520 /delete-property/dmas;
521 /delete-property/dma-names;
522
523 status = "okay";
524
525 timer@2 {
526 status = "okay";
527 };
528};
529
530&timers4 {
531 /* spare dmas for other usage */
532 /delete-property/dmas;
533 /delete-property/dma-names;
534
535 status = "okay";
536
537 timer@3 {
538 status = "okay";
539 };
540};
541
542&uart4 {
543 label = "debug";
544
545 pinctrl-names = "default";
546 pinctrl-0 = <&uart4_pins_a>;
547
548 /* spare dmas for other usage */
549 /delete-property/dmas;
550 /delete-property/dma-names;
551
552 status = "okay";
553};
554
555&usart3 {
556 label = "dut";
557 uart-has-rtscts;
558
559 pinctrl-names = "default";
560 pinctrl-0 = <&usart3_pins_f>;
561
562 /* spare dmas for other usage */
563 /delete-property/dmas;
564 /delete-property/dma-names;
565
566 status = "okay";
567};
568
569&usbh_ehci {
53633a89
TR
570 status = "okay";
571};
572
573&usbotg_hs {
574 phys = <&usbphyc_port1 0>;
575 phy-names = "usb2-phy";
576
577 vusb_d-supply = <&vdd_usb>;
578 vusb_a-supply = <&reg18>;
579
580 dr_mode = "peripheral";
581
582 status = "okay";
583};
584
585&usbphyc {
586 status = "okay";
587};
588
589&usbphyc_port0 {
590 phy-supply = <&vdd_usb>;
591};
592
593&usbphyc_port1 {
594 phy-supply = <&vdd_usb>;
595};
596
597&vrefbuf {
598 regulator-min-microvolt = <2500000>;
599 regulator-max-microvolt = <2500000>;
600 vdda-supply = <&vdda>;
601
602 status = "okay";
603};