| // SPDX-License-Identifier: GPL-2.0-only |
| /* |
| * Copyright (C) 2014-2016 Texas Instruments Incorporated - https://www.ti.com/ |
| */ |
| /dts-v1/; |
| |
| #include "am5728.dtsi" |
| #include "am57xx-commercial-grade.dtsi" |
| #include "dra74x-mmc-iodelay.dtsi" |
| #include "dra74-ipu-dsp-common.dtsi" |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| |
| / { |
| compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; |
| |
| aliases { |
| rtc0 = &mcp_rtc; |
| rtc1 = &tps659038_rtc; |
| rtc2 = &rtc; |
| display0 = &hdmi0; |
| }; |
| |
| chosen { |
| stdout-path = &uart3; |
| }; |
| |
| memory@0 { |
| device_type = "memory"; |
| reg = <0x0 0x80000000 0x0 0x80000000>; |
| }; |
| |
| main_12v0: fixedregulator-main_12v0 { |
| /* main supply */ |
| compatible = "regulator-fixed"; |
| regulator-name = "main_12v0"; |
| regulator-min-microvolt = <12000000>; |
| regulator-max-microvolt = <12000000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| evm_5v0: fixedregulator-evm_5v0 { |
| /* Output of TPS54531D */ |
| compatible = "regulator-fixed"; |
| regulator-name = "evm_5v0"; |
| regulator-min-microvolt = <5000000>; |
| regulator-max-microvolt = <5000000>; |
| vin-supply = <&main_12v0>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| 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_3v3: fixedregulator-vdd_3v3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "vdd_3v3"; |
| vin-supply = <®en1>; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| aic_dvdd: fixedregulator-aic_dvdd { |
| compatible = "regulator-fixed"; |
| regulator-name = "aic_dvdd_fixed"; |
| vin-supply = <&vdd_3v3>; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| vtt_fixed: fixedregulator-vtt { |
| /* TPS51200 */ |
| compatible = "regulator-fixed"; |
| regulator-name = "vtt_fixed"; |
| vin-supply = <&smps3_reg>; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| regulator-boot-on; |
| enable-active-high; |
| gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| leds { |
| compatible = "gpio-leds"; |
| |
| led0 { |
| label = "beagle-x15:usr0"; |
| gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>; |
| linux,default-trigger = "heartbeat"; |
| default-state = "off"; |
| }; |
| |
| led1 { |
| label = "beagle-x15:usr1"; |
| gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>; |
| linux,default-trigger = "cpu0"; |
| default-state = "off"; |
| }; |
| |
| led2 { |
| label = "beagle-x15:usr2"; |
| gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>; |
| linux,default-trigger = "mmc0"; |
| default-state = "off"; |
| }; |
| |
| led3 { |
| label = "beagle-x15:usr3"; |
| gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>; |
| linux,default-trigger = "disk-activity"; |
| default-state = "off"; |
| }; |
| }; |
| |
| gpio_fan: gpio_fan { |
| /* Based on 5v 500mA AFB02505HHB */ |
| compatible = "gpio-fan"; |
| gpios = <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>; |
| gpio-fan,speed-map = <0 0>, |
| <13000 1>; |
| #cooling-cells = <2>; |
| }; |
| |
| hdmi0: connector { |
| compatible = "hdmi-connector"; |
| label = "hdmi"; |
| |
| type = "a"; |
| |
| port { |
| hdmi_connector_in: endpoint { |
| remote-endpoint = <&tpd12s015_out>; |
| }; |
| }; |
| }; |
| |
| tpd12s015: encoder { |
| compatible = "ti,tpd12s015"; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| |
| tpd12s015_in: endpoint { |
| remote-endpoint = <&hdmi_out>; |
| }; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| |
| tpd12s015_out: endpoint { |
| remote-endpoint = <&hdmi_connector_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| sound0: sound0 { |
| compatible = "simple-audio-card"; |
| simple-audio-card,name = "BeagleBoard-X15"; |
| simple-audio-card,widgets = |
| "Line", "Line Out", |
| "Line", "Line In"; |
| simple-audio-card,routing = |
| "Line Out", "LLOUT", |
| "Line Out", "RLOUT", |
| "MIC2L", "Line In", |
| "MIC2R", "Line In"; |
| simple-audio-card,format = "dsp_b"; |
| simple-audio-card,bitclock-master = <&sound0_master>; |
| simple-audio-card,frame-master = <&sound0_master>; |
| simple-audio-card,bitclock-inversion; |
| |
| simple-audio-card,cpu { |
| sound-dai = <&mcasp3>; |
| }; |
| |
| sound0_master: simple-audio-card,codec { |
| sound-dai = <&tlv320aic3104>; |
| clocks = <&clkout2_clk>; |
| }; |
| }; |
| }; |
| |
| &i2c1 { |
| status = "okay"; |
| clock-frequency = <400000>; |
| |
| tps659038: tps659038@58 { |
| compatible = "ti,tps659038"; |
| reg = <0x58>; |
| interrupt-parent = <&gpio1>; |
| interrupts = <0 IRQ_TYPE_LEVEL_LOW>; |
| |
| #interrupt-cells = <2>; |
| interrupt-controller; |
| |
| ti,system-power-controller; |
| ti,palmas-override-powerhold; |
| |
| tps659038_pmic { |
| compatible = "ti,tps659038-pmic"; |
| |
| regulators { |
| smps12_reg: smps12 { |
| /* VDD_MPU */ |
| regulator-name = "smps12"; |
| regulator-min-microvolt = < 850000>; |
| regulator-max-microvolt = <1250000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| smps3_reg: smps3 { |
| /* VDD_DDR */ |
| regulator-name = "smps3"; |
| regulator-min-microvolt = <1350000>; |
| regulator-max-microvolt = <1350000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| smps45_reg: smps45 { |
| /* VDD_DSPEVE, VDD_IVA, VDD_GPU */ |
| regulator-name = "smps45"; |
| regulator-min-microvolt = < 850000>; |
| regulator-max-microvolt = <1250000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| smps6_reg: smps6 { |
| /* VDD_CORE */ |
| regulator-name = "smps6"; |
| regulator-min-microvolt = <850000>; |
| regulator-max-microvolt = <1150000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| /* SMPS7 unused */ |
| |
| smps8_reg: smps8 { |
| /* VDD_1V8 */ |
| regulator-name = "smps8"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| /* SMPS9 unused */ |
| |
| ldo1_reg: ldo1 { |
| /* VDD_SD / VDDSHV8 */ |
| regulator-name = "ldo1"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| ldo2_reg: ldo2 { |
| /* VDD_SHV5 */ |
| regulator-name = "ldo2"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| ldo3_reg: ldo3 { |
| /* VDDA_1V8_PHYA */ |
| regulator-name = "ldo3"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| ldo4_reg: ldo4 { |
| /* VDDA_1V8_PHYB */ |
| regulator-name = "ldo4"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| ldo9_reg: ldo9 { |
| /* VDD_RTC */ |
| regulator-name = "ldo9"; |
| regulator-min-microvolt = <1050000>; |
| regulator-max-microvolt = <1050000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| ldoln_reg: 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-boot-on; |
| }; |
| |
| regen1: regen1 { |
| /* VDD_3V3_ON */ |
| regulator-name = "regen1"; |
| 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>; |
| }; |
| |
| extcon_usb2: tps659038_usb { |
| compatible = "ti,palmas-usb-vid"; |
| ti,enable-vbus-detection; |
| vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| }; |
| |
| tmp102: tmp102@48 { |
| compatible = "ti,tmp102"; |
| reg = <0x48>; |
| interrupt-parent = <&gpio7>; |
| interrupts = <16 IRQ_TYPE_LEVEL_LOW>; |
| #thermal-sensor-cells = <1>; |
| }; |
| |
| tlv320aic3104: tlv320aic3104@18 { |
| #sound-dai-cells = <0>; |
| compatible = "ti,tlv320aic3104"; |
| reg = <0x18>; |
| assigned-clocks = <&clkoutmux2_clk_mux>; |
| assigned-clock-parents = <&sys_clk2_dclk_div>; |
| |
| status = "okay"; |
| adc-settle-ms = <40>; |
| |
| AVDD-supply = <&vdd_3v3>; |
| IOVDD-supply = <&vdd_3v3>; |
| DRVDD-supply = <&vdd_3v3>; |
| DVDD-supply = <&aic_dvdd>; |
| }; |
| |
| eeprom: eeprom@50 { |
| compatible = "atmel,24c32"; |
| reg = <0x50>; |
| }; |
| }; |
| |
| &i2c3 { |
| status = "okay"; |
| clock-frequency = <400000>; |
| |
| mcp_rtc: rtc@6f { |
| compatible = "microchip,mcp7941x"; |
| reg = <0x6f>; |
| interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>, |
| <&dra7_pmx_core 0x424>; |
| interrupt-names = "irq", "wakeup"; |
| |
| vcc-supply = <&vdd_3v3>; |
| wakeup-source; |
| }; |
| }; |
| |
| &gpio7_target { |
| ti,no-reset-on-init; |
| ti,no-idle-on-init; |
| }; |
| |
| &cpu0 { |
| vdd-supply = <&smps12_reg>; |
| voltage-tolerance = <1>; |
| }; |
| |
| &uart3 { |
| status = "okay"; |
| interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, |
| <&dra7_pmx_core 0x3f8>; |
| }; |
| |
| &davinci_mdio_sw { |
| phy0: ethernet-phy@1 { |
| reg = <1>; |
| }; |
| |
| phy1: ethernet-phy@2 { |
| reg = <2>; |
| }; |
| }; |
| |
| &mac_sw { |
| status = "okay"; |
| }; |
| |
| &cpsw_port1 { |
| phy-handle = <&phy0>; |
| phy-mode = "rgmii-rxid"; |
| ti,dual-emac-pvid = <1>; |
| }; |
| |
| &cpsw_port2 { |
| phy-handle = <&phy1>; |
| phy-mode = "rgmii-rxid"; |
| ti,dual-emac-pvid = <2>; |
| }; |
| |
| &mmc1 { |
| status = "okay"; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&mmc1_pins_default>; |
| |
| bus-width = <4>; |
| cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */ |
| no-1-8-v; |
| }; |
| |
| &mmc2 { |
| status = "okay"; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&mmc2_pins_default>; |
| |
| vmmc-supply = <&vdd_3v3>; |
| vqmmc-supply = <&vdd_3v3>; |
| bus-width = <8>; |
| non-removable; |
| no-1-8-v; |
| }; |
| |
| &sata { |
| status = "okay"; |
| }; |
| |
| &usb2_phy1 { |
| phy-supply = <&ldousb_reg>; |
| }; |
| |
| &usb2_phy2 { |
| phy-supply = <&ldousb_reg>; |
| }; |
| |
| &usb1 { |
| dr_mode = "host"; |
| }; |
| |
| &omap_dwc3_2 { |
| extcon = <&extcon_usb2>; |
| }; |
| |
| &usb2 { |
| /* |
| * Stand alone usage is peripheral only. |
| * However, with some resistor modifications |
| * this port can be used via expansion connectors |
| * as "host" or "dual-role". If so, provide |
| * the necessary dr_mode override in the expansion |
| * board's DT. |
| */ |
| dr_mode = "peripheral"; |
| }; |
| |
| &cpu_trips { |
| cpu_alert1: cpu_alert1 { |
| temperature = <50000>; /* millicelsius */ |
| hysteresis = <2000>; /* millicelsius */ |
| type = "active"; |
| }; |
| }; |
| |
| &cpu_cooling_maps { |
| map1 { |
| trip = <&cpu_alert1>; |
| cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; |
| }; |
| }; |
| |
| &thermal_zones { |
| board_thermal: board_thermal { |
| polling-delay-passive = <1250>; /* milliseconds */ |
| polling-delay = <1500>; /* milliseconds */ |
| |
| /* sensor ID */ |
| thermal-sensors = <&tmp102 0>; |
| |
| board_trips: trips { |
| board_alert0: board_alert { |
| temperature = <40000>; /* millicelsius */ |
| hysteresis = <2000>; /* millicelsius */ |
| type = "active"; |
| }; |
| |
| board_crit: board_crit { |
| temperature = <105000>; /* millicelsius */ |
| hysteresis = <0>; /* millicelsius */ |
| type = "critical"; |
| }; |
| }; |
| |
| board_cooling_maps: cooling-maps { |
| map0 { |
| trip = <&board_alert0>; |
| cooling-device = |
| <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; |
| }; |
| }; |
| }; |
| }; |
| |
| &dss { |
| status = "okay"; |
| |
| vdda_video-supply = <&ldoln_reg>; |
| }; |
| |
| &hdmi { |
| status = "okay"; |
| vdda-supply = <&ldo4_reg>; |
| |
| port { |
| hdmi_out: endpoint { |
| remote-endpoint = <&tpd12s015_in>; |
| }; |
| }; |
| }; |
| |
| &pcie1_rc { |
| status = "okay"; |
| gpios = <&gpio2 8 GPIO_ACTIVE_LOW>; |
| }; |
| |
| &mcasp3 { |
| #sound-dai-cells = <0>; |
| assigned-clocks = <&l4per2_clkctrl DRA7_L4PER2_MCASP3_CLKCTRL 24>; |
| assigned-clock-parents = <&sys_clkin2>; |
| status = "okay"; |
| |
| op-mode = <0>; /* MCASP_IIS_MODE */ |
| tdm-slots = <2>; |
| /* 4 serializers */ |
| serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ |
| 1 2 0 0 |
| >; |
| tx-num-evt = <32>; |
| rx-num-evt = <32>; |
| }; |
| |
| &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>; |
| }; |