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 interrupt-controller; 419 id = <0>; 420 blocks = <0x5>; 421 irq-trigger = <0x1>; 422 st,mod-12b = <1>; /* 12-bit ADC */ 423 st,ref-sel = <0>; /* internal ADC reference */ 424 st,adc-freq = <1>; /* 3.25 MHz ADC clock speed */ 425 st,sample-time = <4>; /* ADC converstion time: 80 clocks */ 426 427 stmpe_adc { 428 compatible = "st,stmpe-adc"; 429 st,norequest-mask = <0x00>; /* mask any channels to be used by touchscreen */ 430 adc0: iio-device@0 { 431 #io-channel-cells = <1>; 432 iio-channels = <&adc0 4>, <&adc0 1>, <&adc0 2>, <&adc0 3>, <&adc0 4>, <&adc0 5>, <&adc0 6>; 433 iio-channel-names = "AIN0_P9_39", "AIN1_P9_40", "AIN2_P9_37", "AIN3_P9_38", 434 "AIN4_P9_33", "AIN5_P9_36", "AIN6_P9_35"; 435 }; 436 }; 437 438 stmpe_touchscreen { 439 status = "disabled"; 440 compatible = "st,stmpe-ts"; 441 /* 8 sample average control */ 442 st,ave-ctrl = <3>; 443 /* 7 length fractional part in z */ 444 st,fraction-z = <7>; 445 /* 446 * 50 mA typical 80 mA max touchscreen drivers 447 * current limit value 448 */ 449 st,i-drive = <1>; 450 /* 1 ms panel driver settling time */ 451 st,settling = <3>; 452 /* 5 ms touch detect interrupt delay */ 453 st,touch-det-delay = <5>; 454 }; 455 456 stmpe_gpio { 457 compatible = "st,stmpe-gpio"; 458 }; 459 460 stmpe_pwm { 461 compatible = "st,stmpe-pwm"; 462 #pwm-cells = <2>; 463 }; 464 }; 465}; 466 467&mcspi3 { 468 status = "okay"; 469 ti,pindir-d0-out-d1-in; 470 471 sn65hvs882: sn65hvs882@0 { 472 compatible = "pisosr-gpio"; 473 gpio-controller; 474 #gpio-cells = <2>; 475 476 reg = <0>; 477 spi-max-frequency = <1000000>; 478 spi-cpol; 479 }; 480}; 481 482&cpu0 { 483 vdd-supply = <&vdd_mpu>; 484 voltage-tolerance = <1>; 485}; 486 487&uart1 { 488 status = "okay"; 489}; 490 491&davinci_mdio_sw { 492 reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>; 493 reset-delay-us = <2>; 494 495 phy0: ethernet-phy@4 { 496 reg = <4>; 497 eee-broken-100tx; 498 eee-broken-1000t; 499 }; 500}; 501 502&mac_sw { 503 status = "okay"; 504}; 505 506&cpsw_port1 { 507 phy-handle = <&phy0>; 508 phy-mode = "rgmii-rxid"; 509 ti,dual-emac-pvid = <1>; 510}; 511 512&cpsw_port2 { 513 status = "disabled"; 514}; 515 516&ocp { 517 pruss1_shmem: pruss_shmem@4b200000 { 518 status = "okay"; 519 compatible = "ti,pruss-shmem"; 520 reg = <0x4b200000 0x020000>; 521 }; 522 523 pruss2_shmem: pruss_shmem@4b280000 { 524 status = "okay"; 525 compatible = "ti,pruss-shmem"; 526 reg = <0x4b280000 0x020000>; 527 }; 528}; 529 530&mmc1 { 531 status = "okay"; 532 vmmc-supply = <&vdd_3v3>; 533 vqmmc-supply = <&vdd_sd>; 534 bus-width = <4>; 535 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */ 536 537 pinctrl-names = "default"; 538 pinctrl-0 = <&mmc1_pins_default>; 539}; 540 541&mmc2 { 542 status = "okay"; 543 vmmc-supply = <&vdd_1v8>; 544 vqmmc-supply = <&vdd_1v8>; 545 bus-width = <8>; 546 ti,non-removable; 547 non-removable; 548 mmc-pwrseq = <&emmc_pwrseq>; 549 550 ti,needs-special-reset; 551 dmas = <&sdma_xbar 47>, <&sdma_xbar 48>; 552 dma-names = "tx", "rx"; 553 554}; 555 556&mmc4 { 557 /* DS: Default speed (DS) up to 25 MHz, including 1- and 4-bit modes (3.3 V signaling). */ 558 /* HS: High speed up to 50 MHz (3.3 V signaling). */ 559 /* SDR12: SDR up to 25 MHz (1.8 V signaling). */ 560 /* SDR25: SDR up to 50 MHz (1.8 V signaling). */ 561 /* SDR50: SDR up to 100 MHz (1.8 V signaling). */ 562 /* SDR104: SDR up to 208 MHz (1.8 V signaling) */ 563 /* DDR50: DDR up to 50 MHz (1.8 V signaling). */ 564 status = "okay"; 565 566 ti,needs-special-reset; 567 vmmc-supply = <&vdd_3v3>; 568 cap-power-off-card; 569 keep-power-in-suspend; 570 bus-width = <4>; 571 ti,non-removable; 572 non-removable; 573 no-1-8-v; 574 max-frequency = <24000000>; 575 576 #address-cells = <1>; 577 #size-cells = <0>; 578 mmc-pwrseq = <&brcmf_pwrseq>; 579 580 brcmf: wifi@1 { 581 status = "okay"; 582 reg = <1>; 583 compatible = "brcm,bcm4329-fmac"; 584 585 brcm,sd-head-align = <4>; 586 brcm,sd_head_align = <4>; 587 brcm,sd_sgentry_align = <512>; 588 589 interrupt-parent = <&gpio3>; 590 interrupts = <23 IRQ_TYPE_LEVEL_LOW>; 591 interrupt-names = "host-wake"; 592 }; 593}; 594 595&usb2_phy1 { 596 phy-supply = <&ldousb_reg>; 597}; 598 599&usb2_phy2 { 600 phy-supply = <&ldousb_reg>; 601}; 602 603&usb1 { 604 status = "okay"; 605 dr_mode = "otg"; 606}; 607 608&omap_dwc3_1 { 609 extcon = <&extcon_usb1>; 610}; 611 612&usb2 { 613 status = "okay"; 614 dr_mode = "host"; 615}; 616 617&dss { 618 status = "okay"; 619 vdda_video-supply = <&vdd_1v8_pll>; 620}; 621 622&hdmi { 623 status = "okay"; 624 vdda-supply = <&vdd_1v8_phy_ldo4>; 625 626 port { 627 hdmi_out: endpoint { 628 remote-endpoint = <&hdmi_encoder_in>; 629 }; 630 }; 631}; 632 633&bandgap { 634 status = "okay"; 635}; 636 637&cpu_alert0 { 638 temperature = <55000>; /* milliCelsius */ 639}; 640 641&cpu_crit { 642 temperature = <85000>; /* milliCelsius */ 643}; 644 645&gpu_crit { 646 temperature = <85000>; /* milliCelsius */ 647}; 648 649&core_crit { 650 temperature = <85000>; /* milliCelsius */ 651}; 652 653&dspeve_crit { 654 temperature = <85000>; /* milliCelsius */ 655}; 656 657&iva_crit { 658 temperature = <85000>; /* milliCelsius */ 659}; 660 661&sata { 662 status = "disabled"; 663}; 664 665&sata_phy { 666 status = "disabled"; 667}; 668 669/* bluetooth */ 670&uart6 { 671 status = "okay"; 672}; 673 674/* cape header stuff */ 675&i2c4 { 676 status = "okay"; 677 clock-frequency = <100000>; 678}; 679 680&ipu2 { 681 status = "okay"; 682 memory-region = <&ipu2_memory_region>; 683}; 684 685&ipu1 { 686 status = "okay"; 687 memory-region = <&ipu1_memory_region>; 688}; 689 690&dsp1 { 691 status = "okay"; 692 memory-region = <&dsp1_memory_region>; 693}; 694 695&dsp2 { 696 status = "okay"; 697 memory-region = <&dsp2_memory_region>; 698}; 699