Merge branch 'master' of git://git.denx.de/u-boot
[oweals/u-boot.git] / arch / arm / dts / 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 #include "dra74x.dtsi"
8 #include "dra74x-mmc-iodelay.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/interrupt-controller/irq.h>
11 #include <dt-bindings/pinctrl/dra.h>
12
13 / {
14         model = "BeagleBoard.org BeagleBone AI";
15         compatible = "beagle,am5729-beagleboneai", "ti,am5728",
16                      "ti,dra742", "ti,dra74", "ti,dra7";
17
18         aliases {
19                 rtc0 = &tps659038_rtc;
20                 rtc1 = &rtc;
21                 display0 = &hdmi_conn;
22         };
23
24         chosen {
25                 stdout-path = &uart1;
26         };
27
28         memory@0 {
29                 device_type = "memory";
30                 reg = <0x0 0x80000000 0x0 0x40000000>;
31         };
32
33         vdd_adc: gpioregulator-vdd_adc {
34                 compatible = "regulator-gpio";
35                 regulator-name = "vdd_adc";
36                 vin-supply = <&vdd_5v>;
37                 regulator-min-microvolt = <1800000>;
38                 regulator-max-microvolt = <3300000>;
39                 regulator-always-on;
40                 regulator-boot-on;
41                 gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
42                 states = <1800000 0
43                         3300000 1>;
44         };
45
46         vdd_5v: fixedregulator-vdd_5v {
47                 compatible = "regulator-fixed";
48                 regulator-name = "vdd_5v";
49                 regulator-min-microvolt = <5000000>;
50                 regulator-max-microvolt = <5000000>;
51                 regulator-always-on;
52                 regulator-boot-on;
53         };
54
55         vtt_fixed: fixedregulator-vtt {
56                 /* TPS51200 */
57                 compatible = "regulator-fixed";
58                 regulator-name = "vtt_fixed";
59                 vin-supply = <&vdd_ddr>;
60                 regulator-min-microvolt = <3300000>;
61                 regulator-max-microvolt = <3300000>;
62                 regulator-always-on;
63                 regulator-boot-on;
64         };
65
66         leds {
67                 compatible = "gpio-leds";
68
69                 led0 {
70                         label = "beaglebone:green:usr0";
71                         gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
72                         linux,default-trigger = "heartbeat";
73                         default-state = "off";
74                 };
75
76                 led1 {
77                         label = "beaglebone:green:usr1";
78                         gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
79                         linux,default-trigger = "mmc0";
80                         default-state = "off";
81                 };
82
83                 led2 {
84                         label = "beaglebone:green:usr2";
85                         gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>;
86                         linux,default-trigger = "cpu";
87                         default-state = "off";
88                 };
89
90                 led3 {
91                         label = "beaglebone:green:usr3";
92                         gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
93                         linux,default-trigger = "mmc1";
94                         default-state = "off";
95                 };
96
97                 led4 {
98                         label = "beaglebone:green:usr4";
99                         gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
100                         linux,default-trigger = "netdev";
101                         default-state = "off";
102                 };
103         };
104
105         hdmi_conn: connector@0 {
106                 compatible = "hdmi-connector";
107                 label = "hdmi";
108                 type = "a";
109
110                 port {
111                         hdmi_connector_in: endpoint {
112                                 remote-endpoint = <&hdmi_encoder_out>;
113                         };
114                 };
115         };
116
117         hdmi_enc: encoder@0 {
118                 /* "ti,tpd12s016" software compatible with "ti,tpd12s015"
119                  *  no need for individual driver
120                  */
121                 compatible = "ti,tpd12s015";
122                 gpios = <0>,
123                         <0>,
124                         <&gpio7 12 GPIO_ACTIVE_HIGH>;
125
126                 ports {
127                         #address-cells = <0x1>;
128                         #size-cells = <0x0>;
129
130                         port@0 {
131                                 reg = <0x0>;
132
133                                 hdmi_encoder_in: endpoint@0 {
134                                         remote-endpoint = <&hdmi_out>;
135                                 };
136                         };
137
138                         port@1 {
139                                 reg = <0x1>;
140
141                                 hdmi_encoder_out: endpoint@0 {
142                                         remote-endpoint = <&hdmi_connector_in>;
143                                 };
144                         };
145                 };
146         };
147
148         emmc_pwrseq: emmc_pwrseq {
149                 compatible = "mmc-pwrseq-emmc";
150                 reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
151         };
152
153         brcmf_pwrseq: brcmf_pwrseq {
154                 compatible = "mmc-pwrseq-simple";
155                 reset-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>,      /* BT-REG-ON */
156                                 <&gpio3 18 GPIO_ACTIVE_LOW>;    /* WL-REG-ON */
157         };
158
159         extcon_usb1: extcon_usb1 {
160                 compatible = "linux,extcon-usb-gpio";
161                 ti,enable-id-detection;
162                 id-gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
163         };
164 };
165
166 &i2c1 {
167         status = "okay";
168         clock-frequency = <400000>;
169
170         tps659038: tps659038@58 {
171                 compatible = "ti,tps659038";
172                 reg = <0x58>;
173                 interrupt-parent = <&gpio6>;
174                 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
175
176                 #interrupt-cells = <2>;
177                 interrupt-controller;
178
179                 ti,system-power-controller;
180                 ti,palmas-override-powerhold;
181
182                 tps659038_pmic {
183                         compatible = "ti,tps659038-pmic";
184
185                         smps12-in-supply = <&vdd_5v>;
186                         smps3-in-supply = <&vdd_5v>;
187                         smps45-in-supply = <&vdd_5v>;
188                         smps6-in-supply = <&vdd_5v>;
189                         smps7-in-supply = <&vdd_5v>;
190                         mps3-in-supply = <&vdd_5v>;
191                         smps8-in-supply = <&vdd_5v>;
192                         smps9-in-supply = <&vdd_5v>;
193                         ldo1-in-supply = <&vdd_5v>;
194                         ldo2-in-supply = <&vdd_5v>;
195                         ldo3-in-supply = <&vdd_5v>;
196                         ldo4-in-supply = <&vdd_5v>;
197                         ldo9-in-supply = <&vdd_5v>;
198                         ldoln-in-supply = <&vdd_5v>;
199                         ldousb-in-supply = <&vdd_5v>;
200                         ldortc-in-supply = <&vdd_5v>;
201
202                         regulators {
203                                 vdd_mpu: smps12 {
204                                         /* VDD_MPU */
205                                         regulator-name = "smps12";
206                                         regulator-min-microvolt = <850000>;
207                                         regulator-max-microvolt = <1250000>;
208                                         regulator-always-on;
209                                         regulator-boot-on;
210                                 };
211
212                                 vdd_ddr: smps3 {
213                                         /* VDD_DDR EMIF1 EMIF2 */
214                                         regulator-name = "smps3";
215                                         regulator-min-microvolt = <1350000>;
216                                         regulator-max-microvolt = <1350000>;
217                                         regulator-always-on;
218                                         regulator-boot-on;
219                                 };
220
221                                 vdd_dspeve: smps45 {
222                                         /* VDD_DSPEVE on AM572 */
223                                         regulator-name = "smps45";
224                                         regulator-min-microvolt = < 850000>;
225                                         regulator-max-microvolt = <1250000>;
226                                         regulator-always-on;
227                                         regulator-boot-on;
228                                 };
229
230                                 vdd_gpu: smps6 {
231                                         /* VDD_GPU */
232                                         regulator-name = "smps6";
233                                         regulator-min-microvolt = < 850000>;
234                                         regulator-max-microvolt = <1250000>;
235                                         regulator-always-on;
236                                         regulator-boot-on;
237                                 };
238
239                                 vdd_core: smps7 {
240                                         /* VDD_CORE */
241                                         regulator-name = "smps7";
242                                         regulator-min-microvolt = < 850000>;    /*** 1.15V */
243                                         regulator-max-microvolt = <1150000>;
244                                         regulator-always-on;
245                                         regulator-boot-on;
246                                 };
247
248                                 vdd_iva: smps8 {
249                                         /* VDD_IVAHD */                         /*** 1.06V */
250                                         regulator-name = "smps8";
251                                 };
252
253                                 vdd_3v3: smps9 {
254                                         /* VDD_3V3 */
255                                         regulator-name = "smps9";
256                                         regulator-min-microvolt = <3300000>;
257                                         regulator-max-microvolt = <3300000>;
258                                         regulator-always-on;
259                                         regulator-boot-on;
260                                 };
261
262                                 vdd_sd: ldo1 {
263                                         /* VDDSHV8 - VSDMMC  */
264                                         regulator-name = "ldo1";
265                                         regulator-min-microvolt = <1800000>;
266                                         regulator-max-microvolt = <3300000>;
267                                         regulator-boot-on;
268                                         regulator-always-on;
269                                 };
270
271                                 vdd_1v8: ldo2 {
272                                         /* VDDSH18V */
273                                         regulator-name = "ldo2";
274                                         regulator-min-microvolt = <1800000>;
275                                         regulator-max-microvolt = <1800000>;
276                                         regulator-always-on;
277                                         regulator-boot-on;
278                                 };
279
280                                 vdd_1v8_phy_ldo3: ldo3 {
281                                         /* R1.3a 572x V1_8PHY_LDO3: USB, SATA */
282                                         regulator-name = "ldo3";
283                                         regulator-min-microvolt = <1800000>;
284                                         regulator-max-microvolt = <1800000>;
285                                         regulator-always-on;
286                                         regulator-boot-on;
287                                 };
288
289                                 vdd_1v8_phy_ldo4: ldo4 {
290                                         /* R1.3a 572x V1_8PHY_LDO4: PCIE, HDMI*/
291                                         regulator-name = "ldo4";
292                                         regulator-min-microvolt = <1800000>;
293                                         regulator-max-microvolt = <1800000>;
294                                         regulator-always-on;
295                                         regulator-boot-on;
296                                 };
297
298                                 /* LDO5-8 unused */
299
300                                 vdd_rtc: ldo9 {
301                                         /* VDD_RTC  */
302                                         regulator-name = "ldo9";
303                                         regulator-min-microvolt = < 840000>;
304                                         regulator-max-microvolt = <1160000>;
305                                         regulator-always-on;
306                                         regulator-boot-on;
307                                 };
308
309                                 vdd_1v8_pll: ldoln {
310                                         /* VDDA_1V8_PLL */
311                                         regulator-name = "ldoln";
312                                         regulator-min-microvolt = <1800000>;
313                                         regulator-max-microvolt = <1800000>;
314                                         regulator-always-on;
315                                         regulator-boot-on;
316                                 };
317
318                                 ldousb_reg: ldousb {
319                                         /* VDDA_3V_USB: VDDA_USBHS33 */
320                                         regulator-name = "ldousb";
321                                         regulator-min-microvolt = <3300000>;
322                                         regulator-max-microvolt = <3300000>;
323                                         regulator-always-on;
324                                         regulator-boot-on;
325                                 };
326
327                                 ldortc_reg: ldortc {
328                                         /* VDDA_RTC  */
329                                         regulator-name = "ldortc";
330                                         regulator-min-microvolt = <1800000>;
331                                         regulator-max-microvolt = <1800000>;
332                                         regulator-always-on;
333                                         regulator-boot-on;
334                                 };
335
336                                 regen1: regen1 {
337                                         /* VDD_3V3_ON */
338                                         regulator-name = "regen1";
339                                         regulator-boot-on;
340                                         regulator-always-on;
341                                 };
342
343                                 regen2: regen2 {
344                                         /* Needed for PMIC internal resource */
345                                         regulator-name = "regen2";
346                                         regulator-boot-on;
347                                         regulator-always-on;
348                                 };
349                         };
350                 };
351
352                 tps659038_rtc: tps659038_rtc {
353                         compatible = "ti,palmas-rtc";
354                         interrupt-parent = <&tps659038>;
355                         interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
356                         wakeup-source;
357                 };
358
359                 tps659038_pwr_button: tps659038_pwr_button {
360                         compatible = "ti,palmas-pwrbutton";
361                         interrupt-parent = <&tps659038>;
362                         interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
363                         wakeup-source;
364                         ti,palmas-long-press-seconds = <12>;
365                 };
366
367                 tps659038_gpio: tps659038_gpio {
368                         compatible = "ti,palmas-gpio";
369                         gpio-controller;
370                         #gpio-cells = <2>;
371                 };
372         };
373 };
374
375 &mcspi3 {
376         status = "okay";
377         ti,pindir-d0-out-d1-in;
378
379         sn65hvs882: sn65hvs882@0 {
380                 compatible = "pisosr-gpio";
381                 gpio-controller;
382                 #gpio-cells = <2>;
383
384                 reg = <0>;
385                 spi-max-frequency = <1000000>;
386                 spi-cpol;
387         };
388 };
389
390 &cpu0 {
391         vdd-supply = <&vdd_mpu>;
392         voltage-tolerance = <1>;
393 };
394
395 &uart1 {
396         status = "okay";
397 };
398
399 &davinci_mdio {
400         reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
401         reset-delay-us = <2>;
402
403         phy0: ethernet-phy@1 {
404                 reg = <4>;
405                 eee-broken-100tx;
406                 eee-broken-1000t;
407         };
408 };
409
410 &mac {
411         slaves = <1>;
412         status = "okay";
413 };
414
415 &cpsw_emac0 {
416         phy-handle = <&phy0>;
417         phy-mode = "rgmii";
418 };
419
420 &mmc1 {
421         status = "okay";
422         vmmc-supply = <&vdd_3v3>;
423         vqmmc-supply = <&vdd_sd>;
424         bus-width = <4>;
425         cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
426
427         pinctrl-names = "default";
428         pinctrl-0 = <&mmc1_pins_default>;
429 };
430
431 &mmc2 {
432         status = "okay";
433         vmmc-supply = <&vdd_1v8>;
434         vqmmc-supply = <&vdd_1v8>;
435         bus-width = <8>;
436         ti,non-removable;
437         non-removable;
438         mmc-pwrseq = <&emmc_pwrseq>;
439
440         ti,needs-special-reset;
441         dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;
442         dma-names = "tx", "rx";
443
444         pinctrl-names = "default", "hs", "ddr_1_8v", "hs200_1_8v";
445         pinctrl-0 = <&mmc2_pins_default>;
446         pinctrl-1 = <&mmc2_pins_hs>;
447         pinctrl-2 = <&mmc2_pins_ddr_rev20>;
448         pinctrl-3 = <&mmc2_pins_hs200>;
449
450 };
451
452 &mmc4 {
453         /* DS: Default speed (DS) up to 25 MHz, including 1- and 4-bit modes (3.3 V signaling). */
454         /* HS: High speed up to 50 MHz (3.3 V signaling). */
455         /* SDR12: SDR up to 25 MHz (1.8 V signaling). */
456         /* SDR25: SDR up to 50 MHz (1.8 V signaling). */
457         /* SDR50: SDR up to 100 MHz (1.8 V signaling). */
458         /* SDR104: SDR up to 208 MHz (1.8 V signaling) */
459         /* DDR50: DDR up to 50 MHz (1.8 V signaling). */
460         status = "okay";
461
462         ti,needs-special-reset;
463         vmmc-supply = <&vdd_3v3>;
464         cap-power-off-card;
465         keep-power-in-suspend;
466         bus-width = <4>;
467         ti,non-removable;
468         non-removable;
469         no-1-8-v;
470         max-frequency = <24000000>;
471
472         #address-cells = <1>;
473         #size-cells = <0>;
474         mmc-pwrseq = <&brcmf_pwrseq>;
475
476         brcmf: wifi@1 {
477                 status = "okay";
478                 reg = <1>;
479                 compatible = "brcm,bcm4329-fmac";
480
481                 brcm,sd-head-align = <4>;
482                 brcm,sd_head_align = <4>;
483                 brcm,sd_sgentry_align = <512>;
484
485                 interrupt-parent = <&gpio3>;
486                 interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
487                 interrupt-names = "host-wake";
488         };
489 };
490
491 &usb2_phy1 {
492         phy-supply = <&ldousb_reg>;
493 };
494
495 &usb2_phy2 {
496         phy-supply = <&ldousb_reg>;
497 };
498
499 &usb1 {
500         status = "okay";
501         dr_mode = "otg";
502 };
503
504 &omap_dwc3_1 {
505         extcon = <&extcon_usb1>;
506 };
507
508 &usb2 {
509         status = "okay";
510         dr_mode = "host";
511 };
512
513 &dss {
514         status = "okay";
515         vdda_video-supply = <&vdd_1v8_pll>;
516 };
517
518 &hdmi {
519         status = "okay";
520         vdda-supply = <&vdd_1v8_phy_ldo4>;
521
522         port {
523                 hdmi_out: endpoint {
524                         remote-endpoint = <&hdmi_encoder_in>;
525                 };
526         };
527 };
528
529 &bandgap {
530         status = "okay";
531 };
532
533 &cpu_alert0 {
534         temperature = <55000>; /* milliCelsius */
535 };
536
537 &cpu_crit {
538         temperature = <85000>; /* milliCelsius */
539 };
540
541 &gpu_crit {
542         temperature = <85000>; /* milliCelsius */
543 };
544
545 &core_crit {
546         temperature = <85000>; /* milliCelsius */
547 };
548
549 &dspeve_crit {
550         temperature = <85000>; /* milliCelsius */
551 };
552
553 &iva_crit {
554         temperature = <85000>; /* milliCelsius */
555 };
556
557 &sata {
558         status = "disabled";
559 };
560
561 &sata_phy {
562         status = "disabled";
563 };
564
565 /* bluetooth */
566 &uart6 {
567         status = "okay";
568 };
569
570 /* cape header stuff */
571 &i2c4 {
572         status = "okay";
573         clock-frequency = <100000>;
574 };
575
576 #include "omap5-u-boot.dtsi"