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