0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003 * Copyright (C) 2014-2019 Texas Instruments Incorporated - http://www.ti.com/
0004 */
0005
0006 /dts-v1/;
0007
0008 #include "dra74x.dtsi"
0009 #include "am57xx-commercial-grade.dtsi"
0010 #include "dra74x-mmc-iodelay.dtsi"
0011 #include "dra74-ipu-dsp-common.dtsi"
0012 #include <dt-bindings/gpio/gpio.h>
0013 #include <dt-bindings/interrupt-controller/irq.h>
0014 #include <dt-bindings/pinctrl/dra.h>
0015
0016 / {
0017 model = "BeagleBoard.org BeagleBone AI";
0018 compatible = "beagle,am5729-beagleboneai", "ti,am5728",
0019 "ti,dra742", "ti,dra74", "ti,dra7";
0020
0021 aliases {
0022 rtc0 = &tps659038_rtc;
0023 rtc1 = &rtc;
0024 display0 = &hdmi_conn;
0025 };
0026
0027 chosen {
0028 stdout-path = &uart1;
0029 };
0030
0031 memory@0 {
0032 device_type = "memory";
0033 reg = <0x0 0x80000000 0x0 0x40000000>;
0034 };
0035
0036 reserved-memory {
0037 #address-cells = <2>;
0038 #size-cells = <2>;
0039 ranges;
0040
0041 ipu2_memory_region: ipu2-memory@95800000 {
0042 compatible = "shared-dma-pool";
0043 reg = <0x0 0x95800000 0x0 0x3800000>;
0044 reusable;
0045 status = "okay";
0046 };
0047
0048 dsp1_memory_region: dsp1-memory@99000000 {
0049 compatible = "shared-dma-pool";
0050 reg = <0x0 0x99000000 0x0 0x4000000>;
0051 reusable;
0052 status = "okay";
0053 };
0054
0055 ipu1_memory_region: ipu1-memory@9d000000 {
0056 compatible = "shared-dma-pool";
0057 reg = <0x0 0x9d000000 0x0 0x2000000>;
0058 reusable;
0059 status = "okay";
0060 };
0061
0062 dsp2_memory_region: dsp2-memory@9f000000 {
0063 compatible = "shared-dma-pool";
0064 reg = <0x0 0x9f000000 0x0 0x800000>;
0065 reusable;
0066 status = "okay";
0067 };
0068
0069 };
0070
0071 vdd_adc: gpioregulator-vdd_adc {
0072 compatible = "regulator-gpio";
0073 regulator-name = "vdd_adc";
0074 vin-supply = <&vdd_5v>;
0075 regulator-min-microvolt = <1800000>;
0076 regulator-max-microvolt = <3300000>;
0077 regulator-always-on;
0078 regulator-boot-on;
0079 gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
0080 states = <1800000 0
0081 3300000 1>;
0082 };
0083
0084 vdd_5v: fixedregulator-vdd_5v {
0085 compatible = "regulator-fixed";
0086 regulator-name = "vdd_5v";
0087 regulator-min-microvolt = <5000000>;
0088 regulator-max-microvolt = <5000000>;
0089 regulator-always-on;
0090 regulator-boot-on;
0091 };
0092
0093 vtt_fixed: fixedregulator-vtt {
0094 /* TPS51200 */
0095 compatible = "regulator-fixed";
0096 regulator-name = "vtt_fixed";
0097 vin-supply = <&vdd_ddr>;
0098 regulator-min-microvolt = <3300000>;
0099 regulator-max-microvolt = <3300000>;
0100 regulator-always-on;
0101 regulator-boot-on;
0102 };
0103
0104 leds {
0105 compatible = "gpio-leds";
0106
0107 led0 {
0108 label = "beaglebone:green:usr0";
0109 gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
0110 linux,default-trigger = "heartbeat";
0111 default-state = "off";
0112 };
0113
0114 led1 {
0115 label = "beaglebone:green:usr1";
0116 gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
0117 linux,default-trigger = "mmc0";
0118 default-state = "off";
0119 };
0120
0121 led2 {
0122 label = "beaglebone:green:usr2";
0123 gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>;
0124 linux,default-trigger = "cpu";
0125 default-state = "off";
0126 };
0127
0128 led3 {
0129 label = "beaglebone:green:usr3";
0130 gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
0131 linux,default-trigger = "mmc1";
0132 default-state = "off";
0133 };
0134
0135 led4 {
0136 label = "beaglebone:green:usr4";
0137 gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
0138 linux,default-trigger = "netdev";
0139 default-state = "off";
0140 };
0141 };
0142
0143 hdmi_conn: connector@0 {
0144 compatible = "hdmi-connector";
0145 label = "hdmi";
0146 type = "a";
0147
0148 port {
0149 hdmi_connector_in: endpoint {
0150 remote-endpoint = <&hdmi_encoder_out>;
0151 };
0152 };
0153 };
0154
0155 hdmi_enc: encoder@0 {
0156 /* "ti,tpd12s016" software compatible with "ti,tpd12s015"
0157 * no need for individual driver
0158 */
0159 compatible = "ti,tpd12s015";
0160 gpios = <0>,
0161 <0>,
0162 <&gpio7 12 GPIO_ACTIVE_HIGH>;
0163
0164 ports {
0165 #address-cells = <0x1>;
0166 #size-cells = <0x0>;
0167
0168 port@0 {
0169 reg = <0x0>;
0170
0171 hdmi_encoder_in: endpoint@0 {
0172 remote-endpoint = <&hdmi_out>;
0173 };
0174 };
0175
0176 port@1 {
0177 reg = <0x1>;
0178
0179 hdmi_encoder_out: endpoint@0 {
0180 remote-endpoint = <&hdmi_connector_in>;
0181 };
0182 };
0183 };
0184 };
0185
0186 emmc_pwrseq: emmc_pwrseq {
0187 compatible = "mmc-pwrseq-emmc";
0188 reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
0189 };
0190
0191 brcmf_pwrseq: brcmf_pwrseq {
0192 compatible = "mmc-pwrseq-simple";
0193 reset-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>, /* BT-REG-ON */
0194 <&gpio3 18 GPIO_ACTIVE_LOW>; /* WL-REG-ON */
0195 };
0196
0197 extcon_usb1: extcon_usb1 {
0198 compatible = "linux,extcon-usb-gpio";
0199 ti,enable-id-detection;
0200 id-gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
0201 };
0202 };
0203
0204 &i2c1 {
0205 status = "okay";
0206 clock-frequency = <400000>;
0207
0208 tps659038: tps659038@58 {
0209 compatible = "ti,tps659038";
0210 reg = <0x58>;
0211 interrupt-parent = <&gpio6>;
0212 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
0213
0214 #interrupt-cells = <2>;
0215 interrupt-controller;
0216
0217 ti,system-power-controller;
0218 ti,palmas-override-powerhold;
0219
0220 tps659038_pmic {
0221 compatible = "ti,tps659038-pmic";
0222
0223 smps12-in-supply = <&vdd_5v>;
0224 smps3-in-supply = <&vdd_5v>;
0225 smps45-in-supply = <&vdd_5v>;
0226 smps6-in-supply = <&vdd_5v>;
0227 smps7-in-supply = <&vdd_5v>;
0228 mps3-in-supply = <&vdd_5v>;
0229 smps8-in-supply = <&vdd_5v>;
0230 smps9-in-supply = <&vdd_5v>;
0231 ldo1-in-supply = <&vdd_5v>;
0232 ldo2-in-supply = <&vdd_5v>;
0233 ldo3-in-supply = <&vdd_5v>;
0234 ldo4-in-supply = <&vdd_5v>;
0235 ldo9-in-supply = <&vdd_5v>;
0236 ldoln-in-supply = <&vdd_5v>;
0237 ldousb-in-supply = <&vdd_5v>;
0238 ldortc-in-supply = <&vdd_5v>;
0239
0240 regulators {
0241 vdd_mpu: smps12 {
0242 /* VDD_MPU */
0243 regulator-name = "smps12";
0244 regulator-min-microvolt = <850000>;
0245 regulator-max-microvolt = <1250000>;
0246 regulator-always-on;
0247 regulator-boot-on;
0248 };
0249
0250 vdd_ddr: smps3 {
0251 /* VDD_DDR EMIF1 EMIF2 */
0252 regulator-name = "smps3";
0253 regulator-min-microvolt = <1350000>;
0254 regulator-max-microvolt = <1350000>;
0255 regulator-always-on;
0256 regulator-boot-on;
0257 };
0258
0259 vdd_dspeve: smps45 {
0260 /* VDD_DSPEVE on AM572 */
0261 regulator-name = "smps45";
0262 regulator-min-microvolt = < 850000>;
0263 regulator-max-microvolt = <1250000>;
0264 regulator-always-on;
0265 regulator-boot-on;
0266 };
0267
0268 vdd_gpu: smps6 {
0269 /* VDD_GPU */
0270 regulator-name = "smps6";
0271 regulator-min-microvolt = < 850000>;
0272 regulator-max-microvolt = <1250000>;
0273 regulator-always-on;
0274 regulator-boot-on;
0275 };
0276
0277 vdd_core: smps7 {
0278 /* VDD_CORE */
0279 regulator-name = "smps7";
0280 regulator-min-microvolt = < 850000>; /*** 1.15V */
0281 regulator-max-microvolt = <1150000>;
0282 regulator-always-on;
0283 regulator-boot-on;
0284 };
0285
0286 vdd_iva: smps8 {
0287 /* VDD_IVAHD */ /*** 1.06V */
0288 regulator-name = "smps8";
0289 };
0290
0291 vdd_3v3: smps9 {
0292 /* VDD_3V3 */
0293 regulator-name = "smps9";
0294 regulator-min-microvolt = <3300000>;
0295 regulator-max-microvolt = <3300000>;
0296 regulator-always-on;
0297 regulator-boot-on;
0298 };
0299
0300 vdd_sd: ldo1 {
0301 /* VDDSHV8 - VSDMMC */
0302 regulator-name = "ldo1";
0303 regulator-min-microvolt = <1800000>;
0304 regulator-max-microvolt = <3300000>;
0305 regulator-boot-on;
0306 regulator-always-on;
0307 };
0308
0309 vdd_1v8: ldo2 {
0310 /* VDDSH18V */
0311 regulator-name = "ldo2";
0312 regulator-min-microvolt = <1800000>;
0313 regulator-max-microvolt = <1800000>;
0314 regulator-always-on;
0315 regulator-boot-on;
0316 };
0317
0318 vdd_1v8_phy_ldo3: ldo3 {
0319 /* R1.3a 572x V1_8PHY_LDO3: USB, SATA */
0320 regulator-name = "ldo3";
0321 regulator-min-microvolt = <1800000>;
0322 regulator-max-microvolt = <1800000>;
0323 regulator-always-on;
0324 regulator-boot-on;
0325 };
0326
0327 vdd_1v8_phy_ldo4: ldo4 {
0328 /* R1.3a 572x V1_8PHY_LDO4: PCIE, HDMI*/
0329 regulator-name = "ldo4";
0330 regulator-min-microvolt = <1800000>;
0331 regulator-max-microvolt = <1800000>;
0332 regulator-always-on;
0333 regulator-boot-on;
0334 };
0335
0336 /* LDO5-8 unused */
0337
0338 vdd_rtc: ldo9 {
0339 /* VDD_RTC */
0340 regulator-name = "ldo9";
0341 regulator-min-microvolt = < 840000>;
0342 regulator-max-microvolt = <1160000>;
0343 regulator-always-on;
0344 regulator-boot-on;
0345 };
0346
0347 vdd_1v8_pll: ldoln {
0348 /* VDDA_1V8_PLL */
0349 regulator-name = "ldoln";
0350 regulator-min-microvolt = <1800000>;
0351 regulator-max-microvolt = <1800000>;
0352 regulator-always-on;
0353 regulator-boot-on;
0354 };
0355
0356 ldousb_reg: ldousb {
0357 /* VDDA_3V_USB: VDDA_USBHS33 */
0358 regulator-name = "ldousb";
0359 regulator-min-microvolt = <3300000>;
0360 regulator-max-microvolt = <3300000>;
0361 regulator-always-on;
0362 regulator-boot-on;
0363 };
0364
0365 ldortc_reg: ldortc {
0366 /* VDDA_RTC */
0367 regulator-name = "ldortc";
0368 regulator-min-microvolt = <1800000>;
0369 regulator-max-microvolt = <1800000>;
0370 regulator-always-on;
0371 regulator-boot-on;
0372 };
0373
0374 regen1: regen1 {
0375 /* VDD_3V3_ON */
0376 regulator-name = "regen1";
0377 regulator-boot-on;
0378 regulator-always-on;
0379 };
0380
0381 regen2: regen2 {
0382 /* Needed for PMIC internal resource */
0383 regulator-name = "regen2";
0384 regulator-boot-on;
0385 regulator-always-on;
0386 };
0387 };
0388 };
0389
0390 tps659038_rtc: tps659038_rtc {
0391 compatible = "ti,palmas-rtc";
0392 interrupt-parent = <&tps659038>;
0393 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
0394 wakeup-source;
0395 };
0396
0397 tps659038_pwr_button: tps659038_pwr_button {
0398 compatible = "ti,palmas-pwrbutton";
0399 interrupt-parent = <&tps659038>;
0400 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
0401 wakeup-source;
0402 ti,palmas-long-press-seconds = <12>;
0403 };
0404
0405 tps659038_gpio: tps659038_gpio {
0406 compatible = "ti,palmas-gpio";
0407 gpio-controller;
0408 #gpio-cells = <2>;
0409 };
0410 };
0411
0412 /* STMPE811 touch screen controller */
0413 stmpe811@41 {
0414 compatible = "st,stmpe811";
0415 reg = <0x41>;
0416 interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
0417 interrupt-parent = <&gpio2>;
0418 interrupt-controller;
0419 id = <0>;
0420 blocks = <0x5>;
0421 irq-trigger = <0x1>;
0422 st,mod-12b = <1>; /* 12-bit ADC */
0423 st,ref-sel = <0>; /* internal ADC reference */
0424 st,adc-freq = <1>; /* 3.25 MHz ADC clock speed */
0425 st,sample-time = <4>; /* ADC converstion time: 80 clocks */
0426
0427 stmpe_adc {
0428 compatible = "st,stmpe-adc";
0429 st,norequest-mask = <0x00>; /* mask any channels to be used by touchscreen */
0430 adc0: iio-device@0 {
0431 #io-channel-cells = <1>;
0432 iio-channels = <&adc0 4>, <&adc0 1>, <&adc0 2>, <&adc0 3>, <&adc0 4>, <&adc0 5>, <&adc0 6>;
0433 iio-channel-names = "AIN0_P9_39", "AIN1_P9_40", "AIN2_P9_37", "AIN3_P9_38",
0434 "AIN4_P9_33", "AIN5_P9_36", "AIN6_P9_35";
0435 };
0436 };
0437
0438 stmpe_touchscreen {
0439 status = "disabled";
0440 compatible = "st,stmpe-ts";
0441 /* 8 sample average control */
0442 st,ave-ctrl = <3>;
0443 /* 7 length fractional part in z */
0444 st,fraction-z = <7>;
0445 /*
0446 * 50 mA typical 80 mA max touchscreen drivers
0447 * current limit value
0448 */
0449 st,i-drive = <1>;
0450 /* 1 ms panel driver settling time */
0451 st,settling = <3>;
0452 /* 5 ms touch detect interrupt delay */
0453 st,touch-det-delay = <5>;
0454 };
0455
0456 stmpe_gpio {
0457 compatible = "st,stmpe-gpio";
0458 };
0459
0460 stmpe_pwm {
0461 compatible = "st,stmpe-pwm";
0462 #pwm-cells = <2>;
0463 };
0464 };
0465 };
0466
0467 &mcspi3 {
0468 status = "okay";
0469 ti,pindir-d0-out-d1-in;
0470
0471 sn65hvs882: sn65hvs882@0 {
0472 compatible = "pisosr-gpio";
0473 gpio-controller;
0474 #gpio-cells = <2>;
0475
0476 reg = <0>;
0477 spi-max-frequency = <1000000>;
0478 spi-cpol;
0479 };
0480 };
0481
0482 &cpu0 {
0483 vdd-supply = <&vdd_mpu>;
0484 voltage-tolerance = <1>;
0485 };
0486
0487 &uart1 {
0488 status = "okay";
0489 };
0490
0491 &davinci_mdio_sw {
0492 reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
0493 reset-delay-us = <2>;
0494
0495 phy0: ethernet-phy@4 {
0496 reg = <4>;
0497 eee-broken-100tx;
0498 eee-broken-1000t;
0499 };
0500 };
0501
0502 &mac_sw {
0503 status = "okay";
0504 };
0505
0506 &cpsw_port1 {
0507 phy-handle = <&phy0>;
0508 phy-mode = "rgmii-rxid";
0509 ti,dual-emac-pvid = <1>;
0510 };
0511
0512 &cpsw_port2 {
0513 status = "disabled";
0514 };
0515
0516 &ocp {
0517 pruss1_shmem: pruss_shmem@4b200000 {
0518 status = "okay";
0519 compatible = "ti,pruss-shmem";
0520 reg = <0x4b200000 0x020000>;
0521 };
0522
0523 pruss2_shmem: pruss_shmem@4b280000 {
0524 status = "okay";
0525 compatible = "ti,pruss-shmem";
0526 reg = <0x4b280000 0x020000>;
0527 };
0528 };
0529
0530 &mmc1 {
0531 status = "okay";
0532 vmmc-supply = <&vdd_3v3>;
0533 vqmmc-supply = <&vdd_sd>;
0534 bus-width = <4>;
0535 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
0536
0537 pinctrl-names = "default";
0538 pinctrl-0 = <&mmc1_pins_default>;
0539 };
0540
0541 &mmc2 {
0542 status = "okay";
0543 vmmc-supply = <&vdd_1v8>;
0544 vqmmc-supply = <&vdd_1v8>;
0545 bus-width = <8>;
0546 ti,non-removable;
0547 non-removable;
0548 mmc-pwrseq = <&emmc_pwrseq>;
0549
0550 ti,needs-special-reset;
0551 dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;
0552 dma-names = "tx", "rx";
0553
0554 };
0555
0556 &mmc4 {
0557 /* DS: Default speed (DS) up to 25 MHz, including 1- and 4-bit modes (3.3 V signaling). */
0558 /* HS: High speed up to 50 MHz (3.3 V signaling). */
0559 /* SDR12: SDR up to 25 MHz (1.8 V signaling). */
0560 /* SDR25: SDR up to 50 MHz (1.8 V signaling). */
0561 /* SDR50: SDR up to 100 MHz (1.8 V signaling). */
0562 /* SDR104: SDR up to 208 MHz (1.8 V signaling) */
0563 /* DDR50: DDR up to 50 MHz (1.8 V signaling). */
0564 status = "okay";
0565
0566 ti,needs-special-reset;
0567 vmmc-supply = <&vdd_3v3>;
0568 cap-power-off-card;
0569 keep-power-in-suspend;
0570 bus-width = <4>;
0571 ti,non-removable;
0572 non-removable;
0573 no-1-8-v;
0574 max-frequency = <24000000>;
0575
0576 #address-cells = <1>;
0577 #size-cells = <0>;
0578 mmc-pwrseq = <&brcmf_pwrseq>;
0579
0580 brcmf: wifi@1 {
0581 status = "okay";
0582 reg = <1>;
0583 compatible = "brcm,bcm4329-fmac";
0584
0585 brcm,sd-head-align = <4>;
0586 brcm,sd_head_align = <4>;
0587 brcm,sd_sgentry_align = <512>;
0588
0589 interrupt-parent = <&gpio3>;
0590 interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
0591 interrupt-names = "host-wake";
0592 };
0593 };
0594
0595 &usb2_phy1 {
0596 phy-supply = <&ldousb_reg>;
0597 };
0598
0599 &usb2_phy2 {
0600 phy-supply = <&ldousb_reg>;
0601 };
0602
0603 &usb1 {
0604 status = "okay";
0605 dr_mode = "otg";
0606 };
0607
0608 &omap_dwc3_1 {
0609 extcon = <&extcon_usb1>;
0610 };
0611
0612 &usb2 {
0613 status = "okay";
0614 dr_mode = "host";
0615 };
0616
0617 &dss {
0618 status = "okay";
0619 vdda_video-supply = <&vdd_1v8_pll>;
0620 };
0621
0622 &hdmi {
0623 status = "okay";
0624 vdda-supply = <&vdd_1v8_phy_ldo4>;
0625
0626 port {
0627 hdmi_out: endpoint {
0628 remote-endpoint = <&hdmi_encoder_in>;
0629 };
0630 };
0631 };
0632
0633 &bandgap {
0634 status = "okay";
0635 };
0636
0637 &cpu_alert0 {
0638 temperature = <55000>; /* milliCelsius */
0639 };
0640
0641 &cpu_crit {
0642 temperature = <85000>; /* milliCelsius */
0643 };
0644
0645 &gpu_crit {
0646 temperature = <85000>; /* milliCelsius */
0647 };
0648
0649 &core_crit {
0650 temperature = <85000>; /* milliCelsius */
0651 };
0652
0653 &dspeve_crit {
0654 temperature = <85000>; /* milliCelsius */
0655 };
0656
0657 &iva_crit {
0658 temperature = <85000>; /* milliCelsius */
0659 };
0660
0661 &sata {
0662 status = "disabled";
0663 };
0664
0665 &sata_phy {
0666 status = "disabled";
0667 };
0668
0669 /* bluetooth */
0670 &uart6 {
0671 status = "okay";
0672 };
0673
0674 /* cape header stuff */
0675 &i2c4 {
0676 status = "okay";
0677 clock-frequency = <100000>;
0678 };
0679
0680 &cpu0_opp_table {
0681 opp_slow-500000000 {
0682 opp-shared;
0683 };
0684 };
0685
0686 &ipu2 {
0687 status = "okay";
0688 memory-region = <&ipu2_memory_region>;
0689 };
0690
0691 &ipu1 {
0692 status = "okay";
0693 memory-region = <&ipu1_memory_region>;
0694 };
0695
0696 &dsp1 {
0697 status = "okay";
0698 memory-region = <&dsp1_memory_region>;
0699 };
0700
0701 &dsp2 {
0702 status = "okay";
0703 memory-region = <&dsp2_memory_region>;
0704 };