]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
Merge tag 'omap-for-v4.14/fixes-not-urgent-dt-signed' of git://git.kernel.org/pub...
[mirror_ubuntu-focal-kernel.git] / arch / arm / boot / dts / am57xx-beagle-x15-common.dtsi
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 chosen {
26 stdout-path = &uart3;
27 };
28
29 memory@0 {
30 device_type = "memory";
31 reg = <0x0 0x80000000 0x0 0x80000000>;
32 };
33
34 vdd_3v3: fixedregulator-vdd_3v3 {
35 compatible = "regulator-fixed";
36 regulator-name = "vdd_3v3";
37 vin-supply = <&regen1>;
38 regulator-min-microvolt = <3300000>;
39 regulator-max-microvolt = <3300000>;
40 };
41
42 aic_dvdd: fixedregulator-aic_dvdd {
43 compatible = "regulator-fixed";
44 regulator-name = "aic_dvdd_fixed";
45 vin-supply = <&vdd_3v3>;
46 regulator-min-microvolt = <1800000>;
47 regulator-max-microvolt = <1800000>;
48 };
49
50 vtt_fixed: fixedregulator-vtt {
51 /* TPS51200 */
52 compatible = "regulator-fixed";
53 regulator-name = "vtt_fixed";
54 vin-supply = <&smps3_reg>;
55 regulator-min-microvolt = <3300000>;
56 regulator-max-microvolt = <3300000>;
57 regulator-always-on;
58 regulator-boot-on;
59 enable-active-high;
60 gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
61 };
62
63 leds {
64 compatible = "gpio-leds";
65
66 led0 {
67 label = "beagle-x15:usr0";
68 gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
69 linux,default-trigger = "heartbeat";
70 default-state = "off";
71 };
72
73 led1 {
74 label = "beagle-x15:usr1";
75 gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
76 linux,default-trigger = "cpu0";
77 default-state = "off";
78 };
79
80 led2 {
81 label = "beagle-x15:usr2";
82 gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
83 linux,default-trigger = "mmc0";
84 default-state = "off";
85 };
86
87 led3 {
88 label = "beagle-x15:usr3";
89 gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
90 linux,default-trigger = "disk-activity";
91 default-state = "off";
92 };
93 };
94
95 gpio_fan: gpio_fan {
96 /* Based on 5v 500mA AFB02505HHB */
97 compatible = "gpio-fan";
98 gpios = <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
99 gpio-fan,speed-map = <0 0>,
100 <13000 1>;
101 #cooling-cells = <2>;
102 };
103
104 hdmi0: connector {
105 compatible = "hdmi-connector";
106 label = "hdmi";
107
108 type = "a";
109
110 port {
111 hdmi_connector_in: endpoint {
112 remote-endpoint = <&tpd12s015_out>;
113 };
114 };
115 };
116
117 tpd12s015: encoder {
118 compatible = "ti,tpd12s015";
119
120 ports {
121 #address-cells = <1>;
122 #size-cells = <0>;
123
124 port@0 {
125 reg = <0>;
126
127 tpd12s015_in: endpoint {
128 remote-endpoint = <&hdmi_out>;
129 };
130 };
131
132 port@1 {
133 reg = <1>;
134
135 tpd12s015_out: endpoint {
136 remote-endpoint = <&hdmi_connector_in>;
137 };
138 };
139 };
140 };
141
142 sound0: sound0 {
143 compatible = "simple-audio-card";
144 simple-audio-card,name = "BeagleBoard-X15";
145 simple-audio-card,widgets =
146 "Line", "Line Out",
147 "Line", "Line In";
148 simple-audio-card,routing =
149 "Line Out", "LLOUT",
150 "Line Out", "RLOUT",
151 "MIC2L", "Line In",
152 "MIC2R", "Line In";
153 simple-audio-card,format = "dsp_b";
154 simple-audio-card,bitclock-master = <&sound0_master>;
155 simple-audio-card,frame-master = <&sound0_master>;
156 simple-audio-card,bitclock-inversion;
157
158 simple-audio-card,cpu {
159 sound-dai = <&mcasp3>;
160 };
161
162 sound0_master: simple-audio-card,codec {
163 sound-dai = <&tlv320aic3104>;
164 clocks = <&clkout2_clk>;
165 };
166 };
167 };
168
169 &dra7_pmx_core {
170 mmc1_pins_default: mmc1_pins_default {
171 pinctrl-single,pins = <
172 DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */
173 DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
174 DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
175 DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
176 DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
177 DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
178 DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
179 >;
180 };
181
182 mmc2_pins_default: mmc2_pins_default {
183 pinctrl-single,pins = <
184 DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
185 DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
186 DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
187 DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
188 DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
189 DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
190 DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
191 DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
192 DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
193 DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
194 >;
195 };
196 };
197 &i2c1 {
198 status = "okay";
199 clock-frequency = <400000>;
200
201 tps659038: tps659038@58 {
202 compatible = "ti,tps659038";
203 reg = <0x58>;
204 interrupt-parent = <&gpio1>;
205 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
206
207 #interrupt-cells = <2>;
208 interrupt-controller;
209
210 ti,system-power-controller;
211 ti,palmas-override-powerhold;
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 = "atmel,24c32";
392 reg = <0x50>;
393 };
394 };
395
396 &i2c3 {
397 status = "okay";
398 clock-frequency = <400000>;
399
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 &davinci_mdio {
429 phy0: ethernet-phy@1 {
430 reg = <1>;
431 };
432
433 phy1: ethernet-phy@2 {
434 reg = <2>;
435 };
436 };
437
438 &mac {
439 status = "okay";
440 dual_emac;
441 };
442
443 &cpsw_emac0 {
444 phy-handle = <&phy0>;
445 phy-mode = "rgmii";
446 dual_emac_res_vlan = <1>;
447 };
448
449 &cpsw_emac1 {
450 phy-handle = <&phy1>;
451 phy-mode = "rgmii";
452 dual_emac_res_vlan = <2>;
453 };
454
455 &mmc1 {
456 status = "okay";
457
458 pinctrl-names = "default";
459 pinctrl-0 = <&mmc1_pins_default>;
460
461 bus-width = <4>;
462 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
463 };
464
465 &mmc2 {
466 status = "okay";
467
468 pinctrl-names = "default";
469 pinctrl-0 = <&mmc2_pins_default>;
470
471 vmmc-supply = <&vdd_3v3>;
472 bus-width = <8>;
473 ti,non-removable;
474 cap-mmc-dual-data-rate;
475 };
476
477 &sata {
478 status = "okay";
479 };
480
481 &usb2_phy1 {
482 phy-supply = <&ldousb_reg>;
483 };
484
485 &usb2_phy2 {
486 phy-supply = <&ldousb_reg>;
487 };
488
489 &usb1 {
490 dr_mode = "host";
491 };
492
493 &omap_dwc3_2 {
494 extcon = <&extcon_usb2>;
495 };
496
497 &usb2 {
498 /*
499 * Stand alone usage is peripheral only.
500 * However, with some resistor modifications
501 * this port can be used via expansion connectors
502 * as "host" or "dual-role". If so, provide
503 * the necessary dr_mode override in the expansion
504 * board's DT.
505 */
506 dr_mode = "peripheral";
507 };
508
509 &cpu_trips {
510 cpu_alert1: cpu_alert1 {
511 temperature = <50000>; /* millicelsius */
512 hysteresis = <2000>; /* millicelsius */
513 type = "active";
514 };
515 };
516
517 &cpu_cooling_maps {
518 map1 {
519 trip = <&cpu_alert1>;
520 cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
521 };
522 };
523
524 &thermal_zones {
525 board_thermal: board_thermal {
526 polling-delay-passive = <1250>; /* milliseconds */
527 polling-delay = <1500>; /* milliseconds */
528
529 /* sensor ID */
530 thermal-sensors = <&tmp102 0>;
531
532 board_trips: trips {
533 board_alert0: board_alert {
534 temperature = <40000>; /* millicelsius */
535 hysteresis = <2000>; /* millicelsius */
536 type = "active";
537 };
538
539 board_crit: board_crit {
540 temperature = <105000>; /* millicelsius */
541 hysteresis = <0>; /* millicelsius */
542 type = "critical";
543 };
544 };
545
546 board_cooling_maps: cooling-maps {
547 map0 {
548 trip = <&board_alert0>;
549 cooling-device =
550 <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
551 };
552 };
553 };
554 };
555
556 &dss {
557 status = "ok";
558
559 vdda_video-supply = <&ldoln_reg>;
560 };
561
562 &hdmi {
563 status = "ok";
564 vdda-supply = <&ldo4_reg>;
565
566 port {
567 hdmi_out: endpoint {
568 remote-endpoint = <&tpd12s015_in>;
569 };
570 };
571 };
572
573 &pcie1 {
574 gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
575 };
576
577 &mcasp3 {
578 #sound-dai-cells = <0>;
579 assigned-clocks = <&mcasp3_ahclkx_mux>;
580 assigned-clock-parents = <&sys_clkin2>;
581 status = "okay";
582
583 op-mode = <0>; /* MCASP_IIS_MODE */
584 tdm-slots = <2>;
585 /* 4 serializers */
586 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
587 1 2 0 0
588 >;
589 tx-num-evt = <32>;
590 rx-num-evt = <32>;
591 };
592
593 &mailbox5 {
594 status = "okay";
595 mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
596 status = "okay";
597 };
598 mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
599 status = "okay";
600 };
601 };
602
603 &mailbox6 {
604 status = "okay";
605 mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
606 status = "okay";
607 };
608 mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
609 status = "okay";
610 };
611 };