1 /*
2 * Copyright (C) 2014-2016 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8 /dts-v1/;
10 #include "dra74x.dtsi"
11 #include "am57xx-commercial-grade.dtsi"
12 #include "dra74x-mmc-iodelay.dtsi"
13 #include "dra74-ipu-dsp-common.dtsi"
14 #include <dt-bindings/gpio/gpio.h>
15 #include <dt-bindings/interrupt-controller/irq.h>
17 / {
18 compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
20 aliases {
21 rtc0 = &mcp_rtc;
22 rtc1 = &tps659038_rtc;
23 rtc2 = &rtc;
24 display0 = &hdmi0;
25 };
27 chosen {
28 stdout-path = &uart3;
29 };
31 memory@0 {
32 device_type = "memory";
33 reg = <0x0 0x80000000 0x0 0x80000000>;
34 };
36 reserved-memory {
37 #address-cells = <2>;
38 #size-cells = <2>;
39 ranges;
41 ipu2_memory_region: ipu2-memory@95800000 {
42 compatible = "shared-dma-pool";
43 reg = <0x0 0x95800000 0x0 0x3800000>;
44 reusable;
45 status = "okay";
46 };
48 dsp1_memory_region: dsp1-memory@99000000 {
49 compatible = "shared-dma-pool";
50 reg = <0x0 0x99000000 0x0 0x4000000>;
51 reusable;
52 status = "okay";
53 };
55 ipu1_memory_region: ipu1-memory@9d000000 {
56 compatible = "shared-dma-pool";
57 reg = <0x0 0x9d000000 0x0 0x2000000>;
58 reusable;
59 status = "okay";
60 };
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 };
70 vdd_3v3: fixedregulator-vdd_3v3 {
71 compatible = "regulator-fixed";
72 regulator-name = "vdd_3v3";
73 vin-supply = <®en1>;
74 regulator-min-microvolt = <3300000>;
75 regulator-max-microvolt = <3300000>;
76 };
78 aic_dvdd: fixedregulator-aic_dvdd {
79 compatible = "regulator-fixed";
80 regulator-name = "aic_dvdd_fixed";
81 vin-supply = <&vdd_3v3>;
82 regulator-min-microvolt = <1800000>;
83 regulator-max-microvolt = <1800000>;
84 };
86 vtt_fixed: fixedregulator-vtt {
87 /* TPS51200 */
88 compatible = "regulator-fixed";
89 regulator-name = "vtt_fixed";
90 vin-supply = <&smps3_reg>;
91 regulator-min-microvolt = <3300000>;
92 regulator-max-microvolt = <3300000>;
93 regulator-always-on;
94 regulator-boot-on;
95 enable-active-high;
96 gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
97 };
99 leds {
100 compatible = "gpio-leds";
102 led0 {
103 label = "beagle-x15:usr0";
104 gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
105 linux,default-trigger = "heartbeat";
106 default-state = "off";
107 };
109 led1 {
110 label = "beagle-x15:usr1";
111 gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
112 linux,default-trigger = "cpu0";
113 default-state = "off";
114 };
116 led2 {
117 label = "beagle-x15:usr2";
118 gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
119 linux,default-trigger = "mmc0";
120 default-state = "off";
121 };
123 led3 {
124 label = "beagle-x15:usr3";
125 gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
126 linux,default-trigger = "disk-activity";
127 default-state = "off";
128 };
129 };
131 gpio_fan: gpio_fan {
132 /* Based on 5v 500mA AFB02505HHB */
133 compatible = "gpio-fan";
134 gpios = <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
135 gpio-fan,speed-map = <0 0>,
136 <13000 1>;
137 #cooling-cells = <2>;
138 };
140 hdmi0: connector {
141 compatible = "hdmi-connector";
142 label = "hdmi";
144 type = "a";
146 port {
147 hdmi_connector_in: endpoint {
148 remote-endpoint = <&tpd12s015_out>;
149 };
150 };
151 };
153 tpd12s015: encoder {
154 compatible = "ti,tpd12s015";
156 ports {
157 #address-cells = <1>;
158 #size-cells = <0>;
160 port@0 {
161 reg = <0>;
163 tpd12s015_in: endpoint {
164 remote-endpoint = <&hdmi_out>;
165 };
166 };
168 port@1 {
169 reg = <1>;
171 tpd12s015_out: endpoint {
172 remote-endpoint = <&hdmi_connector_in>;
173 };
174 };
175 };
176 };
178 sound0: sound0 {
179 compatible = "simple-audio-card";
180 simple-audio-card,name = "BeagleBoard-X15";
181 simple-audio-card,widgets =
182 "Line", "Line Out",
183 "Line", "Line In";
184 simple-audio-card,routing =
185 "Line Out", "LLOUT",
186 "Line Out", "RLOUT",
187 "MIC2L", "Line In",
188 "MIC2R", "Line In";
189 simple-audio-card,format = "dsp_b";
190 simple-audio-card,bitclock-master = <&sound0_master>;
191 simple-audio-card,frame-master = <&sound0_master>;
192 simple-audio-card,bitclock-inversion;
194 simple-audio-card,cpu {
195 sound-dai = <&mcasp3>;
196 };
198 sound0_master: simple-audio-card,codec {
199 sound-dai = <&tlv320aic3104>;
200 clocks = <&clkout2_clk>;
201 };
202 };
203 };
205 &i2c1 {
206 status = "okay";
207 clock-frequency = <400000>;
209 tps659038: tps659038@58 {
210 compatible = "ti,tps659038";
211 reg = <0x58>;
212 interrupt-parent = <&gpio1>;
213 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
215 #interrupt-cells = <2>;
216 interrupt-controller;
218 ti,system-power-controller;
219 ti,palmas-override-powerhold;
221 tps659038_pmic {
222 compatible = "ti,tps659038-pmic";
224 regulators {
225 smps12_reg: smps12 {
226 /* VDD_MPU */
227 regulator-name = "smps12";
228 regulator-min-microvolt = < 850000>;
229 regulator-max-microvolt = <1250000>;
230 regulator-always-on;
231 regulator-boot-on;
232 };
234 smps3_reg: smps3 {
235 /* VDD_DDR */
236 regulator-name = "smps3";
237 regulator-min-microvolt = <1350000>;
238 regulator-max-microvolt = <1350000>;
239 regulator-always-on;
240 regulator-boot-on;
241 };
243 smps45_reg: smps45 {
244 /* VDD_DSPEVE, VDD_IVA, VDD_GPU */
245 regulator-name = "smps45";
246 regulator-min-microvolt = < 850000>;
247 regulator-max-microvolt = <1250000>;
248 regulator-always-on;
249 regulator-boot-on;
250 };
252 smps6_reg: smps6 {
253 /* VDD_CORE */
254 regulator-name = "smps6";
255 regulator-min-microvolt = <850000>;
256 regulator-max-microvolt = <1150000>;
257 regulator-always-on;
258 regulator-boot-on;
259 };
261 /* SMPS7 unused */
263 smps8_reg: smps8 {
264 /* VDD_1V8 */
265 regulator-name = "smps8";
266 regulator-min-microvolt = <1800000>;
267 regulator-max-microvolt = <1800000>;
268 regulator-always-on;
269 regulator-boot-on;
270 };
272 /* SMPS9 unused */
274 ldo1_reg: ldo1 {
275 /* VDD_SD / VDDSHV8 */
276 regulator-name = "ldo1";
277 regulator-min-microvolt = <1800000>;
278 regulator-max-microvolt = <3300000>;
279 regulator-boot-on;
280 regulator-always-on;
281 };
283 ldo2_reg: ldo2 {
284 /* VDD_SHV5 */
285 regulator-name = "ldo2";
286 regulator-min-microvolt = <3300000>;
287 regulator-max-microvolt = <3300000>;
288 regulator-always-on;
289 regulator-boot-on;
290 };
292 ldo3_reg: ldo3 {
293 /* VDDA_1V8_PHYA */
294 regulator-name = "ldo3";
295 regulator-min-microvolt = <1800000>;
296 regulator-max-microvolt = <1800000>;
297 regulator-always-on;
298 regulator-boot-on;
299 };
301 ldo4_reg: ldo4 {
302 /* VDDA_1V8_PHYB */
303 regulator-name = "ldo4";
304 regulator-min-microvolt = <1800000>;
305 regulator-max-microvolt = <1800000>;
306 regulator-always-on;
307 regulator-boot-on;
308 };
310 ldo9_reg: ldo9 {
311 /* VDD_RTC */
312 regulator-name = "ldo9";
313 regulator-min-microvolt = <1050000>;
314 regulator-max-microvolt = <1050000>;
315 regulator-always-on;
316 regulator-boot-on;
317 };
319 ldoln_reg: ldoln {
320 /* VDDA_1V8_PLL */
321 regulator-name = "ldoln";
322 regulator-min-microvolt = <1800000>;
323 regulator-max-microvolt = <1800000>;
324 regulator-always-on;
325 regulator-boot-on;
326 };
328 ldousb_reg: ldousb {
329 /* VDDA_3V_USB: VDDA_USBHS33 */
330 regulator-name = "ldousb";
331 regulator-min-microvolt = <3300000>;
332 regulator-max-microvolt = <3300000>;
333 regulator-boot-on;
334 };
336 regen1: regen1 {
337 /* VDD_3V3_ON */
338 regulator-name = "regen1";
339 regulator-boot-on;
340 regulator-always-on;
341 };
342 };
343 };
345 tps659038_rtc: tps659038_rtc {
346 compatible = "ti,palmas-rtc";
347 interrupt-parent = <&tps659038>;
348 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
349 wakeup-source;
350 };
352 tps659038_pwr_button: tps659038_pwr_button {
353 compatible = "ti,palmas-pwrbutton";
354 interrupt-parent = <&tps659038>;
355 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
356 wakeup-source;
357 ti,palmas-long-press-seconds = <12>;
358 };
360 tps659038_gpio: tps659038_gpio {
361 compatible = "ti,palmas-gpio";
362 gpio-controller;
363 #gpio-cells = <2>;
364 };
366 extcon_usb2: tps659038_usb {
367 compatible = "ti,palmas-usb-vid";
368 ti,enable-vbus-detection;
369 vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
370 };
372 };
374 tmp102: tmp102@48 {
375 compatible = "ti,tmp102";
376 reg = <0x48>;
377 interrupt-parent = <&gpio7>;
378 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
379 #thermal-sensor-cells = <1>;
380 };
382 tlv320aic3104: tlv320aic3104@18 {
383 #sound-dai-cells = <0>;
384 compatible = "ti,tlv320aic3104";
385 reg = <0x18>;
386 assigned-clocks = <&clkoutmux2_clk_mux>;
387 assigned-clock-parents = <&sys_clk2_dclk_div>;
389 status = "okay";
390 adc-settle-ms = <40>;
392 AVDD-supply = <&vdd_3v3>;
393 IOVDD-supply = <&vdd_3v3>;
394 DRVDD-supply = <&vdd_3v3>;
395 DVDD-supply = <&aic_dvdd>;
396 };
398 eeprom: eeprom@50 {
399 compatible = "atmel,24c32";
400 reg = <0x50>;
401 };
402 };
404 &i2c3 {
405 status = "okay";
406 clock-frequency = <400000>;
408 mcp_rtc: rtc@6f {
409 compatible = "microchip,mcp7941x";
410 reg = <0x6f>;
411 interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
412 <&dra7_pmx_core 0x424>;
413 interrupt-names = "irq", "wakeup";
415 vcc-supply = <&vdd_3v3>;
416 wakeup-source;
417 };
418 };
420 &gpio7 {
421 ti,no-reset-on-init;
422 ti,no-idle-on-init;
423 };
425 &cpu0 {
426 vdd-supply = <&smps12_reg>;
427 voltage-tolerance = <1>;
428 };
430 &uart3 {
431 status = "okay";
432 interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
433 <&dra7_pmx_core 0x3f8>;
434 };
436 &davinci_mdio {
437 phy0: ethernet-phy@1 {
438 reg = <1>;
439 };
441 phy1: ethernet-phy@2 {
442 reg = <2>;
443 };
444 };
446 &mac {
447 status = "okay";
448 dual_emac;
449 };
451 &cpsw_emac0 {
452 phy-handle = <&phy0>;
453 phy-mode = "rgmii";
454 dual_emac_res_vlan = <1>;
455 };
457 &cpsw_emac1 {
458 phy-handle = <&phy1>;
459 phy-mode = "rgmii";
460 dual_emac_res_vlan = <2>;
461 };
463 &mmc1 {
464 status = "okay";
466 pinctrl-names = "default";
467 pinctrl-0 = <&mmc1_pins_default>;
469 bus-width = <4>;
470 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
471 };
473 &mmc2 {
474 status = "okay";
476 pinctrl-names = "default";
477 pinctrl-0 = <&mmc2_pins_default>;
479 vmmc-supply = <&vdd_3v3>;
480 vqmmc-supply = <&vdd_3v3>;
481 bus-width = <8>;
482 non-removable;
483 no-1-8-v;
484 };
486 &sata {
487 status = "okay";
488 };
490 &usb2_phy1 {
491 phy-supply = <&ldousb_reg>;
492 };
494 &usb2_phy2 {
495 phy-supply = <&ldousb_reg>;
496 };
498 &usb1 {
499 dr_mode = "host";
500 };
502 &omap_dwc3_2 {
503 extcon = <&extcon_usb2>;
504 };
506 &usb2 {
507 /*
508 * Stand alone usage is peripheral only.
509 * However, with some resistor modifications
510 * this port can be used via expansion connectors
511 * as "host" or "dual-role". If so, provide
512 * the necessary dr_mode override in the expansion
513 * board's DT.
514 */
515 dr_mode = "peripheral";
516 };
518 &cpu_trips {
519 cpu_alert1: cpu_alert1 {
520 temperature = <50000>; /* millicelsius */
521 hysteresis = <2000>; /* millicelsius */
522 type = "active";
523 };
524 };
526 &cpu_cooling_maps {
527 map1 {
528 trip = <&cpu_alert1>;
529 cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
530 };
531 };
533 &thermal_zones {
534 board_thermal: board_thermal {
535 polling-delay-passive = <1250>; /* milliseconds */
536 polling-delay = <1500>; /* milliseconds */
538 /* sensor ID */
539 thermal-sensors = <&tmp102 0>;
541 board_trips: trips {
542 board_alert0: board_alert {
543 temperature = <40000>; /* millicelsius */
544 hysteresis = <2000>; /* millicelsius */
545 type = "active";
546 };
548 board_crit: board_crit {
549 temperature = <105000>; /* millicelsius */
550 hysteresis = <0>; /* millicelsius */
551 type = "critical";
552 };
553 };
555 board_cooling_maps: cooling-maps {
556 map0 {
557 trip = <&board_alert0>;
558 cooling-device =
559 <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
560 };
561 };
562 };
563 };
565 &dss {
566 status = "ok";
568 vdda_video-supply = <&ldoln_reg>;
569 };
571 &hdmi {
572 status = "ok";
573 vdda-supply = <&ldo4_reg>;
575 port {
576 hdmi_out: endpoint {
577 remote-endpoint = <&tpd12s015_in>;
578 };
579 };
580 };
582 &pcie1_rc {
583 status = "ok";
584 gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
585 };
587 &pcie1_ep {
588 gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
589 };
591 &mcasp3 {
592 #sound-dai-cells = <0>;
593 assigned-clocks = <&l4per_clkctrl DRA7_MCASP3_CLKCTRL 24>;
594 assigned-clock-parents = <&sys_clkin2>;
595 status = "okay";
597 op-mode = <0>; /* MCASP_IIS_MODE */
598 tdm-slots = <2>;
599 /* 4 serializers */
600 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
601 1 2 0 0
602 >;
603 tx-num-evt = <32>;
604 rx-num-evt = <32>;
605 };
607 &pruss_soc_bus1 {
608 status = "okay";
610 pruss1: pruss@4b200000 {
611 status = "okay";
612 };
613 };
615 &pruss_soc_bus2 {
616 status = "okay";
618 pruss2: pruss@4b280000 {
619 status = "okay";
620 };
621 };
623 &ipu2 {
624 status = "okay";
625 memory-region = <&ipu2_memory_region>;
626 };
628 &ipu1 {
629 status = "okay";
630 memory-region = <&ipu1_memory_region>;
631 };
633 &dsp1 {
634 status = "okay";
635 memory-region = <&dsp1_memory_region>;
636 };
638 &dsp2 {
639 status = "okay";
640 memory-region = <&dsp2_memory_region>;
641 };
643 #include "dra7-ipu-common-early-boot.dtsi"