blob: eb1ec85aba28bade102b2ed88ff179c41e3583ec [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0
2/*
Tom Rini6bb92fc2024-05-20 09:54:58 -06003 * Copyright (C) 2014-2019 Texas Instruments Incorporated - https://www.ti.com/
Tom Rini53633a82024-02-29 12:33:36 -05004 */
5
6/dts-v1/;
7
8#include "dra74x.dtsi"
9#include "am57xx-commercial-grade.dtsi"
10#include "dra74x-mmc-iodelay.dtsi"
11#include "dra74-ipu-dsp-common.dtsi"
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/pinctrl/dra.h>
15
16/ {
17 model = "BeagleBoard.org BeagleBone AI";
18 compatible = "beagle,am5729-beagleboneai", "ti,am5728",
19 "ti,dra742", "ti,dra74", "ti,dra7";
20
21 aliases {
22 rtc0 = &tps659038_rtc;
23 rtc1 = &rtc;
24 display0 = &hdmi_conn;
25 };
26
27 chosen {
28 stdout-path = &uart1;
29 };
30
31 memory@0 {
32 device_type = "memory";
33 reg = <0x0 0x80000000 0x0 0x40000000>;
34 };
35
36 reserved-memory {
37 #address-cells = <2>;
38 #size-cells = <2>;
39 ranges;
40
41 ipu2_memory_region: ipu2-memory@95800000 {
42 compatible = "shared-dma-pool";
43 reg = <0x0 0x95800000 0x0 0x3800000>;
44 reusable;
45 status = "okay";
46 };
47
48 dsp1_memory_region: dsp1-memory@99000000 {
49 compatible = "shared-dma-pool";
50 reg = <0x0 0x99000000 0x0 0x4000000>;
51 reusable;
52 status = "okay";
53 };
54
55 ipu1_memory_region: ipu1-memory@9d000000 {
56 compatible = "shared-dma-pool";
57 reg = <0x0 0x9d000000 0x0 0x2000000>;
58 reusable;
59 status = "okay";
60 };
61
62 dsp2_memory_region: dsp2-memory@9f000000 {
63 compatible = "shared-dma-pool";
64 reg = <0x0 0x9f000000 0x0 0x800000>;
65 reusable;
66 status = "okay";
67 };
68
69 };
70
71 vdd_adc: gpioregulator-vdd_adc {
72 compatible = "regulator-gpio";
73 regulator-name = "vdd_adc";
74 vin-supply = <&vdd_5v>;
75 regulator-min-microvolt = <1800000>;
76 regulator-max-microvolt = <3300000>;
77 regulator-always-on;
78 regulator-boot-on;
79 gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
80 states = <1800000 0
81 3300000 1>;
82 };
83
84 vdd_5v: fixedregulator-vdd_5v {
85 compatible = "regulator-fixed";
86 regulator-name = "vdd_5v";
87 regulator-min-microvolt = <5000000>;
88 regulator-max-microvolt = <5000000>;
89 regulator-always-on;
90 regulator-boot-on;
91 };
92
93 vtt_fixed: fixedregulator-vtt {
94 /* TPS51200 */
95 compatible = "regulator-fixed";
96 regulator-name = "vtt_fixed";
97 vin-supply = <&vdd_ddr>;
98 regulator-min-microvolt = <3300000>;
99 regulator-max-microvolt = <3300000>;
100 regulator-always-on;
101 regulator-boot-on;
102 };
103
104 leds {
105 compatible = "gpio-leds";
106
107 led0 {
108 label = "beaglebone:green:usr0";
109 gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
110 linux,default-trigger = "heartbeat";
111 default-state = "off";
112 };
113
114 led1 {
115 label = "beaglebone:green:usr1";
116 gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
117 linux,default-trigger = "mmc0";
118 default-state = "off";
119 };
120
121 led2 {
122 label = "beaglebone:green:usr2";
123 gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>;
124 linux,default-trigger = "cpu";
125 default-state = "off";
126 };
127
128 led3 {
129 label = "beaglebone:green:usr3";
130 gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
131 linux,default-trigger = "mmc1";
132 default-state = "off";
133 };
134
135 led4 {
136 label = "beaglebone:green:usr4";
137 gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
138 linux,default-trigger = "netdev";
139 default-state = "off";
140 };
141 };
142
143 hdmi_conn: connector@0 {
144 compatible = "hdmi-connector";
145 label = "hdmi";
146 type = "a";
147
148 port {
149 hdmi_connector_in: endpoint {
150 remote-endpoint = <&hdmi_encoder_out>;
151 };
152 };
153 };
154
155 hdmi_enc: encoder@0 {
156 /* "ti,tpd12s016" software compatible with "ti,tpd12s015"
157 * no need for individual driver
158 */
159 compatible = "ti,tpd12s015";
160 gpios = <0>,
161 <0>,
162 <&gpio7 12 GPIO_ACTIVE_HIGH>;
163
164 ports {
165 #address-cells = <0x1>;
166 #size-cells = <0x0>;
167
168 port@0 {
169 reg = <0x0>;
170
171 hdmi_encoder_in: endpoint@0 {
172 remote-endpoint = <&hdmi_out>;
173 };
174 };
175
176 port@1 {
177 reg = <0x1>;
178
179 hdmi_encoder_out: endpoint@0 {
180 remote-endpoint = <&hdmi_connector_in>;
181 };
182 };
183 };
184 };
185
186 emmc_pwrseq: emmc_pwrseq {
187 compatible = "mmc-pwrseq-emmc";
188 reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
189 };
190
191 brcmf_pwrseq: brcmf_pwrseq {
192 compatible = "mmc-pwrseq-simple";
193 reset-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>, /* BT-REG-ON */
194 <&gpio3 18 GPIO_ACTIVE_LOW>; /* WL-REG-ON */
195 };
196
197 extcon_usb1: extcon_usb1 {
198 compatible = "linux,extcon-usb-gpio";
199 ti,enable-id-detection;
Tom Rini93743d22024-04-01 09:08:13 -0400200 id-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
Tom Rini53633a82024-02-29 12:33:36 -0500201 };
202};
203
204&i2c1 {
205 status = "okay";
206 clock-frequency = <400000>;
207
208 tps659038: tps659038@58 {
209 compatible = "ti,tps659038";
210 reg = <0x58>;
211 interrupt-parent = <&gpio6>;
212 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
213
214 #interrupt-cells = <2>;
215 interrupt-controller;
216
217 ti,system-power-controller;
218 ti,palmas-override-powerhold;
219
220 tps659038_pmic {
221 compatible = "ti,tps659038-pmic";
222
223 smps12-in-supply = <&vdd_5v>;
224 smps3-in-supply = <&vdd_5v>;
225 smps45-in-supply = <&vdd_5v>;
226 smps6-in-supply = <&vdd_5v>;
227 smps7-in-supply = <&vdd_5v>;
228 mps3-in-supply = <&vdd_5v>;
229 smps8-in-supply = <&vdd_5v>;
230 smps9-in-supply = <&vdd_5v>;
231 ldo1-in-supply = <&vdd_5v>;
232 ldo2-in-supply = <&vdd_5v>;
233 ldo3-in-supply = <&vdd_5v>;
234 ldo4-in-supply = <&vdd_5v>;
235 ldo9-in-supply = <&vdd_5v>;
236 ldoln-in-supply = <&vdd_5v>;
237 ldousb-in-supply = <&vdd_5v>;
238 ldortc-in-supply = <&vdd_5v>;
239
240 regulators {
241 vdd_mpu: smps12 {
242 /* VDD_MPU */
243 regulator-name = "smps12";
244 regulator-min-microvolt = <850000>;
245 regulator-max-microvolt = <1250000>;
246 regulator-always-on;
247 regulator-boot-on;
248 };
249
250 vdd_ddr: smps3 {
251 /* VDD_DDR EMIF1 EMIF2 */
252 regulator-name = "smps3";
253 regulator-min-microvolt = <1350000>;
254 regulator-max-microvolt = <1350000>;
255 regulator-always-on;
256 regulator-boot-on;
257 };
258
259 vdd_dspeve: smps45 {
260 /* VDD_DSPEVE on AM572 */
261 regulator-name = "smps45";
262 regulator-min-microvolt = < 850000>;
263 regulator-max-microvolt = <1250000>;
264 regulator-always-on;
265 regulator-boot-on;
266 };
267
268 vdd_gpu: smps6 {
269 /* VDD_GPU */
270 regulator-name = "smps6";
271 regulator-min-microvolt = < 850000>;
272 regulator-max-microvolt = <1250000>;
273 regulator-always-on;
274 regulator-boot-on;
275 };
276
277 vdd_core: smps7 {
278 /* VDD_CORE */
279 regulator-name = "smps7";
280 regulator-min-microvolt = < 850000>; /*** 1.15V */
281 regulator-max-microvolt = <1150000>;
282 regulator-always-on;
283 regulator-boot-on;
284 };
285
286 vdd_iva: smps8 {
287 /* VDD_IVAHD */ /*** 1.06V */
288 regulator-name = "smps8";
289 };
290
291 vdd_3v3: smps9 {
292 /* VDD_3V3 */
293 regulator-name = "smps9";
294 regulator-min-microvolt = <3300000>;
295 regulator-max-microvolt = <3300000>;
296 regulator-always-on;
297 regulator-boot-on;
298 };
299
300 vdd_sd: ldo1 {
301 /* VDDSHV8 - VSDMMC */
302 regulator-name = "ldo1";
303 regulator-min-microvolt = <1800000>;
304 regulator-max-microvolt = <3300000>;
305 regulator-boot-on;
306 regulator-always-on;
307 };
308
309 vdd_1v8: ldo2 {
310 /* VDDSH18V */
311 regulator-name = "ldo2";
312 regulator-min-microvolt = <1800000>;
313 regulator-max-microvolt = <1800000>;
314 regulator-always-on;
315 regulator-boot-on;
316 };
317
318 vdd_1v8_phy_ldo3: ldo3 {
319 /* R1.3a 572x V1_8PHY_LDO3: USB, SATA */
320 regulator-name = "ldo3";
321 regulator-min-microvolt = <1800000>;
322 regulator-max-microvolt = <1800000>;
323 regulator-always-on;
324 regulator-boot-on;
325 };
326
327 vdd_1v8_phy_ldo4: ldo4 {
328 /* R1.3a 572x V1_8PHY_LDO4: PCIE, HDMI*/
329 regulator-name = "ldo4";
330 regulator-min-microvolt = <1800000>;
331 regulator-max-microvolt = <1800000>;
332 regulator-always-on;
333 regulator-boot-on;
334 };
335
336 /* LDO5-8 unused */
337
338 vdd_rtc: ldo9 {
339 /* VDD_RTC */
340 regulator-name = "ldo9";
341 regulator-min-microvolt = < 840000>;
342 regulator-max-microvolt = <1160000>;
343 regulator-always-on;
344 regulator-boot-on;
345 };
346
347 vdd_1v8_pll: ldoln {
348 /* VDDA_1V8_PLL */
349 regulator-name = "ldoln";
350 regulator-min-microvolt = <1800000>;
351 regulator-max-microvolt = <1800000>;
352 regulator-always-on;
353 regulator-boot-on;
354 };
355
356 ldousb_reg: ldousb {
357 /* VDDA_3V_USB: VDDA_USBHS33 */
358 regulator-name = "ldousb";
359 regulator-min-microvolt = <3300000>;
360 regulator-max-microvolt = <3300000>;
361 regulator-always-on;
362 regulator-boot-on;
363 };
364
365 ldortc_reg: ldortc {
366 /* VDDA_RTC */
367 regulator-name = "ldortc";
368 regulator-min-microvolt = <1800000>;
369 regulator-max-microvolt = <1800000>;
370 regulator-always-on;
371 regulator-boot-on;
372 };
373
374 regen1: regen1 {
375 /* VDD_3V3_ON */
376 regulator-name = "regen1";
377 regulator-boot-on;
378 regulator-always-on;
379 };
380
381 regen2: regen2 {
382 /* Needed for PMIC internal resource */
383 regulator-name = "regen2";
384 regulator-boot-on;
385 regulator-always-on;
386 };
387 };
388 };
389
390 tps659038_rtc: tps659038_rtc {
391 compatible = "ti,palmas-rtc";
392 interrupt-parent = <&tps659038>;
393 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
394 wakeup-source;
395 };
396
397 tps659038_pwr_button: tps659038_pwr_button {
398 compatible = "ti,palmas-pwrbutton";
399 interrupt-parent = <&tps659038>;
400 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
401 wakeup-source;
402 ti,palmas-long-press-seconds = <12>;
403 };
404
405 tps659038_gpio: tps659038_gpio {
406 compatible = "ti,palmas-gpio";
407 gpio-controller;
408 #gpio-cells = <2>;
409 };
410 };
411
412 /* STMPE811 touch screen controller */
413 stmpe811@41 {
414 compatible = "st,stmpe811";
415 reg = <0x41>;
416 interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
417 interrupt-parent = <&gpio2>;
Tom Rini53633a82024-02-29 12:33:36 -0500418 id = <0>;
419 blocks = <0x5>;
420 irq-trigger = <0x1>;
421 st,mod-12b = <1>; /* 12-bit ADC */
422 st,ref-sel = <0>; /* internal ADC reference */
423 st,adc-freq = <1>; /* 3.25 MHz ADC clock speed */
424 st,sample-time = <4>; /* ADC converstion time: 80 clocks */
425
426 stmpe_adc {
427 compatible = "st,stmpe-adc";
428 st,norequest-mask = <0x00>; /* mask any channels to be used by touchscreen */
429 adc0: iio-device@0 {
430 #io-channel-cells = <1>;
431 iio-channels = <&adc0 4>, <&adc0 1>, <&adc0 2>, <&adc0 3>, <&adc0 4>, <&adc0 5>, <&adc0 6>;
432 iio-channel-names = "AIN0_P9_39", "AIN1_P9_40", "AIN2_P9_37", "AIN3_P9_38",
433 "AIN4_P9_33", "AIN5_P9_36", "AIN6_P9_35";
434 };
435 };
436
437 stmpe_touchscreen {
438 status = "disabled";
439 compatible = "st,stmpe-ts";
440 /* 8 sample average control */
441 st,ave-ctrl = <3>;
442 /* 7 length fractional part in z */
443 st,fraction-z = <7>;
444 /*
445 * 50 mA typical 80 mA max touchscreen drivers
446 * current limit value
447 */
448 st,i-drive = <1>;
449 /* 1 ms panel driver settling time */
450 st,settling = <3>;
451 /* 5 ms touch detect interrupt delay */
452 st,touch-det-delay = <5>;
453 };
454
455 stmpe_gpio {
456 compatible = "st,stmpe-gpio";
457 };
458
459 stmpe_pwm {
460 compatible = "st,stmpe-pwm";
461 #pwm-cells = <2>;
462 };
463 };
464};
465
466&mcspi3 {
467 status = "okay";
468 ti,pindir-d0-out-d1-in;
469
470 sn65hvs882: sn65hvs882@0 {
471 compatible = "pisosr-gpio";
472 gpio-controller;
473 #gpio-cells = <2>;
474
475 reg = <0>;
476 spi-max-frequency = <1000000>;
477 spi-cpol;
478 };
479};
480
481&cpu0 {
482 vdd-supply = <&vdd_mpu>;
483 voltage-tolerance = <1>;
484};
485
486&uart1 {
487 status = "okay";
488};
489
490&davinci_mdio_sw {
491 reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
492 reset-delay-us = <2>;
493
494 phy0: ethernet-phy@4 {
495 reg = <4>;
496 eee-broken-100tx;
497 eee-broken-1000t;
498 };
499};
500
501&mac_sw {
502 status = "okay";
503};
504
505&cpsw_port1 {
506 phy-handle = <&phy0>;
507 phy-mode = "rgmii-rxid";
508 ti,dual-emac-pvid = <1>;
509};
510
511&cpsw_port2 {
512 status = "disabled";
513};
514
515&ocp {
516 pruss1_shmem: pruss_shmem@4b200000 {
517 status = "okay";
518 compatible = "ti,pruss-shmem";
519 reg = <0x4b200000 0x020000>;
520 };
521
522 pruss2_shmem: pruss_shmem@4b280000 {
523 status = "okay";
524 compatible = "ti,pruss-shmem";
525 reg = <0x4b280000 0x020000>;
526 };
527};
528
529&mmc1 {
530 status = "okay";
531 vmmc-supply = <&vdd_3v3>;
532 vqmmc-supply = <&vdd_sd>;
533 bus-width = <4>;
534 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
535
536 pinctrl-names = "default";
537 pinctrl-0 = <&mmc1_pins_default>;
538};
539
540&mmc2 {
541 status = "okay";
542 vmmc-supply = <&vdd_1v8>;
543 vqmmc-supply = <&vdd_1v8>;
544 bus-width = <8>;
545 ti,non-removable;
546 non-removable;
547 mmc-pwrseq = <&emmc_pwrseq>;
548
549 ti,needs-special-reset;
550 dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;
551 dma-names = "tx", "rx";
552
553};
554
555&mmc4 {
556 /* DS: Default speed (DS) up to 25 MHz, including 1- and 4-bit modes (3.3 V signaling). */
557 /* HS: High speed up to 50 MHz (3.3 V signaling). */
558 /* SDR12: SDR up to 25 MHz (1.8 V signaling). */
559 /* SDR25: SDR up to 50 MHz (1.8 V signaling). */
560 /* SDR50: SDR up to 100 MHz (1.8 V signaling). */
561 /* SDR104: SDR up to 208 MHz (1.8 V signaling) */
562 /* DDR50: DDR up to 50 MHz (1.8 V signaling). */
563 status = "okay";
564
565 ti,needs-special-reset;
566 vmmc-supply = <&vdd_3v3>;
567 cap-power-off-card;
568 keep-power-in-suspend;
569 bus-width = <4>;
570 ti,non-removable;
571 non-removable;
572 no-1-8-v;
573 max-frequency = <24000000>;
574
575 #address-cells = <1>;
576 #size-cells = <0>;
577 mmc-pwrseq = <&brcmf_pwrseq>;
578
579 brcmf: wifi@1 {
580 status = "okay";
581 reg = <1>;
582 compatible = "brcm,bcm4329-fmac";
583
584 brcm,sd-head-align = <4>;
585 brcm,sd_head_align = <4>;
586 brcm,sd_sgentry_align = <512>;
587
588 interrupt-parent = <&gpio3>;
589 interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
590 interrupt-names = "host-wake";
591 };
592};
593
594&usb2_phy1 {
595 phy-supply = <&ldousb_reg>;
596};
597
598&usb2_phy2 {
599 phy-supply = <&ldousb_reg>;
600};
601
602&usb1 {
603 status = "okay";
604 dr_mode = "otg";
605};
606
607&omap_dwc3_1 {
608 extcon = <&extcon_usb1>;
609};
610
611&usb2 {
612 status = "okay";
613 dr_mode = "host";
614};
615
616&dss {
617 status = "okay";
618 vdda_video-supply = <&vdd_1v8_pll>;
619};
620
621&hdmi {
622 status = "okay";
623 vdda-supply = <&vdd_1v8_phy_ldo4>;
624
625 port {
626 hdmi_out: endpoint {
627 remote-endpoint = <&hdmi_encoder_in>;
628 };
629 };
630};
631
632&bandgap {
633 status = "okay";
634};
635
636&cpu_alert0 {
637 temperature = <55000>; /* milliCelsius */
638};
639
640&cpu_crit {
641 temperature = <85000>; /* milliCelsius */
642};
643
644&gpu_crit {
645 temperature = <85000>; /* milliCelsius */
646};
647
648&core_crit {
649 temperature = <85000>; /* milliCelsius */
650};
651
652&dspeve_crit {
653 temperature = <85000>; /* milliCelsius */
654};
655
656&iva_crit {
657 temperature = <85000>; /* milliCelsius */
658};
659
660&sata {
661 status = "disabled";
662};
663
664&sata_phy {
665 status = "disabled";
666};
667
668/* bluetooth */
669&uart6 {
670 status = "okay";
671};
672
673/* cape header stuff */
674&i2c4 {
675 status = "okay";
676 clock-frequency = <100000>;
677};
678
679&ipu2 {
680 status = "okay";
681 memory-region = <&ipu2_memory_region>;
682};
683
684&ipu1 {
685 status = "okay";
686 memory-region = <&ipu1_memory_region>;
687};
688
689&dsp1 {
690 status = "okay";
691 memory-region = <&dsp1_memory_region>;
692};
693
694&dsp2 {
695 status = "okay";
696 memory-region = <&dsp2_memory_region>;
697};