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