aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNishanth Menon <nm@ti.com>2016-09-02 13:14:45 -0400
committerTony Lindgren <tony@atomide.com>2016-09-13 19:14:19 -0400
commit0af28cc92690d8c231ddf003452282e885993c08 (patch)
tree5b3ef9022ffa41a76f72b64d73992cb7810e3334
parentd20f997b4d1f3fc41703c95e4f4bb4ebca90da42 (diff)
ARM: dts: am57xx-beagle-x15: Add support for rev B1
Latest update to the BeagleBoard-X15 platform (revision B1)[1] updates for allowing UHS SD cards to function with the split of supply to SD card from a dedicated LDO. As a result of this, AM57xx BeagleBoard-X15 now uses gpio2_30 instead of gpio6_28 for HDMI because HDMI_LS_OE should now be switched from GPIO6_28(Y9) to GPIO2_30 (AG8) to avoid a 1.8V GPIO toggling a 3.3V SoC input when the SD card is in UHS 1.8V mode. NOTE: For UHS mode to function, we need full fledged IODelay support in kernel to be functional. IODelay support is yet to be added. Further, It does not make much sense to spin off a new board compatible flag since there is no real functional benefit for the same. Note: Even though production version is supposed to be B1, there is over ~200 boards of previous version (A2)[2] out there which continue to get supported with the existing dts file (to maintain compatibility with existing bootloaders for A2) and the production board is now supported as revb1. [1] https://github.com/beagleboard/beagleboard-x15/blob/master/BEAGLEBOARD_X15_REV_B1.pdf [2] http://marc.info/?l=linux-arm-kernel&m=147273929820708&w=2 Tested-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi596
-rw-r--r--arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts24
-rw-r--r--arch/arm/boot/dts/am57xx-beagle-x15.dts592
4 files changed, 628 insertions, 585 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index faacd52370d2..b8d9840895c2 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -570,6 +570,7 @@ dtb-$(CONFIG_SOC_OMAP5) += \
570 omap5-uevm.dtb 570 omap5-uevm.dtb
571dtb-$(CONFIG_SOC_DRA7XX) += \ 571dtb-$(CONFIG_SOC_DRA7XX) += \
572 am57xx-beagle-x15.dtb \ 572 am57xx-beagle-x15.dtb \
573 am57xx-beagle-x15-revb1.dtb \
573 am57xx-cl-som-am57x.dtb \ 574 am57xx-cl-som-am57x.dtb \
574 am57xx-sbc-am57x.dtb \ 575 am57xx-sbc-am57x.dtb \
575 am572x-idk.dtb \ 576 am572x-idk.dtb \
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi b/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
new file mode 100644
index 000000000000..ec85ff9004e8
--- /dev/null
+++ b/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
@@ -0,0 +1,596 @@
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/;
9
10#include "dra74x.dtsi"
11#include "am57xx-commercial-grade.dtsi"
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14
15/ {
16 compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
17
18 aliases {
19 rtc0 = &mcp_rtc;
20 rtc1 = &tps659038_rtc;
21 rtc2 = &rtc;
22 display0 = &hdmi0;
23 };
24
25 memory@0 {
26 device_type = "memory";
27 reg = <0x0 0x80000000 0x0 0x80000000>;
28 };
29
30 vdd_3v3: fixedregulator-vdd_3v3 {
31 compatible = "regulator-fixed";
32 regulator-name = "vdd_3v3";
33 vin-supply = <&regen1>;
34 regulator-min-microvolt = <3300000>;
35 regulator-max-microvolt = <3300000>;
36 };
37
38 aic_dvdd: fixedregulator-aic_dvdd {
39 compatible = "regulator-fixed";
40 regulator-name = "aic_dvdd_fixed";
41 vin-supply = <&vdd_3v3>;
42 regulator-min-microvolt = <1800000>;
43 regulator-max-microvolt = <1800000>;
44 };
45
46 vtt_fixed: fixedregulator-vtt {
47 /* TPS51200 */
48 compatible = "regulator-fixed";
49 regulator-name = "vtt_fixed";
50 vin-supply = <&smps3_reg>;
51 regulator-min-microvolt = <3300000>;
52 regulator-max-microvolt = <3300000>;
53 regulator-always-on;
54 regulator-boot-on;
55 enable-active-high;
56 gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
57 };
58
59 leds {
60 compatible = "gpio-leds";
61
62 led0 {
63 label = "beagle-x15:usr0";
64 gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
65 linux,default-trigger = "heartbeat";
66 default-state = "off";
67 };
68
69 led1 {
70 label = "beagle-x15:usr1";
71 gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
72 linux,default-trigger = "cpu0";
73 default-state = "off";
74 };
75
76 led2 {
77 label = "beagle-x15:usr2";
78 gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
79 linux,default-trigger = "mmc0";
80 default-state = "off";
81 };
82
83 led3 {
84 label = "beagle-x15:usr3";
85 gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
86 linux,default-trigger = "disk-activity";
87 default-state = "off";
88 };
89 };
90
91 gpio_fan: gpio_fan {
92 /* Based on 5v 500mA AFB02505HHB */
93 compatible = "gpio-fan";
94 gpios = <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
95 gpio-fan,speed-map = <0 0>,
96 <13000 1>;
97 #cooling-cells = <2>;
98 };
99
100 hdmi0: connector {
101 compatible = "hdmi-connector";
102 label = "hdmi";
103
104 type = "a";
105
106 port {
107 hdmi_connector_in: endpoint {
108 remote-endpoint = <&tpd12s015_out>;
109 };
110 };
111 };
112
113 tpd12s015: encoder {
114 compatible = "ti,tpd12s015";
115
116 ports {
117 #address-cells = <1>;
118 #size-cells = <0>;
119
120 port@0 {
121 reg = <0>;
122
123 tpd12s015_in: endpoint {
124 remote-endpoint = <&hdmi_out>;
125 };
126 };
127
128 port@1 {
129 reg = <1>;
130
131 tpd12s015_out: endpoint {
132 remote-endpoint = <&hdmi_connector_in>;
133 };
134 };
135 };
136 };
137
138 sound0: sound0 {
139 compatible = "simple-audio-card";
140 simple-audio-card,name = "BeagleBoard-X15";
141 simple-audio-card,widgets =
142 "Line", "Line Out",
143 "Line", "Line In";
144 simple-audio-card,routing =
145 "Line Out", "LLOUT",
146 "Line Out", "RLOUT",
147 "MIC2L", "Line In",
148 "MIC2R", "Line In";
149 simple-audio-card,format = "dsp_b";
150 simple-audio-card,bitclock-master = <&sound0_master>;
151 simple-audio-card,frame-master = <&sound0_master>;
152 simple-audio-card,bitclock-inversion;
153
154 simple-audio-card,cpu {
155 sound-dai = <&mcasp3>;
156 };
157
158 sound0_master: simple-audio-card,codec {
159 sound-dai = <&tlv320aic3104>;
160 clocks = <&clkout2_clk>;
161 };
162 };
163};
164
165&dra7_pmx_core {
166 mmc1_pins_default: mmc1_pins_default {
167 pinctrl-single,pins = <
168 DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */
169 DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
170 DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
171 DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
172 DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
173 DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
174 DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
175 >;
176 };
177
178 mmc2_pins_default: mmc2_pins_default {
179 pinctrl-single,pins = <
180 DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
181 DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
182 DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
183 DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
184 DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
185 DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
186 DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
187 DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
188 DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
189 DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
190 >;
191 };
192};
193&i2c1 {
194 status = "okay";
195 clock-frequency = <400000>;
196
197 tps659038: tps659038@58 {
198 compatible = "ti,tps659038";
199 reg = <0x58>;
200 interrupt-parent = <&gpio1>;
201 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
202
203 #interrupt-cells = <2>;
204 interrupt-controller;
205
206 ti,system-power-controller;
207
208 tps659038_pmic {
209 compatible = "ti,tps659038-pmic";
210
211 regulators {
212 smps12_reg: smps12 {
213 /* VDD_MPU */
214 regulator-name = "smps12";
215 regulator-min-microvolt = < 850000>;
216 regulator-max-microvolt = <1250000>;
217 regulator-always-on;
218 regulator-boot-on;
219 };
220
221 smps3_reg: smps3 {
222 /* VDD_DDR */
223 regulator-name = "smps3";
224 regulator-min-microvolt = <1350000>;
225 regulator-max-microvolt = <1350000>;
226 regulator-always-on;
227 regulator-boot-on;
228 };
229
230 smps45_reg: smps45 {
231 /* VDD_DSPEVE, VDD_IVA, VDD_GPU */
232 regulator-name = "smps45";
233 regulator-min-microvolt = < 850000>;
234 regulator-max-microvolt = <1250000>;
235 regulator-always-on;
236 regulator-boot-on;
237 };
238
239 smps6_reg: smps6 {
240 /* VDD_CORE */
241 regulator-name = "smps6";
242 regulator-min-microvolt = <850000>;
243 regulator-max-microvolt = <1150000>;
244 regulator-always-on;
245 regulator-boot-on;
246 };
247
248 /* SMPS7 unused */
249
250 smps8_reg: smps8 {
251 /* VDD_1V8 */
252 regulator-name = "smps8";
253 regulator-min-microvolt = <1800000>;
254 regulator-max-microvolt = <1800000>;
255 regulator-always-on;
256 regulator-boot-on;
257 };
258
259 /* SMPS9 unused */
260
261 ldo1_reg: ldo1 {
262 /* VDD_SD / VDDSHV8 */
263 regulator-name = "ldo1";
264 regulator-min-microvolt = <1800000>;
265 regulator-max-microvolt = <3300000>;
266 regulator-boot-on;
267 regulator-always-on;
268 };
269
270 ldo2_reg: ldo2 {
271 /* VDD_SHV5 */
272 regulator-name = "ldo2";
273 regulator-min-microvolt = <3300000>;
274 regulator-max-microvolt = <3300000>;
275 regulator-always-on;
276 regulator-boot-on;
277 };
278
279 ldo3_reg: ldo3 {
280 /* VDDA_1V8_PHYA */
281 regulator-name = "ldo3";
282 regulator-min-microvolt = <1800000>;
283 regulator-max-microvolt = <1800000>;
284 regulator-always-on;
285 regulator-boot-on;
286 };
287
288 ldo4_reg: ldo4 {
289 /* VDDA_1V8_PHYB */
290 regulator-name = "ldo4";
291 regulator-min-microvolt = <1800000>;
292 regulator-max-microvolt = <1800000>;
293 regulator-always-on;
294 regulator-boot-on;
295 };
296
297 ldo9_reg: ldo9 {
298 /* VDD_RTC */
299 regulator-name = "ldo9";
300 regulator-min-microvolt = <1050000>;
301 regulator-max-microvolt = <1050000>;
302 regulator-always-on;
303 regulator-boot-on;
304 };
305
306 ldoln_reg: ldoln {
307 /* VDDA_1V8_PLL */
308 regulator-name = "ldoln";
309 regulator-min-microvolt = <1800000>;
310 regulator-max-microvolt = <1800000>;
311 regulator-always-on;
312 regulator-boot-on;
313 };
314
315 ldousb_reg: ldousb {
316 /* VDDA_3V_USB: VDDA_USBHS33 */
317 regulator-name = "ldousb";
318 regulator-min-microvolt = <3300000>;
319 regulator-max-microvolt = <3300000>;
320 regulator-boot-on;
321 };
322
323 regen1: regen1 {
324 /* VDD_3V3_ON */
325 regulator-name = "regen1";
326 regulator-boot-on;
327 regulator-always-on;
328 };
329 };
330 };
331
332 tps659038_rtc: tps659038_rtc {
333 compatible = "ti,palmas-rtc";
334 interrupt-parent = <&tps659038>;
335 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
336 wakeup-source;
337 };
338
339 tps659038_pwr_button: tps659038_pwr_button {
340 compatible = "ti,palmas-pwrbutton";
341 interrupt-parent = <&tps659038>;
342 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
343 wakeup-source;
344 ti,palmas-long-press-seconds = <12>;
345 };
346
347 tps659038_gpio: tps659038_gpio {
348 compatible = "ti,palmas-gpio";
349 gpio-controller;
350 #gpio-cells = <2>;
351 };
352
353 extcon_usb2: tps659038_usb {
354 compatible = "ti,palmas-usb-vid";
355 ti,enable-vbus-detection;
356 vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
357 };
358
359 };
360
361 tmp102: tmp102@48 {
362 compatible = "ti,tmp102";
363 reg = <0x48>;
364 interrupt-parent = <&gpio7>;
365 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
366 #thermal-sensor-cells = <1>;
367 };
368
369 tlv320aic3104: tlv320aic3104@18 {
370 #sound-dai-cells = <0>;
371 compatible = "ti,tlv320aic3104";
372 reg = <0x18>;
373 assigned-clocks = <&clkoutmux2_clk_mux>;
374 assigned-clock-parents = <&sys_clk2_dclk_div>;
375
376 status = "okay";
377 adc-settle-ms = <40>;
378
379 AVDD-supply = <&vdd_3v3>;
380 IOVDD-supply = <&vdd_3v3>;
381 DRVDD-supply = <&vdd_3v3>;
382 DVDD-supply = <&aic_dvdd>;
383 };
384
385 eeprom: eeprom@50 {
386 compatible = "at,24c32";
387 reg = <0x50>;
388 };
389};
390
391&i2c3 {
392 status = "okay";
393 clock-frequency = <400000>;
394
395 mcp_rtc: rtc@6f {
396 compatible = "microchip,mcp7941x";
397 reg = <0x6f>;
398 interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
399 <&dra7_pmx_core 0x424>;
400 interrupt-names = "irq", "wakeup";
401
402 vcc-supply = <&vdd_3v3>;
403 wakeup-source;
404 };
405};
406
407&gpio7 {
408 ti,no-reset-on-init;
409 ti,no-idle-on-init;
410};
411
412&cpu0 {
413 cpu0-supply = <&smps12_reg>;
414 voltage-tolerance = <1>;
415};
416
417&uart3 {
418 status = "okay";
419 interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
420 <&dra7_pmx_core 0x3f8>;
421};
422
423&mac {
424 status = "okay";
425 dual_emac;
426};
427
428&cpsw_emac0 {
429 phy_id = <&davinci_mdio>, <1>;
430 phy-mode = "rgmii";
431 dual_emac_res_vlan = <1>;
432};
433
434&cpsw_emac1 {
435 phy_id = <&davinci_mdio>, <2>;
436 phy-mode = "rgmii";
437 dual_emac_res_vlan = <2>;
438};
439
440&mmc1 {
441 status = "okay";
442
443 pinctrl-names = "default";
444 pinctrl-0 = <&mmc1_pins_default>;
445
446 bus-width = <4>;
447 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
448};
449
450&mmc2 {
451 status = "okay";
452
453 pinctrl-names = "default";
454 pinctrl-0 = <&mmc1_pins_default>;
455
456 vmmc-supply = <&vdd_3v3>;
457 bus-width = <8>;
458 ti,non-removable;
459 cap-mmc-dual-data-rate;
460};
461
462&sata {
463 status = "okay";
464};
465
466&usb2_phy1 {
467 phy-supply = <&ldousb_reg>;
468};
469
470&usb2_phy2 {
471 phy-supply = <&ldousb_reg>;
472};
473
474&usb1 {
475 dr_mode = "host";
476};
477
478&omap_dwc3_2 {
479 extcon = <&extcon_usb2>;
480};
481
482&usb2 {
483 /*
484 * Stand alone usage is peripheral only.
485 * However, with some resistor modifications
486 * this port can be used via expansion connectors
487 * as "host" or "dual-role". If so, provide
488 * the necessary dr_mode override in the expansion
489 * board's DT.
490 */
491 dr_mode = "peripheral";
492};
493
494&cpu_trips {
495 cpu_alert1: cpu_alert1 {
496 temperature = <50000>; /* millicelsius */
497 hysteresis = <2000>; /* millicelsius */
498 type = "active";
499 };
500};
501
502&cpu_cooling_maps {
503 map1 {
504 trip = <&cpu_alert1>;
505 cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
506 };
507};
508
509&thermal_zones {
510 board_thermal: board_thermal {
511 polling-delay-passive = <1250>; /* milliseconds */
512 polling-delay = <1500>; /* milliseconds */
513
514 /* sensor ID */
515 thermal-sensors = <&tmp102 0>;
516
517 board_trips: trips {
518 board_alert0: board_alert {
519 temperature = <40000>; /* millicelsius */
520 hysteresis = <2000>; /* millicelsius */
521 type = "active";
522 };
523
524 board_crit: board_crit {
525 temperature = <105000>; /* millicelsius */
526 hysteresis = <0>; /* millicelsius */
527 type = "critical";
528 };
529 };
530
531 board_cooling_maps: cooling-maps {
532 map0 {
533 trip = <&board_alert0>;
534 cooling-device =
535 <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
536 };
537 };
538 };
539};
540
541&dss {
542 status = "ok";
543
544 vdda_video-supply = <&ldoln_reg>;
545};
546
547&hdmi {
548 status = "ok";
549 vdda-supply = <&ldo4_reg>;
550
551 port {
552 hdmi_out: endpoint {
553 remote-endpoint = <&tpd12s015_in>;
554 };
555 };
556};
557
558&pcie1 {
559 gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
560};
561
562&mcasp3 {
563 #sound-dai-cells = <0>;
564 assigned-clocks = <&mcasp3_ahclkx_mux>;
565 assigned-clock-parents = <&sys_clkin2>;
566 status = "okay";
567
568 op-mode = <0>; /* MCASP_IIS_MODE */
569 tdm-slots = <2>;
570 /* 4 serializers */
571 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
572 1 2 0 0
573 >;
574 tx-num-evt = <32>;
575 rx-num-evt = <32>;
576};
577
578&mailbox5 {
579 status = "okay";
580 mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
581 status = "okay";
582 };
583 mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
584 status = "okay";
585 };
586};
587
588&mailbox6 {
589 status = "okay";
590 mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
591 status = "okay";
592 };
593 mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
594 status = "okay";
595 };
596};
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts b/arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts
new file mode 100644
index 000000000000..ca85570629fd
--- /dev/null
+++ b/arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts
@@ -0,0 +1,24 @@
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
9#include "am57xx-beagle-x15-common.dtsi"
10
11/ {
12 model = "TI AM5728 BeagleBoard-X15 rev B1";
13};
14
15&tpd12s015 {
16 gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>, /* gpio7_10, CT CP HPD */
17 <&gpio2 30 GPIO_ACTIVE_HIGH>, /* gpio2_30, LS OE */
18 <&gpio7 12 GPIO_ACTIVE_HIGH>; /* gpio7_12/sp1_cs2, HPD */
19};
20
21&mmc1 {
22 vmmc-supply = <&vdd_3v3>;
23 vmmc-aux-supply = <&ldo1_reg>;
24};
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts
index ef21da558ea3..8c66f2efd283 100644
--- a/arch/arm/boot/dts/am57xx-beagle-x15.dts
+++ b/arch/arm/boot/dts/am57xx-beagle-x15.dts
@@ -1,602 +1,24 @@
1/* 1/*
2 * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ 2 * Copyright (C) 2014-2016 Texas Instruments Incorporated - http://www.ti.com/
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify 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 5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation. 6 * published by the Free Software Foundation.
7 */ 7 */
8/dts-v1/;
9 8
10#include "dra74x.dtsi" 9#include "am57xx-beagle-x15-common.dtsi"
11#include "am57xx-commercial-grade.dtsi"
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14 10
15/ { 11/ {
12 /* NOTE: This describes the "original" pre-production A2 revision */
16 model = "TI AM5728 BeagleBoard-X15"; 13 model = "TI AM5728 BeagleBoard-X15";
17 compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
18
19 aliases {
20 rtc0 = &mcp_rtc;
21 rtc1 = &tps659038_rtc;
22 rtc2 = &rtc;
23 display0 = &hdmi0;
24 };
25
26 memory@0 {
27 device_type = "memory";
28 reg = <0x0 0x80000000 0x0 0x80000000>;
29 };
30
31 vdd_3v3: fixedregulator-vdd_3v3 {
32 compatible = "regulator-fixed";
33 regulator-name = "vdd_3v3";
34 vin-supply = <&regen1>;
35 regulator-min-microvolt = <3300000>;
36 regulator-max-microvolt = <3300000>;
37 };
38
39 aic_dvdd: fixedregulator-aic_dvdd {
40 compatible = "regulator-fixed";
41 regulator-name = "aic_dvdd_fixed";
42 vin-supply = <&vdd_3v3>;
43 regulator-min-microvolt = <1800000>;
44 regulator-max-microvolt = <1800000>;
45 };
46
47 vtt_fixed: fixedregulator-vtt {
48 /* TPS51200 */
49 compatible = "regulator-fixed";
50 regulator-name = "vtt_fixed";
51 vin-supply = <&smps3_reg>;
52 regulator-min-microvolt = <3300000>;
53 regulator-max-microvolt = <3300000>;
54 regulator-always-on;
55 regulator-boot-on;
56 enable-active-high;
57 gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
58 };
59
60 leds {
61 compatible = "gpio-leds";
62
63 led0 {
64 label = "beagle-x15:usr0";
65 gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
66 linux,default-trigger = "heartbeat";
67 default-state = "off";
68 };
69
70 led1 {
71 label = "beagle-x15:usr1";
72 gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
73 linux,default-trigger = "cpu0";
74 default-state = "off";
75 };
76
77 led2 {
78 label = "beagle-x15:usr2";
79 gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
80 linux,default-trigger = "mmc0";
81 default-state = "off";
82 };
83
84 led3 {
85 label = "beagle-x15:usr3";
86 gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
87 linux,default-trigger = "disk-activity";
88 default-state = "off";
89 };
90 };
91
92 gpio_fan: gpio_fan {
93 /* Based on 5v 500mA AFB02505HHB */
94 compatible = "gpio-fan";
95 gpios = <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
96 gpio-fan,speed-map = <0 0>,
97 <13000 1>;
98 #cooling-cells = <2>;
99 };
100
101 hdmi0: connector {
102 compatible = "hdmi-connector";
103 label = "hdmi";
104
105 type = "a";
106
107 port {
108 hdmi_connector_in: endpoint {
109 remote-endpoint = <&tpd12s015_out>;
110 };
111 };
112 };
113
114 tpd12s015: encoder {
115 compatible = "ti,tpd12s015";
116
117 gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>, /* gpio7_10, CT CP HPD */
118 <&gpio6 28 GPIO_ACTIVE_HIGH>, /* gpio6_28, LS OE */
119 <&gpio7 12 GPIO_ACTIVE_HIGH>; /* gpio7_12/sp1_cs2, HPD */
120
121 ports {
122 #address-cells = <1>;
123 #size-cells = <0>;
124
125 port@0 {
126 reg = <0>;
127
128 tpd12s015_in: endpoint {
129 remote-endpoint = <&hdmi_out>;
130 };
131 };
132
133 port@1 {
134 reg = <1>;
135
136 tpd12s015_out: endpoint {
137 remote-endpoint = <&hdmi_connector_in>;
138 };
139 };
140 };
141 };
142
143 sound0: sound0 {
144 compatible = "simple-audio-card";
145 simple-audio-card,name = "BeagleBoard-X15";
146 simple-audio-card,widgets =
147 "Line", "Line Out",
148 "Line", "Line In";
149 simple-audio-card,routing =
150 "Line Out", "LLOUT",
151 "Line Out", "RLOUT",
152 "MIC2L", "Line In",
153 "MIC2R", "Line In";
154 simple-audio-card,format = "dsp_b";
155 simple-audio-card,bitclock-master = <&sound0_master>;
156 simple-audio-card,frame-master = <&sound0_master>;
157 simple-audio-card,bitclock-inversion;
158
159 simple-audio-card,cpu {
160 sound-dai = <&mcasp3>;
161 };
162
163 sound0_master: simple-audio-card,codec {
164 sound-dai = <&tlv320aic3104>;
165 clocks = <&clkout2_clk>;
166 };
167 };
168};
169
170&dra7_pmx_core {
171 mmc1_pins_default: mmc1_pins_default {
172 pinctrl-single,pins = <
173 DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */
174 DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
175 DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
176 DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
177 DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
178 DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
179 DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
180 >;
181 };
182
183 mmc2_pins_default: mmc2_pins_default {
184 pinctrl-single,pins = <
185 DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
186 DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
187 DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
188 DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
189 DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
190 DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
191 DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
192 DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
193 DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
194 DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
195 >;
196 };
197};
198&i2c1 {
199 status = "okay";
200 clock-frequency = <400000>;
201
202 tps659038: tps659038@58 {
203 compatible = "ti,tps659038";
204 reg = <0x58>;
205 interrupt-parent = <&gpio1>;
206 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
207
208 #interrupt-cells = <2>;
209 interrupt-controller;
210
211 ti,system-power-controller;
212
213 tps659038_pmic {
214 compatible = "ti,tps659038-pmic";
215
216 regulators {
217 smps12_reg: smps12 {
218 /* VDD_MPU */
219 regulator-name = "smps12";
220 regulator-min-microvolt = < 850000>;
221 regulator-max-microvolt = <1250000>;
222 regulator-always-on;
223 regulator-boot-on;
224 };
225
226 smps3_reg: smps3 {
227 /* VDD_DDR */
228 regulator-name = "smps3";
229 regulator-min-microvolt = <1350000>;
230 regulator-max-microvolt = <1350000>;
231 regulator-always-on;
232 regulator-boot-on;
233 };
234
235 smps45_reg: smps45 {
236 /* VDD_DSPEVE, VDD_IVA, VDD_GPU */
237 regulator-name = "smps45";
238 regulator-min-microvolt = < 850000>;
239 regulator-max-microvolt = <1250000>;
240 regulator-always-on;
241 regulator-boot-on;
242 };
243
244 smps6_reg: smps6 {
245 /* VDD_CORE */
246 regulator-name = "smps6";
247 regulator-min-microvolt = <850000>;
248 regulator-max-microvolt = <1150000>;
249 regulator-always-on;
250 regulator-boot-on;
251 };
252
253 /* SMPS7 unused */
254
255 smps8_reg: smps8 {
256 /* VDD_1V8 */
257 regulator-name = "smps8";
258 regulator-min-microvolt = <1800000>;
259 regulator-max-microvolt = <1800000>;
260 regulator-always-on;
261 regulator-boot-on;
262 };
263
264 /* SMPS9 unused */
265
266 ldo1_reg: ldo1 {
267 /* VDD_SD / VDDSHV8 */
268 regulator-name = "ldo1";
269 regulator-min-microvolt = <1800000>;
270 regulator-max-microvolt = <3300000>;
271 regulator-boot-on;
272 regulator-always-on;
273 };
274
275 ldo2_reg: ldo2 {
276 /* VDD_SHV5 */
277 regulator-name = "ldo2";
278 regulator-min-microvolt = <3300000>;
279 regulator-max-microvolt = <3300000>;
280 regulator-always-on;
281 regulator-boot-on;
282 };
283
284 ldo3_reg: ldo3 {
285 /* VDDA_1V8_PHYA */
286 regulator-name = "ldo3";
287 regulator-min-microvolt = <1800000>;
288 regulator-max-microvolt = <1800000>;
289 regulator-always-on;
290 regulator-boot-on;
291 };
292
293 ldo4_reg: ldo4 {
294 /* VDDA_1V8_PHYB */
295 regulator-name = "ldo4";
296 regulator-min-microvolt = <1800000>;
297 regulator-max-microvolt = <1800000>;
298 regulator-always-on;
299 regulator-boot-on;
300 };
301
302 ldo9_reg: ldo9 {
303 /* VDD_RTC */
304 regulator-name = "ldo9";
305 regulator-min-microvolt = <1050000>;
306 regulator-max-microvolt = <1050000>;
307 regulator-always-on;
308 regulator-boot-on;
309 };
310
311 ldoln_reg: ldoln {
312 /* VDDA_1V8_PLL */
313 regulator-name = "ldoln";
314 regulator-min-microvolt = <1800000>;
315 regulator-max-microvolt = <1800000>;
316 regulator-always-on;
317 regulator-boot-on;
318 };
319
320 ldousb_reg: ldousb {
321 /* VDDA_3V_USB: VDDA_USBHS33 */
322 regulator-name = "ldousb";
323 regulator-min-microvolt = <3300000>;
324 regulator-max-microvolt = <3300000>;
325 regulator-boot-on;
326 };
327
328 regen1: regen1 {
329 /* VDD_3V3_ON */
330 regulator-name = "regen1";
331 regulator-boot-on;
332 regulator-always-on;
333 };
334 };
335 };
336
337 tps659038_rtc: tps659038_rtc {
338 compatible = "ti,palmas-rtc";
339 interrupt-parent = <&tps659038>;
340 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
341 wakeup-source;
342 };
343
344 tps659038_pwr_button: tps659038_pwr_button {
345 compatible = "ti,palmas-pwrbutton";
346 interrupt-parent = <&tps659038>;
347 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
348 wakeup-source;
349 ti,palmas-long-press-seconds = <12>;
350 };
351
352 tps659038_gpio: tps659038_gpio {
353 compatible = "ti,palmas-gpio";
354 gpio-controller;
355 #gpio-cells = <2>;
356 };
357
358 extcon_usb2: tps659038_usb {
359 compatible = "ti,palmas-usb-vid";
360 ti,enable-vbus-detection;
361 vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
362 };
363
364 };
365
366 tmp102: tmp102@48 {
367 compatible = "ti,tmp102";
368 reg = <0x48>;
369 interrupt-parent = <&gpio7>;
370 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
371 #thermal-sensor-cells = <1>;
372 };
373
374 tlv320aic3104: tlv320aic3104@18 {
375 #sound-dai-cells = <0>;
376 compatible = "ti,tlv320aic3104";
377 reg = <0x18>;
378 assigned-clocks = <&clkoutmux2_clk_mux>;
379 assigned-clock-parents = <&sys_clk2_dclk_div>;
380
381 status = "okay";
382 adc-settle-ms = <40>;
383
384 AVDD-supply = <&vdd_3v3>;
385 IOVDD-supply = <&vdd_3v3>;
386 DRVDD-supply = <&vdd_3v3>;
387 DVDD-supply = <&aic_dvdd>;
388 };
389
390 eeprom: eeprom@50 {
391 compatible = "at,24c32";
392 reg = <0x50>;
393 };
394}; 14};
395 15
396&i2c3 { 16&tpd12s015 {
397 status = "okay"; 17 gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>, /* gpio7_10, CT CP HPD */
398 clock-frequency = <400000>; 18 <&gpio6 28 GPIO_ACTIVE_HIGH>, /* gpio6_28, LS OE */
399 19 <&gpio7 12 GPIO_ACTIVE_HIGH>; /* gpio7_12/sp1_cs2, HPD */
400 mcp_rtc: rtc@6f {
401 compatible = "microchip,mcp7941x";
402 reg = <0x6f>;
403 interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
404 <&dra7_pmx_core 0x424>;
405 interrupt-names = "irq", "wakeup";
406
407 vcc-supply = <&vdd_3v3>;
408 wakeup-source;
409 };
410};
411
412&gpio7 {
413 ti,no-reset-on-init;
414 ti,no-idle-on-init;
415};
416
417&cpu0 {
418 cpu0-supply = <&smps12_reg>;
419 voltage-tolerance = <1>;
420};
421
422&uart3 {
423 status = "okay";
424 interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
425 <&dra7_pmx_core 0x3f8>;
426};
427
428&mac {
429 status = "okay";
430 dual_emac;
431};
432
433&cpsw_emac0 {
434 phy_id = <&davinci_mdio>, <1>;
435 phy-mode = "rgmii";
436 dual_emac_res_vlan = <1>;
437};
438
439&cpsw_emac1 {
440 phy_id = <&davinci_mdio>, <2>;
441 phy-mode = "rgmii";
442 dual_emac_res_vlan = <2>;
443}; 20};
444 21
445&mmc1 { 22&mmc1 {
446 status = "okay";
447
448 pinctrl-names = "default";
449 pinctrl-0 = <&mmc1_pins_default>;
450
451 vmmc-supply = <&ldo1_reg>; 23 vmmc-supply = <&ldo1_reg>;
452 bus-width = <4>;
453 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
454};
455
456&mmc2 {
457 status = "okay";
458
459 pinctrl-names = "default";
460 pinctrl-0 = <&mmc1_pins_default>;
461
462 vmmc-supply = <&vdd_3v3>;
463 bus-width = <8>;
464 ti,non-removable;
465 cap-mmc-dual-data-rate;
466};
467
468&sata {
469 status = "okay";
470};
471
472&usb2_phy1 {
473 phy-supply = <&ldousb_reg>;
474};
475
476&usb2_phy2 {
477 phy-supply = <&ldousb_reg>;
478};
479
480&usb1 {
481 dr_mode = "host";
482};
483
484&omap_dwc3_2 {
485 extcon = <&extcon_usb2>;
486};
487
488&usb2 {
489 /*
490 * Stand alone usage is peripheral only.
491 * However, with some resistor modifications
492 * this port can be used via expansion connectors
493 * as "host" or "dual-role". If so, provide
494 * the necessary dr_mode override in the expansion
495 * board's DT.
496 */
497 dr_mode = "peripheral";
498};
499
500&cpu_trips {
501 cpu_alert1: cpu_alert1 {
502 temperature = <50000>; /* millicelsius */
503 hysteresis = <2000>; /* millicelsius */
504 type = "active";
505 };
506};
507
508&cpu_cooling_maps {
509 map1 {
510 trip = <&cpu_alert1>;
511 cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
512 };
513};
514
515&thermal_zones {
516 board_thermal: board_thermal {
517 polling-delay-passive = <1250>; /* milliseconds */
518 polling-delay = <1500>; /* milliseconds */
519
520 /* sensor ID */
521 thermal-sensors = <&tmp102 0>;
522
523 board_trips: trips {
524 board_alert0: board_alert {
525 temperature = <40000>; /* millicelsius */
526 hysteresis = <2000>; /* millicelsius */
527 type = "active";
528 };
529
530 board_crit: board_crit {
531 temperature = <105000>; /* millicelsius */
532 hysteresis = <0>; /* millicelsius */
533 type = "critical";
534 };
535 };
536
537 board_cooling_maps: cooling-maps {
538 map0 {
539 trip = <&board_alert0>;
540 cooling-device =
541 <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
542 };
543 };
544 };
545};
546
547&dss {
548 status = "ok";
549
550 vdda_video-supply = <&ldoln_reg>;
551};
552
553&hdmi {
554 status = "ok";
555 vdda-supply = <&ldo4_reg>;
556
557 port {
558 hdmi_out: endpoint {
559 remote-endpoint = <&tpd12s015_in>;
560 };
561 };
562};
563
564&pcie1 {
565 gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
566};
567
568&mcasp3 {
569 #sound-dai-cells = <0>;
570 assigned-clocks = <&mcasp3_ahclkx_mux>;
571 assigned-clock-parents = <&sys_clkin2>;
572 status = "okay";
573
574 op-mode = <0>; /* MCASP_IIS_MODE */
575 tdm-slots = <2>;
576 /* 4 serializers */
577 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
578 1 2 0 0
579 >;
580 tx-num-evt = <32>;
581 rx-num-evt = <32>;
582};
583
584&mailbox5 {
585 status = "okay";
586 mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
587 status = "okay";
588 };
589 mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
590 status = "okay";
591 };
592};
593
594&mailbox6 {
595 status = "okay";
596 mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
597 status = "okay";
598 };
599 mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
600 status = "okay";
601 };
602}; 24};