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