xref: /linux/arch/arm/boot/dts/ti/omap/am5729-beagleboneai.dts (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2014-2019 Texas Instruments Incorporated - https://www.ti.com/
4 */
5
6/dts-v1/;
7
8#include "dra74x.dtsi"
9#include "am57xx-commercial-grade.dtsi"
10#include "dra74x-mmc-iodelay.dtsi"
11#include "dra74-ipu-dsp-common.dtsi"
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/pinctrl/dra.h>
15
16/ {
17	model = "BeagleBoard.org BeagleBone AI";
18	compatible = "beagle,am5729-beagleboneai", "ti,am5728",
19		     "ti,dra742", "ti,dra74", "ti,dra7";
20
21	aliases {
22		rtc0 = &tps659038_rtc;
23		rtc1 = &rtc;
24		display0 = &hdmi_conn;
25	};
26
27	chosen {
28		stdout-path = &uart1;
29	};
30
31	memory@0 {
32		device_type = "memory";
33		reg = <0x0 0x80000000 0x0 0x40000000>;
34	};
35
36	reserved-memory {
37		#address-cells = <2>;
38		#size-cells = <2>;
39		ranges;
40
41		ipu2_memory_region: ipu2-memory@95800000 {
42			compatible = "shared-dma-pool";
43			reg = <0x0 0x95800000 0x0 0x3800000>;
44			reusable;
45			status = "okay";
46		};
47
48		dsp1_memory_region: dsp1-memory@99000000 {
49			compatible = "shared-dma-pool";
50			reg = <0x0 0x99000000 0x0 0x4000000>;
51			reusable;
52			status = "okay";
53		};
54
55		ipu1_memory_region: ipu1-memory@9d000000 {
56			compatible = "shared-dma-pool";
57			reg = <0x0 0x9d000000 0x0 0x2000000>;
58			reusable;
59			status = "okay";
60		};
61
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
69	};
70
71	vdd_adc: gpioregulator-vdd_adc {
72		compatible = "regulator-gpio";
73		regulator-name = "vdd_adc";
74		vin-supply = <&vdd_5v>;
75		regulator-min-microvolt = <1800000>;
76		regulator-max-microvolt = <3300000>;
77		regulator-always-on;
78		regulator-boot-on;
79		gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
80		states = <1800000 0
81			3300000 1>;
82	};
83
84	vdd_5v: fixedregulator-vdd_5v {
85		compatible = "regulator-fixed";
86		regulator-name = "vdd_5v";
87		regulator-min-microvolt = <5000000>;
88		regulator-max-microvolt = <5000000>;
89		regulator-always-on;
90		regulator-boot-on;
91	};
92
93	vtt_fixed: fixedregulator-vtt {
94		/* TPS51200 */
95		compatible = "regulator-fixed";
96		regulator-name = "vtt_fixed";
97		vin-supply = <&vdd_ddr>;
98		regulator-min-microvolt = <3300000>;
99		regulator-max-microvolt = <3300000>;
100		regulator-always-on;
101		regulator-boot-on;
102	};
103
104	leds {
105		compatible = "gpio-leds";
106
107		led0 {
108			label = "beaglebone:green:usr0";
109			gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
110			linux,default-trigger = "heartbeat";
111			default-state = "off";
112		};
113
114		led1 {
115			label = "beaglebone:green:usr1";
116			gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
117			linux,default-trigger = "mmc0";
118			default-state = "off";
119		};
120
121		led2 {
122			label = "beaglebone:green:usr2";
123			gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>;
124			linux,default-trigger = "cpu";
125			default-state = "off";
126		};
127
128		led3 {
129			label = "beaglebone:green:usr3";
130			gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
131			linux,default-trigger = "mmc1";
132			default-state = "off";
133		};
134
135		led4 {
136			label = "beaglebone:green:usr4";
137			gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
138			linux,default-trigger = "netdev";
139			default-state = "off";
140		};
141	};
142
143	hdmi_conn: connector@0 {
144		compatible = "hdmi-connector";
145		label = "hdmi";
146		type = "a";
147
148		port {
149			hdmi_connector_in: endpoint {
150				remote-endpoint = <&hdmi_encoder_out>;
151			};
152		};
153	};
154
155	hdmi_enc: encoder@0 {
156		/* "ti,tpd12s016" software compatible with "ti,tpd12s015"
157		 *  no need for individual driver
158		 */
159		compatible = "ti,tpd12s015";
160		gpios = <0>,
161			<0>,
162			<&gpio7 12 GPIO_ACTIVE_HIGH>;
163
164		ports {
165			#address-cells = <0x1>;
166			#size-cells = <0x0>;
167
168			port@0 {
169				reg = <0x0>;
170
171				hdmi_encoder_in: endpoint@0 {
172					remote-endpoint = <&hdmi_out>;
173				};
174			};
175
176			port@1 {
177				reg = <0x1>;
178
179				hdmi_encoder_out: endpoint@0 {
180					remote-endpoint = <&hdmi_connector_in>;
181				};
182			};
183		};
184	};
185
186	emmc_pwrseq: emmc_pwrseq {
187		compatible = "mmc-pwrseq-emmc";
188		reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
189	};
190
191	brcmf_pwrseq: brcmf_pwrseq {
192		compatible = "mmc-pwrseq-simple";
193		reset-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>,	/* BT-REG-ON */
194				<&gpio3 18 GPIO_ACTIVE_LOW>;	/* WL-REG-ON */
195	};
196
197	extcon_usb1: extcon_usb1 {
198		compatible = "linux,extcon-usb-gpio";
199		id-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
200	};
201};
202
203&i2c1 {
204	status = "okay";
205	clock-frequency = <400000>;
206
207	tps659038: tps659038@58 {
208		compatible = "ti,tps659038";
209		reg = <0x58>;
210		interrupt-parent = <&gpio6>;
211		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
212
213		#interrupt-cells = <2>;
214		interrupt-controller;
215
216		ti,system-power-controller;
217		ti,palmas-override-powerhold;
218
219		tps659038_pmic {
220			compatible = "ti,tps659038-pmic";
221
222			smps12-in-supply = <&vdd_5v>;
223			smps3-in-supply = <&vdd_5v>;
224			smps45-in-supply = <&vdd_5v>;
225			smps6-in-supply = <&vdd_5v>;
226			smps7-in-supply = <&vdd_5v>;
227			mps3-in-supply = <&vdd_5v>;
228			smps8-in-supply = <&vdd_5v>;
229			smps9-in-supply = <&vdd_5v>;
230			ldo1-in-supply = <&vdd_5v>;
231			ldo2-in-supply = <&vdd_5v>;
232			ldo3-in-supply = <&vdd_5v>;
233			ldo4-in-supply = <&vdd_5v>;
234			ldo9-in-supply = <&vdd_5v>;
235			ldoln-in-supply = <&vdd_5v>;
236			ldousb-in-supply = <&vdd_5v>;
237			ldortc-in-supply = <&vdd_5v>;
238
239			regulators {
240				vdd_mpu: smps12 {
241					/* VDD_MPU */
242					regulator-name = "smps12";
243					regulator-min-microvolt = <850000>;
244					regulator-max-microvolt = <1250000>;
245					regulator-always-on;
246					regulator-boot-on;
247				};
248
249				vdd_ddr: smps3 {
250					/* VDD_DDR EMIF1 EMIF2 */
251					regulator-name = "smps3";
252					regulator-min-microvolt = <1350000>;
253					regulator-max-microvolt = <1350000>;
254					regulator-always-on;
255					regulator-boot-on;
256				};
257
258				vdd_dspeve: smps45 {
259					/* VDD_DSPEVE on AM572 */
260					regulator-name = "smps45";
261					regulator-min-microvolt = < 850000>;
262					regulator-max-microvolt = <1250000>;
263					regulator-always-on;
264					regulator-boot-on;
265				};
266
267				vdd_gpu: smps6 {
268					/* VDD_GPU */
269					regulator-name = "smps6";
270					regulator-min-microvolt = < 850000>;
271					regulator-max-microvolt = <1250000>;
272					regulator-always-on;
273					regulator-boot-on;
274				};
275
276				vdd_core: smps7 {
277					/* VDD_CORE */
278					regulator-name = "smps7";
279					regulator-min-microvolt = < 850000>;	/*** 1.15V */
280					regulator-max-microvolt = <1150000>;
281					regulator-always-on;
282					regulator-boot-on;
283				};
284
285				vdd_iva: smps8 {
286					/* VDD_IVAHD */				/*** 1.06V */
287					regulator-name = "smps8";
288				};
289
290				vdd_3v3: smps9 {
291					/* VDD_3V3 */
292					regulator-name = "smps9";
293					regulator-min-microvolt = <3300000>;
294					regulator-max-microvolt = <3300000>;
295					regulator-always-on;
296					regulator-boot-on;
297				};
298
299				vdd_sd: ldo1 {
300					/* VDDSHV8 - VSDMMC  */
301					regulator-name = "ldo1";
302					regulator-min-microvolt = <1800000>;
303					regulator-max-microvolt = <3300000>;
304					regulator-boot-on;
305					regulator-always-on;
306				};
307
308				vdd_1v8: ldo2 {
309					/* VDDSH18V */
310					regulator-name = "ldo2";
311					regulator-min-microvolt = <1800000>;
312					regulator-max-microvolt = <1800000>;
313					regulator-always-on;
314					regulator-boot-on;
315				};
316
317				vdd_1v8_phy_ldo3: ldo3 {
318					/* R1.3a 572x V1_8PHY_LDO3: USB, SATA */
319					regulator-name = "ldo3";
320					regulator-min-microvolt = <1800000>;
321					regulator-max-microvolt = <1800000>;
322					regulator-always-on;
323					regulator-boot-on;
324				};
325
326				vdd_1v8_phy_ldo4: ldo4 {
327					/* R1.3a 572x V1_8PHY_LDO4: PCIE, HDMI*/
328					regulator-name = "ldo4";
329					regulator-min-microvolt = <1800000>;
330					regulator-max-microvolt = <1800000>;
331					regulator-always-on;
332					regulator-boot-on;
333				};
334
335				/* LDO5-8 unused */
336
337				vdd_rtc: ldo9 {
338					/* VDD_RTC  */
339					regulator-name = "ldo9";
340					regulator-min-microvolt = < 840000>;
341					regulator-max-microvolt = <1160000>;
342					regulator-always-on;
343					regulator-boot-on;
344				};
345
346				vdd_1v8_pll: ldoln {
347					/* VDDA_1V8_PLL */
348					regulator-name = "ldoln";
349					regulator-min-microvolt = <1800000>;
350					regulator-max-microvolt = <1800000>;
351					regulator-always-on;
352					regulator-boot-on;
353				};
354
355				ldousb_reg: ldousb {
356					/* VDDA_3V_USB: VDDA_USBHS33 */
357					regulator-name = "ldousb";
358					regulator-min-microvolt = <3300000>;
359					regulator-max-microvolt = <3300000>;
360					regulator-always-on;
361					regulator-boot-on;
362				};
363
364				ldortc_reg: ldortc {
365					/* VDDA_RTC  */
366					regulator-name = "ldortc";
367					regulator-min-microvolt = <1800000>;
368					regulator-max-microvolt = <1800000>;
369					regulator-always-on;
370					regulator-boot-on;
371				};
372
373				regen1: regen1 {
374					/* VDD_3V3_ON */
375					regulator-name = "regen1";
376					regulator-boot-on;
377					regulator-always-on;
378				};
379
380				regen2: regen2 {
381					/* Needed for PMIC internal resource */
382					regulator-name = "regen2";
383					regulator-boot-on;
384					regulator-always-on;
385				};
386			};
387		};
388
389		tps659038_rtc: tps659038_rtc {
390			compatible = "ti,palmas-rtc";
391			interrupt-parent = <&tps659038>;
392			interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
393			wakeup-source;
394		};
395
396		tps659038_pwr_button: tps659038_pwr_button {
397			compatible = "ti,palmas-pwrbutton";
398			interrupt-parent = <&tps659038>;
399			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
400			wakeup-source;
401			ti,palmas-long-press-seconds = <12>;
402		};
403
404		tps659038_gpio: tps659038_gpio {
405			compatible = "ti,palmas-gpio";
406			gpio-controller;
407			#gpio-cells = <2>;
408		};
409	};
410
411	/* STMPE811 touch screen controller */
412	stmpe811@41 {
413		compatible = "st,stmpe811";
414		reg = <0x41>;
415		interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
416		interrupt-parent = <&gpio2>;
417		id = <0>;
418		blocks = <0x5>;
419		irq-trigger = <0x1>;
420		st,mod-12b = <1>; /* 12-bit ADC */
421		st,ref-sel = <0>; /* internal ADC reference */
422		st,adc-freq = <1>; /* 3.25 MHz ADC clock speed */
423		st,sample-time = <4>; /* ADC converstion time: 80 clocks */
424
425		stmpe_adc {
426			compatible = "st,stmpe-adc";
427			st,norequest-mask = <0x00>; /* mask any channels to be used by touchscreen */
428			adc0: iio-device@0 {
429				#io-channel-cells = <1>;
430				iio-channels = <&adc0 4>, <&adc0 1>, <&adc0 2>, <&adc0 3>, <&adc0 4>, <&adc0 5>, <&adc0 6>;
431				iio-channel-names = "AIN0_P9_39", "AIN1_P9_40", "AIN2_P9_37", "AIN3_P9_38",
432					"AIN4_P9_33", "AIN5_P9_36", "AIN6_P9_35";
433			};
434		};
435
436		stmpe_touchscreen {
437			status = "disabled";
438			compatible = "st,stmpe-ts";
439			/* 8 sample average control */
440			st,ave-ctrl = <3>;
441			/* 7 length fractional part in z */
442			st,fraction-z = <7>;
443			/*
444			 * 50 mA typical 80 mA max touchscreen drivers
445			 * current limit value
446			 */
447			st,i-drive = <1>;
448			/* 1 ms panel driver settling time */
449			st,settling = <3>;
450			/* 5 ms touch detect interrupt delay */
451			st,touch-det-delay = <5>;
452		};
453
454		stmpe_gpio {
455			compatible = "st,stmpe-gpio";
456		};
457
458		stmpe_pwm {
459			compatible = "st,stmpe-pwm";
460			#pwm-cells = <2>;
461		};
462	};
463};
464
465&mcspi3 {
466	status = "okay";
467	ti,pindir-d0-out-d1-in;
468
469	sn65hvs882: sn65hvs882@0 {
470		compatible = "pisosr-gpio";
471		gpio-controller;
472		#gpio-cells = <2>;
473
474		reg = <0>;
475		spi-max-frequency = <1000000>;
476		spi-cpol;
477	};
478};
479
480&cpu0 {
481	vdd-supply = <&vdd_mpu>;
482	voltage-tolerance = <1>;
483};
484
485&uart1 {
486	status = "okay";
487};
488
489&davinci_mdio_sw {
490	reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
491	reset-delay-us = <2>;
492
493	phy0: ethernet-phy@4 {
494		reg = <4>;
495		eee-broken-100tx;
496		eee-broken-1000t;
497	};
498};
499
500&mac_sw {
501	status = "okay";
502};
503
504&cpsw_port1 {
505	phy-handle = <&phy0>;
506	phy-mode = "rgmii-rxid";
507	ti,dual-emac-pvid = <1>;
508};
509
510&cpsw_port2 {
511	status = "disabled";
512};
513
514&ocp {
515	pruss1_shmem: pruss_shmem@4b200000 {
516		status = "okay";
517		compatible = "ti,pruss-shmem";
518		reg = <0x4b200000 0x020000>;
519	};
520
521	pruss2_shmem: pruss_shmem@4b280000 {
522		status = "okay";
523		compatible = "ti,pruss-shmem";
524		reg = <0x4b280000 0x020000>;
525	};
526};
527
528&mmc1 {
529	status = "okay";
530	vmmc-supply = <&vdd_3v3>;
531	vqmmc-supply = <&vdd_sd>;
532	bus-width = <4>;
533	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
534
535	pinctrl-names = "default";
536	pinctrl-0 = <&mmc1_pins_default>;
537};
538
539&mmc2 {
540	status = "okay";
541	vmmc-supply = <&vdd_1v8>;
542	vqmmc-supply = <&vdd_1v8>;
543	bus-width = <8>;
544	ti,non-removable;
545	non-removable;
546	mmc-pwrseq = <&emmc_pwrseq>;
547
548	ti,needs-special-reset;
549	dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;
550	dma-names = "tx", "rx";
551
552};
553
554&mmc4 {
555	/* DS: Default speed (DS) up to 25 MHz, including 1- and 4-bit modes (3.3 V signaling). */
556	/* HS: High speed up to 50 MHz (3.3 V signaling). */
557	/* SDR12: SDR up to 25 MHz (1.8 V signaling). */
558	/* SDR25: SDR up to 50 MHz (1.8 V signaling). */
559	/* SDR50: SDR up to 100 MHz (1.8 V signaling). */
560	/* SDR104: SDR up to 208 MHz (1.8 V signaling) */
561	/* DDR50: DDR up to 50 MHz (1.8 V signaling). */
562	status = "okay";
563
564	ti,needs-special-reset;
565	vmmc-supply = <&vdd_3v3>;
566	cap-power-off-card;
567	keep-power-in-suspend;
568	bus-width = <4>;
569	ti,non-removable;
570	non-removable;
571	no-1-8-v;
572	max-frequency = <24000000>;
573
574	#address-cells = <1>;
575	#size-cells = <0>;
576	mmc-pwrseq = <&brcmf_pwrseq>;
577
578	brcmf: wifi@1 {
579		status = "okay";
580		reg = <1>;
581		compatible = "brcm,bcm4329-fmac";
582
583		brcm,sd-head-align = <4>;
584		brcm,sd_head_align = <4>;
585		brcm,sd_sgentry_align = <512>;
586
587		interrupt-parent = <&gpio3>;
588		interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
589		interrupt-names = "host-wake";
590	};
591};
592
593&usb2_phy1 {
594	phy-supply = <&ldousb_reg>;
595};
596
597&usb2_phy2 {
598	phy-supply = <&ldousb_reg>;
599};
600
601&usb1 {
602	status = "okay";
603	dr_mode = "otg";
604};
605
606&omap_dwc3_1 {
607	extcon = <&extcon_usb1>;
608};
609
610&usb2 {
611	status = "okay";
612	dr_mode = "host";
613};
614
615&dss {
616	status = "okay";
617	vdda_video-supply = <&vdd_1v8_pll>;
618};
619
620&hdmi {
621	status = "okay";
622	vdda-supply = <&vdd_1v8_phy_ldo4>;
623
624	port {
625		hdmi_out: endpoint {
626			remote-endpoint = <&hdmi_encoder_in>;
627		};
628	};
629};
630
631&bandgap {
632	status = "okay";
633};
634
635&cpu_alert0 {
636	temperature = <55000>; /* milliCelsius */
637};
638
639&cpu_crit {
640	temperature = <85000>; /* milliCelsius */
641};
642
643&gpu_crit {
644	temperature = <85000>; /* milliCelsius */
645};
646
647&core_crit {
648	temperature = <85000>; /* milliCelsius */
649};
650
651&dspeve_crit {
652	temperature = <85000>; /* milliCelsius */
653};
654
655&iva_crit {
656	temperature = <85000>; /* milliCelsius */
657};
658
659&sata {
660	status = "disabled";
661};
662
663&sata_phy {
664	status = "disabled";
665};
666
667/* bluetooth */
668&uart6 {
669	status = "okay";
670};
671
672/* cape header stuff */
673&i2c4 {
674	status = "okay";
675	clock-frequency = <100000>;
676};
677
678&ipu2 {
679	status = "okay";
680	memory-region = <&ipu2_memory_region>;
681};
682
683&ipu1 {
684	status = "okay";
685	memory-region = <&ipu1_memory_region>;
686};
687
688&dsp1 {
689	status = "okay";
690	memory-region = <&dsp1_memory_region>;
691};
692
693&dsp2 {
694	status = "okay";
695	memory-region = <&dsp2_memory_region>;
696};
697