0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003 * Copyright (C) 2014-2016 Texas Instruments Incorporated - https://www.ti.com/
0004 */
0005 /dts-v1/;
0006
0007 #include "am5728.dtsi"
0008 #include "am57xx-commercial-grade.dtsi"
0009 #include "dra74x-mmc-iodelay.dtsi"
0010 #include "dra74-ipu-dsp-common.dtsi"
0011 #include <dt-bindings/gpio/gpio.h>
0012 #include <dt-bindings/interrupt-controller/irq.h>
0013
0014 / {
0015 compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
0016
0017 aliases {
0018 rtc0 = &mcp_rtc;
0019 rtc1 = &tps659038_rtc;
0020 rtc2 = &rtc;
0021 display0 = &hdmi0;
0022 };
0023
0024 chosen {
0025 stdout-path = &uart3;
0026 };
0027
0028 memory@0 {
0029 device_type = "memory";
0030 reg = <0x0 0x80000000 0x0 0x80000000>;
0031 };
0032
0033 main_12v0: fixedregulator-main_12v0 {
0034 /* main supply */
0035 compatible = "regulator-fixed";
0036 regulator-name = "main_12v0";
0037 regulator-min-microvolt = <12000000>;
0038 regulator-max-microvolt = <12000000>;
0039 regulator-always-on;
0040 regulator-boot-on;
0041 };
0042
0043 evm_5v0: fixedregulator-evm_5v0 {
0044 /* Output of TPS54531D */
0045 compatible = "regulator-fixed";
0046 regulator-name = "evm_5v0";
0047 regulator-min-microvolt = <5000000>;
0048 regulator-max-microvolt = <5000000>;
0049 vin-supply = <&main_12v0>;
0050 regulator-always-on;
0051 regulator-boot-on;
0052 };
0053
0054 reserved-memory {
0055 #address-cells = <2>;
0056 #size-cells = <2>;
0057 ranges;
0058
0059 ipu2_memory_region: ipu2-memory@95800000 {
0060 compatible = "shared-dma-pool";
0061 reg = <0x0 0x95800000 0x0 0x3800000>;
0062 reusable;
0063 status = "okay";
0064 };
0065
0066 dsp1_memory_region: dsp1-memory@99000000 {
0067 compatible = "shared-dma-pool";
0068 reg = <0x0 0x99000000 0x0 0x4000000>;
0069 reusable;
0070 status = "okay";
0071 };
0072
0073 ipu1_memory_region: ipu1-memory@9d000000 {
0074 compatible = "shared-dma-pool";
0075 reg = <0x0 0x9d000000 0x0 0x2000000>;
0076 reusable;
0077 status = "okay";
0078 };
0079
0080 dsp2_memory_region: dsp2-memory@9f000000 {
0081 compatible = "shared-dma-pool";
0082 reg = <0x0 0x9f000000 0x0 0x800000>;
0083 reusable;
0084 status = "okay";
0085 };
0086 };
0087
0088 vdd_3v3: fixedregulator-vdd_3v3 {
0089 compatible = "regulator-fixed";
0090 regulator-name = "vdd_3v3";
0091 vin-supply = <®en1>;
0092 regulator-min-microvolt = <3300000>;
0093 regulator-max-microvolt = <3300000>;
0094 };
0095
0096 aic_dvdd: fixedregulator-aic_dvdd {
0097 compatible = "regulator-fixed";
0098 regulator-name = "aic_dvdd_fixed";
0099 vin-supply = <&vdd_3v3>;
0100 regulator-min-microvolt = <1800000>;
0101 regulator-max-microvolt = <1800000>;
0102 };
0103
0104 vtt_fixed: fixedregulator-vtt {
0105 /* TPS51200 */
0106 compatible = "regulator-fixed";
0107 regulator-name = "vtt_fixed";
0108 vin-supply = <&smps3_reg>;
0109 regulator-min-microvolt = <3300000>;
0110 regulator-max-microvolt = <3300000>;
0111 regulator-always-on;
0112 regulator-boot-on;
0113 enable-active-high;
0114 gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
0115 };
0116
0117 leds {
0118 compatible = "gpio-leds";
0119
0120 led0 {
0121 label = "beagle-x15:usr0";
0122 gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
0123 linux,default-trigger = "heartbeat";
0124 default-state = "off";
0125 };
0126
0127 led1 {
0128 label = "beagle-x15:usr1";
0129 gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
0130 linux,default-trigger = "cpu0";
0131 default-state = "off";
0132 };
0133
0134 led2 {
0135 label = "beagle-x15:usr2";
0136 gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
0137 linux,default-trigger = "mmc0";
0138 default-state = "off";
0139 };
0140
0141 led3 {
0142 label = "beagle-x15:usr3";
0143 gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
0144 linux,default-trigger = "disk-activity";
0145 default-state = "off";
0146 };
0147 };
0148
0149 gpio_fan: gpio_fan {
0150 /* Based on 5v 500mA AFB02505HHB */
0151 compatible = "gpio-fan";
0152 gpios = <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
0153 gpio-fan,speed-map = <0 0>,
0154 <13000 1>;
0155 #cooling-cells = <2>;
0156 };
0157
0158 hdmi0: connector {
0159 compatible = "hdmi-connector";
0160 label = "hdmi";
0161
0162 type = "a";
0163
0164 port {
0165 hdmi_connector_in: endpoint {
0166 remote-endpoint = <&tpd12s015_out>;
0167 };
0168 };
0169 };
0170
0171 tpd12s015: encoder {
0172 compatible = "ti,tpd12s015";
0173
0174 ports {
0175 #address-cells = <1>;
0176 #size-cells = <0>;
0177
0178 port@0 {
0179 reg = <0>;
0180
0181 tpd12s015_in: endpoint {
0182 remote-endpoint = <&hdmi_out>;
0183 };
0184 };
0185
0186 port@1 {
0187 reg = <1>;
0188
0189 tpd12s015_out: endpoint {
0190 remote-endpoint = <&hdmi_connector_in>;
0191 };
0192 };
0193 };
0194 };
0195
0196 sound0: sound0 {
0197 compatible = "simple-audio-card";
0198 simple-audio-card,name = "BeagleBoard-X15";
0199 simple-audio-card,widgets =
0200 "Line", "Line Out",
0201 "Line", "Line In";
0202 simple-audio-card,routing =
0203 "Line Out", "LLOUT",
0204 "Line Out", "RLOUT",
0205 "MIC2L", "Line In",
0206 "MIC2R", "Line In";
0207 simple-audio-card,format = "dsp_b";
0208 simple-audio-card,bitclock-master = <&sound0_master>;
0209 simple-audio-card,frame-master = <&sound0_master>;
0210 simple-audio-card,bitclock-inversion;
0211
0212 simple-audio-card,cpu {
0213 sound-dai = <&mcasp3>;
0214 };
0215
0216 sound0_master: simple-audio-card,codec {
0217 sound-dai = <&tlv320aic3104>;
0218 clocks = <&clkout2_clk>;
0219 };
0220 };
0221 };
0222
0223 &i2c1 {
0224 status = "okay";
0225 clock-frequency = <400000>;
0226
0227 tps659038: tps659038@58 {
0228 compatible = "ti,tps659038";
0229 reg = <0x58>;
0230 interrupt-parent = <&gpio1>;
0231 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
0232
0233 #interrupt-cells = <2>;
0234 interrupt-controller;
0235
0236 ti,system-power-controller;
0237 ti,palmas-override-powerhold;
0238
0239 tps659038_pmic {
0240 compatible = "ti,tps659038-pmic";
0241
0242 regulators {
0243 smps12_reg: smps12 {
0244 /* VDD_MPU */
0245 regulator-name = "smps12";
0246 regulator-min-microvolt = < 850000>;
0247 regulator-max-microvolt = <1250000>;
0248 regulator-always-on;
0249 regulator-boot-on;
0250 };
0251
0252 smps3_reg: smps3 {
0253 /* VDD_DDR */
0254 regulator-name = "smps3";
0255 regulator-min-microvolt = <1350000>;
0256 regulator-max-microvolt = <1350000>;
0257 regulator-always-on;
0258 regulator-boot-on;
0259 };
0260
0261 smps45_reg: smps45 {
0262 /* VDD_DSPEVE, VDD_IVA, VDD_GPU */
0263 regulator-name = "smps45";
0264 regulator-min-microvolt = < 850000>;
0265 regulator-max-microvolt = <1250000>;
0266 regulator-always-on;
0267 regulator-boot-on;
0268 };
0269
0270 smps6_reg: smps6 {
0271 /* VDD_CORE */
0272 regulator-name = "smps6";
0273 regulator-min-microvolt = <850000>;
0274 regulator-max-microvolt = <1150000>;
0275 regulator-always-on;
0276 regulator-boot-on;
0277 };
0278
0279 /* SMPS7 unused */
0280
0281 smps8_reg: smps8 {
0282 /* VDD_1V8 */
0283 regulator-name = "smps8";
0284 regulator-min-microvolt = <1800000>;
0285 regulator-max-microvolt = <1800000>;
0286 regulator-always-on;
0287 regulator-boot-on;
0288 };
0289
0290 /* SMPS9 unused */
0291
0292 ldo1_reg: ldo1 {
0293 /* VDD_SD / VDDSHV8 */
0294 regulator-name = "ldo1";
0295 regulator-min-microvolt = <1800000>;
0296 regulator-max-microvolt = <3300000>;
0297 regulator-boot-on;
0298 regulator-always-on;
0299 };
0300
0301 ldo2_reg: ldo2 {
0302 /* VDD_SHV5 */
0303 regulator-name = "ldo2";
0304 regulator-min-microvolt = <3300000>;
0305 regulator-max-microvolt = <3300000>;
0306 regulator-always-on;
0307 regulator-boot-on;
0308 };
0309
0310 ldo3_reg: ldo3 {
0311 /* VDDA_1V8_PHYA */
0312 regulator-name = "ldo3";
0313 regulator-min-microvolt = <1800000>;
0314 regulator-max-microvolt = <1800000>;
0315 regulator-always-on;
0316 regulator-boot-on;
0317 };
0318
0319 ldo4_reg: ldo4 {
0320 /* VDDA_1V8_PHYB */
0321 regulator-name = "ldo4";
0322 regulator-min-microvolt = <1800000>;
0323 regulator-max-microvolt = <1800000>;
0324 regulator-always-on;
0325 regulator-boot-on;
0326 };
0327
0328 ldo9_reg: ldo9 {
0329 /* VDD_RTC */
0330 regulator-name = "ldo9";
0331 regulator-min-microvolt = <1050000>;
0332 regulator-max-microvolt = <1050000>;
0333 regulator-always-on;
0334 regulator-boot-on;
0335 };
0336
0337 ldoln_reg: ldoln {
0338 /* VDDA_1V8_PLL */
0339 regulator-name = "ldoln";
0340 regulator-min-microvolt = <1800000>;
0341 regulator-max-microvolt = <1800000>;
0342 regulator-always-on;
0343 regulator-boot-on;
0344 };
0345
0346 ldousb_reg: ldousb {
0347 /* VDDA_3V_USB: VDDA_USBHS33 */
0348 regulator-name = "ldousb";
0349 regulator-min-microvolt = <3300000>;
0350 regulator-max-microvolt = <3300000>;
0351 regulator-boot-on;
0352 };
0353
0354 regen1: regen1 {
0355 /* VDD_3V3_ON */
0356 regulator-name = "regen1";
0357 regulator-boot-on;
0358 regulator-always-on;
0359 };
0360 };
0361 };
0362
0363 tps659038_rtc: tps659038_rtc {
0364 compatible = "ti,palmas-rtc";
0365 interrupt-parent = <&tps659038>;
0366 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
0367 wakeup-source;
0368 };
0369
0370 tps659038_pwr_button: tps659038_pwr_button {
0371 compatible = "ti,palmas-pwrbutton";
0372 interrupt-parent = <&tps659038>;
0373 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
0374 wakeup-source;
0375 ti,palmas-long-press-seconds = <12>;
0376 };
0377
0378 tps659038_gpio: tps659038_gpio {
0379 compatible = "ti,palmas-gpio";
0380 gpio-controller;
0381 #gpio-cells = <2>;
0382 };
0383
0384 extcon_usb2: tps659038_usb {
0385 compatible = "ti,palmas-usb-vid";
0386 ti,enable-vbus-detection;
0387 vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
0388 };
0389
0390 };
0391
0392 tmp102: tmp102@48 {
0393 compatible = "ti,tmp102";
0394 reg = <0x48>;
0395 interrupt-parent = <&gpio7>;
0396 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
0397 #thermal-sensor-cells = <1>;
0398 };
0399
0400 tlv320aic3104: tlv320aic3104@18 {
0401 #sound-dai-cells = <0>;
0402 compatible = "ti,tlv320aic3104";
0403 reg = <0x18>;
0404 assigned-clocks = <&clkoutmux2_clk_mux>;
0405 assigned-clock-parents = <&sys_clk2_dclk_div>;
0406
0407 status = "okay";
0408 adc-settle-ms = <40>;
0409
0410 AVDD-supply = <&vdd_3v3>;
0411 IOVDD-supply = <&vdd_3v3>;
0412 DRVDD-supply = <&vdd_3v3>;
0413 DVDD-supply = <&aic_dvdd>;
0414 };
0415
0416 eeprom: eeprom@50 {
0417 compatible = "atmel,24c32";
0418 reg = <0x50>;
0419 };
0420 };
0421
0422 &i2c3 {
0423 status = "okay";
0424 clock-frequency = <400000>;
0425
0426 mcp_rtc: rtc@6f {
0427 compatible = "microchip,mcp7941x";
0428 reg = <0x6f>;
0429 interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
0430 <&dra7_pmx_core 0x424>;
0431 interrupt-names = "irq", "wakeup";
0432
0433 vcc-supply = <&vdd_3v3>;
0434 wakeup-source;
0435 };
0436 };
0437
0438 &gpio7_target {
0439 ti,no-reset-on-init;
0440 ti,no-idle-on-init;
0441 };
0442
0443 &cpu0 {
0444 vdd-supply = <&smps12_reg>;
0445 voltage-tolerance = <1>;
0446 };
0447
0448 &uart3 {
0449 status = "okay";
0450 interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
0451 <&dra7_pmx_core 0x3f8>;
0452 };
0453
0454 &davinci_mdio_sw {
0455 phy0: ethernet-phy@1 {
0456 reg = <1>;
0457 };
0458
0459 phy1: ethernet-phy@2 {
0460 reg = <2>;
0461 };
0462 };
0463
0464 &mac_sw {
0465 status = "okay";
0466 };
0467
0468 &cpsw_port1 {
0469 phy-handle = <&phy0>;
0470 phy-mode = "rgmii-rxid";
0471 ti,dual-emac-pvid = <1>;
0472 };
0473
0474 &cpsw_port2 {
0475 phy-handle = <&phy1>;
0476 phy-mode = "rgmii-rxid";
0477 ti,dual-emac-pvid = <2>;
0478 };
0479
0480 &mmc1 {
0481 status = "okay";
0482
0483 pinctrl-names = "default";
0484 pinctrl-0 = <&mmc1_pins_default>;
0485
0486 bus-width = <4>;
0487 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
0488 no-1-8-v;
0489 };
0490
0491 &mmc2 {
0492 status = "okay";
0493
0494 pinctrl-names = "default";
0495 pinctrl-0 = <&mmc2_pins_default>;
0496
0497 vmmc-supply = <&vdd_3v3>;
0498 vqmmc-supply = <&vdd_3v3>;
0499 bus-width = <8>;
0500 non-removable;
0501 no-1-8-v;
0502 };
0503
0504 &sata {
0505 status = "okay";
0506 };
0507
0508 &usb2_phy1 {
0509 phy-supply = <&ldousb_reg>;
0510 };
0511
0512 &usb2_phy2 {
0513 phy-supply = <&ldousb_reg>;
0514 };
0515
0516 &usb1 {
0517 dr_mode = "host";
0518 };
0519
0520 &omap_dwc3_2 {
0521 extcon = <&extcon_usb2>;
0522 };
0523
0524 &usb2 {
0525 /*
0526 * Stand alone usage is peripheral only.
0527 * However, with some resistor modifications
0528 * this port can be used via expansion connectors
0529 * as "host" or "dual-role". If so, provide
0530 * the necessary dr_mode override in the expansion
0531 * board's DT.
0532 */
0533 dr_mode = "peripheral";
0534 };
0535
0536 &cpu_trips {
0537 cpu_alert1: cpu_alert1 {
0538 temperature = <50000>; /* millicelsius */
0539 hysteresis = <2000>; /* millicelsius */
0540 type = "active";
0541 };
0542 };
0543
0544 &cpu_cooling_maps {
0545 map1 {
0546 trip = <&cpu_alert1>;
0547 cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
0548 };
0549 };
0550
0551 &thermal_zones {
0552 board_thermal: board_thermal {
0553 polling-delay-passive = <1250>; /* milliseconds */
0554 polling-delay = <1500>; /* milliseconds */
0555
0556 /* sensor ID */
0557 thermal-sensors = <&tmp102 0>;
0558
0559 board_trips: trips {
0560 board_alert0: board_alert {
0561 temperature = <40000>; /* millicelsius */
0562 hysteresis = <2000>; /* millicelsius */
0563 type = "active";
0564 };
0565
0566 board_crit: board_crit {
0567 temperature = <105000>; /* millicelsius */
0568 hysteresis = <0>; /* millicelsius */
0569 type = "critical";
0570 };
0571 };
0572
0573 board_cooling_maps: cooling-maps {
0574 map0 {
0575 trip = <&board_alert0>;
0576 cooling-device =
0577 <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
0578 };
0579 };
0580 };
0581 };
0582
0583 &dss {
0584 status = "okay";
0585
0586 vdda_video-supply = <&ldoln_reg>;
0587 };
0588
0589 &hdmi {
0590 status = "okay";
0591 vdda-supply = <&ldo4_reg>;
0592
0593 port {
0594 hdmi_out: endpoint {
0595 remote-endpoint = <&tpd12s015_in>;
0596 };
0597 };
0598 };
0599
0600 &pcie1_rc {
0601 status = "okay";
0602 gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
0603 };
0604
0605 &mcasp3 {
0606 #sound-dai-cells = <0>;
0607 assigned-clocks = <&l4per2_clkctrl DRA7_L4PER2_MCASP3_CLKCTRL 24>;
0608 assigned-clock-parents = <&sys_clkin2>;
0609 status = "okay";
0610
0611 op-mode = <0>; /* MCASP_IIS_MODE */
0612 tdm-slots = <2>;
0613 /* 4 serializers */
0614 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
0615 1 2 0 0
0616 >;
0617 tx-num-evt = <32>;
0618 rx-num-evt = <32>;
0619 };
0620
0621 &ipu2 {
0622 status = "okay";
0623 memory-region = <&ipu2_memory_region>;
0624 };
0625
0626 &ipu1 {
0627 status = "okay";
0628 memory-region = <&ipu1_memory_region>;
0629 };
0630
0631 &dsp1 {
0632 status = "okay";
0633 memory-region = <&dsp1_memory_region>;
0634 };
0635
0636 &dsp2 {
0637 status = "okay";
0638 memory-region = <&dsp2_memory_region>;
0639 };
0640
0641 &pruss1_mdio {
0642 status = "disabled";
0643 };
0644
0645 &pruss2_mdio {
0646 status = "disabled";
0647 };