8c054cd281
The PRUSSs on AM57xx SoCs contain an MDIO controller that can be used to control external PHYs associated with the Industrial Ethernet peripherals within each PRUSS. The MDIO module used within the PRU-ICSS is an instance of the MDIO Controller used in TI Davinci SoCs. The same bus frequency of 1 MHz is chosen as the regular MDIO node. The nodes are added in the common am57-pruss.dtsi file and enabled by default, but are disabled in all the existing AM57xx board dts files. These nodes need pinctrl lines, and so should be enabled only on boards where they are actually wired and pinned out for PRUSS Ethernet. Any new board dts file should disable these if they are not sure. Signed-off-by: Suman Anna <s-anna@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
648 lines
13 KiB
Plaintext
648 lines
13 KiB
Plaintext
// 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>;
|
|
};
|
|
|
|
&pruss1_mdio {
|
|
status = "disabled";
|
|
};
|
|
|
|
&pruss2_mdio {
|
|
status = "disabled";
|
|
};
|