// SPDX-License-Identifier: GPL-2.0 /* * Copyright (C) 2014-2019 Texas Instruments Incorporated - https://www.ti.com/ */ /dts-v1/; #include "dra74x.dtsi" #include "am57xx-commercial-grade.dtsi" #include "dra74x-mmc-iodelay.dtsi" #include "dra74-ipu-dsp-common.dtsi" #include #include #include / { model = "BeagleBoard.org BeagleBone AI"; compatible = "beagle,am5729-beagleboneai", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; aliases { rtc0 = &tps659038_rtc; rtc1 = &rtc; display0 = &hdmi_conn; }; chosen { stdout-path = &uart1; }; memory@0 { device_type = "memory"; reg = <0x0 0x80000000 0x0 0x40000000>; }; reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; ipu2_memory_region: ipu2-memory@95800000 { compatible = "shared-dma-pool"; reg = <0x0 0x95800000 0x0 0x3800000>; reusable; status = "okay"; }; dsp1_memory_region: dsp1-memory@99000000 { compatible = "shared-dma-pool"; reg = <0x0 0x99000000 0x0 0x4000000>; reusable; status = "okay"; }; ipu1_memory_region: ipu1-memory@9d000000 { compatible = "shared-dma-pool"; reg = <0x0 0x9d000000 0x0 0x2000000>; reusable; status = "okay"; }; dsp2_memory_region: dsp2-memory@9f000000 { compatible = "shared-dma-pool"; reg = <0x0 0x9f000000 0x0 0x800000>; reusable; status = "okay"; }; }; vdd_adc: gpioregulator-vdd_adc { compatible = "regulator-gpio"; regulator-name = "vdd_adc"; vin-supply = <&vdd_5v>; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; states = <1800000 0 3300000 1>; }; vdd_5v: fixedregulator-vdd_5v { compatible = "regulator-fixed"; regulator-name = "vdd_5v"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; }; vtt_fixed: fixedregulator-vtt { /* TPS51200 */ compatible = "regulator-fixed"; regulator-name = "vtt_fixed"; vin-supply = <&vdd_ddr>; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; leds { compatible = "gpio-leds"; led0 { label = "beaglebone:green:usr0"; gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; default-state = "off"; }; led1 { label = "beaglebone:green:usr1"; gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>; linux,default-trigger = "mmc0"; default-state = "off"; }; led2 { label = "beaglebone:green:usr2"; gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>; linux,default-trigger = "cpu"; default-state = "off"; }; led3 { label = "beaglebone:green:usr3"; gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; linux,default-trigger = "mmc1"; default-state = "off"; }; led4 { label = "beaglebone:green:usr4"; gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>; linux,default-trigger = "netdev"; default-state = "off"; }; }; hdmi_conn: connector@0 { compatible = "hdmi-connector"; label = "hdmi"; type = "a"; port { hdmi_connector_in: endpoint { remote-endpoint = <&hdmi_encoder_out>; }; }; }; hdmi_enc: encoder@0 { /* "ti,tpd12s016" software compatible with "ti,tpd12s015" * no need for individual driver */ compatible = "ti,tpd12s015"; gpios = <0>, <0>, <&gpio7 12 GPIO_ACTIVE_HIGH>; ports { #address-cells = <0x1>; #size-cells = <0x0>; port@0 { reg = <0x0>; hdmi_encoder_in: endpoint@0 { remote-endpoint = <&hdmi_out>; }; }; port@1 { reg = <0x1>; hdmi_encoder_out: endpoint@0 { remote-endpoint = <&hdmi_connector_in>; }; }; }; }; emmc_pwrseq: emmc_pwrseq { compatible = "mmc-pwrseq-emmc"; reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>; }; brcmf_pwrseq: brcmf_pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>, /* BT-REG-ON */ <&gpio3 18 GPIO_ACTIVE_LOW>; /* WL-REG-ON */ }; extcon_usb1: extcon_usb1 { compatible = "linux,extcon-usb-gpio"; id-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; }; }; &i2c1 { status = "okay"; clock-frequency = <400000>; tps659038: tps659038@58 { compatible = "ti,tps659038"; reg = <0x58>; interrupt-parent = <&gpio6>; interrupts = <16 IRQ_TYPE_LEVEL_LOW>; #interrupt-cells = <2>; interrupt-controller; ti,system-power-controller; ti,palmas-override-powerhold; tps659038_pmic { compatible = "ti,tps659038-pmic"; smps12-in-supply = <&vdd_5v>; smps3-in-supply = <&vdd_5v>; smps45-in-supply = <&vdd_5v>; smps6-in-supply = <&vdd_5v>; smps7-in-supply = <&vdd_5v>; mps3-in-supply = <&vdd_5v>; smps8-in-supply = <&vdd_5v>; smps9-in-supply = <&vdd_5v>; ldo1-in-supply = <&vdd_5v>; ldo2-in-supply = <&vdd_5v>; ldo3-in-supply = <&vdd_5v>; ldo4-in-supply = <&vdd_5v>; ldo9-in-supply = <&vdd_5v>; ldoln-in-supply = <&vdd_5v>; ldousb-in-supply = <&vdd_5v>; ldortc-in-supply = <&vdd_5v>; regulators { vdd_mpu: smps12 { /* VDD_MPU */ regulator-name = "smps12"; regulator-min-microvolt = <850000>; regulator-max-microvolt = <1250000>; regulator-always-on; regulator-boot-on; }; vdd_ddr: smps3 { /* VDD_DDR EMIF1 EMIF2 */ regulator-name = "smps3"; regulator-min-microvolt = <1350000>; regulator-max-microvolt = <1350000>; regulator-always-on; regulator-boot-on; }; vdd_dspeve: smps45 { /* VDD_DSPEVE on AM572 */ regulator-name = "smps45"; regulator-min-microvolt = < 850000>; regulator-max-microvolt = <1250000>; regulator-always-on; regulator-boot-on; }; vdd_gpu: smps6 { /* VDD_GPU */ regulator-name = "smps6"; regulator-min-microvolt = < 850000>; regulator-max-microvolt = <1250000>; regulator-always-on; regulator-boot-on; }; vdd_core: smps7 { /* VDD_CORE */ regulator-name = "smps7"; regulator-min-microvolt = < 850000>; /*** 1.15V */ regulator-max-microvolt = <1150000>; regulator-always-on; regulator-boot-on; }; vdd_iva: smps8 { /* VDD_IVAHD */ /*** 1.06V */ regulator-name = "smps8"; }; vdd_3v3: smps9 { /* VDD_3V3 */ regulator-name = "smps9"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; vdd_sd: ldo1 { /* VDDSHV8 - VSDMMC */ regulator-name = "ldo1"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; }; vdd_1v8: ldo2 { /* VDDSH18V */ regulator-name = "ldo2"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; vdd_1v8_phy_ldo3: ldo3 { /* R1.3a 572x V1_8PHY_LDO3: USB, SATA */ regulator-name = "ldo3"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; vdd_1v8_phy_ldo4: ldo4 { /* R1.3a 572x V1_8PHY_LDO4: PCIE, HDMI*/ regulator-name = "ldo4"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; /* LDO5-8 unused */ vdd_rtc: ldo9 { /* VDD_RTC */ regulator-name = "ldo9"; regulator-min-microvolt = < 840000>; regulator-max-microvolt = <1160000>; regulator-always-on; regulator-boot-on; }; vdd_1v8_pll: ldoln { /* VDDA_1V8_PLL */ regulator-name = "ldoln"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; ldousb_reg: ldousb { /* VDDA_3V_USB: VDDA_USBHS33 */ regulator-name = "ldousb"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; ldortc_reg: ldortc { /* VDDA_RTC */ regulator-name = "ldortc"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; regen1: regen1 { /* VDD_3V3_ON */ regulator-name = "regen1"; regulator-boot-on; regulator-always-on; }; regen2: regen2 { /* Needed for PMIC internal resource */ regulator-name = "regen2"; regulator-boot-on; regulator-always-on; }; }; }; tps659038_rtc: tps659038_rtc { compatible = "ti,palmas-rtc"; interrupt-parent = <&tps659038>; interrupts = <8 IRQ_TYPE_EDGE_FALLING>; wakeup-source; }; tps659038_pwr_button: tps659038_pwr_button { compatible = "ti,palmas-pwrbutton"; interrupt-parent = <&tps659038>; interrupts = <1 IRQ_TYPE_EDGE_FALLING>; wakeup-source; ti,palmas-long-press-seconds = <12>; }; tps659038_gpio: tps659038_gpio { compatible = "ti,palmas-gpio"; gpio-controller; #gpio-cells = <2>; }; }; /* STMPE811 touch screen controller */ stmpe811@41 { compatible = "st,stmpe811"; reg = <0x41>; interrupts = <30 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&gpio2>; id = <0>; blocks = <0x5>; irq-trigger = <0x1>; st,mod-12b = <1>; /* 12-bit ADC */ st,ref-sel = <0>; /* internal ADC reference */ st,adc-freq = <1>; /* 3.25 MHz ADC clock speed */ st,sample-time = <4>; /* ADC converstion time: 80 clocks */ stmpe_adc { compatible = "st,stmpe-adc"; st,norequest-mask = <0x00>; /* mask any channels to be used by touchscreen */ adc0: iio-device@0 { #io-channel-cells = <1>; iio-channels = <&adc0 4>, <&adc0 1>, <&adc0 2>, <&adc0 3>, <&adc0 4>, <&adc0 5>, <&adc0 6>; iio-channel-names = "AIN0_P9_39", "AIN1_P9_40", "AIN2_P9_37", "AIN3_P9_38", "AIN4_P9_33", "AIN5_P9_36", "AIN6_P9_35"; }; }; stmpe_touchscreen { status = "disabled"; compatible = "st,stmpe-ts"; /* 8 sample average control */ st,ave-ctrl = <3>; /* 7 length fractional part in z */ st,fraction-z = <7>; /* * 50 mA typical 80 mA max touchscreen drivers * current limit value */ st,i-drive = <1>; /* 1 ms panel driver settling time */ st,settling = <3>; /* 5 ms touch detect interrupt delay */ st,touch-det-delay = <5>; }; stmpe_gpio { compatible = "st,stmpe-gpio"; }; stmpe_pwm { compatible = "st,stmpe-pwm"; #pwm-cells = <2>; }; }; }; &mcspi3 { status = "okay"; ti,pindir-d0-out-d1-in; sn65hvs882: sn65hvs882@0 { compatible = "pisosr-gpio"; gpio-controller; #gpio-cells = <2>; reg = <0>; spi-max-frequency = <1000000>; spi-cpol; }; }; &cpu0 { vdd-supply = <&vdd_mpu>; voltage-tolerance = <1>; }; &uart1 { status = "okay"; }; &davinci_mdio_sw { reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>; reset-delay-us = <2>; phy0: ethernet-phy@4 { reg = <4>; eee-broken-100tx; eee-broken-1000t; }; }; &mac_sw { status = "okay"; }; &cpsw_port1 { phy-handle = <&phy0>; phy-mode = "rgmii-rxid"; ti,dual-emac-pvid = <1>; }; &cpsw_port2 { status = "disabled"; }; &ocp { pruss1_shmem: pruss_shmem@4b200000 { status = "okay"; compatible = "ti,pruss-shmem"; reg = <0x4b200000 0x020000>; }; pruss2_shmem: pruss_shmem@4b280000 { status = "okay"; compatible = "ti,pruss-shmem"; reg = <0x4b280000 0x020000>; }; }; &mmc1 { status = "okay"; vmmc-supply = <&vdd_3v3>; vqmmc-supply = <&vdd_sd>; bus-width = <4>; cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */ pinctrl-names = "default"; pinctrl-0 = <&mmc1_pins_default>; }; &mmc2 { status = "okay"; vmmc-supply = <&vdd_1v8>; vqmmc-supply = <&vdd_1v8>; bus-width = <8>; ti,non-removable; non-removable; mmc-pwrseq = <&emmc_pwrseq>; ti,needs-special-reset; dmas = <&sdma_xbar 47>, <&sdma_xbar 48>; dma-names = "tx", "rx"; }; &mmc4 { /* DS: Default speed (DS) up to 25 MHz, including 1- and 4-bit modes (3.3 V signaling). */ /* HS: High speed up to 50 MHz (3.3 V signaling). */ /* SDR12: SDR up to 25 MHz (1.8 V signaling). */ /* SDR25: SDR up to 50 MHz (1.8 V signaling). */ /* SDR50: SDR up to 100 MHz (1.8 V signaling). */ /* SDR104: SDR up to 208 MHz (1.8 V signaling) */ /* DDR50: DDR up to 50 MHz (1.8 V signaling). */ status = "okay"; ti,needs-special-reset; vmmc-supply = <&vdd_3v3>; cap-power-off-card; keep-power-in-suspend; bus-width = <4>; ti,non-removable; non-removable; no-1-8-v; max-frequency = <24000000>; #address-cells = <1>; #size-cells = <0>; mmc-pwrseq = <&brcmf_pwrseq>; brcmf: wifi@1 { status = "okay"; reg = <1>; compatible = "brcm,bcm4329-fmac"; brcm,sd-head-align = <4>; brcm,sd_head_align = <4>; brcm,sd_sgentry_align = <512>; interrupt-parent = <&gpio3>; interrupts = <23 IRQ_TYPE_LEVEL_LOW>; interrupt-names = "host-wake"; }; }; &usb2_phy1 { phy-supply = <&ldousb_reg>; }; &usb2_phy2 { phy-supply = <&ldousb_reg>; }; &usb1 { status = "okay"; dr_mode = "otg"; }; &omap_dwc3_1 { extcon = <&extcon_usb1>; }; &usb2 { status = "okay"; dr_mode = "host"; }; &dss { status = "okay"; vdda_video-supply = <&vdd_1v8_pll>; }; &hdmi { status = "okay"; vdda-supply = <&vdd_1v8_phy_ldo4>; port { hdmi_out: endpoint { remote-endpoint = <&hdmi_encoder_in>; }; }; }; &bandgap { status = "okay"; }; &cpu_alert0 { temperature = <55000>; /* milliCelsius */ }; &cpu_crit { temperature = <85000>; /* milliCelsius */ }; &gpu_crit { temperature = <85000>; /* milliCelsius */ }; &core_crit { temperature = <85000>; /* milliCelsius */ }; &dspeve_crit { temperature = <85000>; /* milliCelsius */ }; &iva_crit { temperature = <85000>; /* milliCelsius */ }; &sata { status = "disabled"; }; &sata_phy { status = "disabled"; }; /* bluetooth */ &uart6 { status = "okay"; }; /* cape header stuff */ &i2c4 { status = "okay"; clock-frequency = <100000>; }; &ipu2 { status = "okay"; memory-region = <&ipu2_memory_region>; }; &ipu1 { status = "okay"; memory-region = <&ipu1_memory_region>; }; &dsp1 { status = "okay"; memory-region = <&dsp1_memory_region>; }; &dsp2 { status = "okay"; memory-region = <&dsp2_memory_region>; };