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 "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; 200 id-gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>; 201 }; 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>; 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_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}; 698