1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2014-2019 Texas Instruments Incorporated - http://www.ti.com/
4 */
5
6/dts-v1/;
7#include "dra74x.dtsi"
8#include "dra74x-mmc-iodelay.dtsi"
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/interrupt-controller/irq.h>
11#include <dt-bindings/pinctrl/dra.h>
12
13/ {
14	model = "BeagleBoard.org BeagleBone AI";
15	compatible = "beagle,am5729-beagleboneai", "ti,am5728",
16		     "ti,dra742", "ti,dra74", "ti,dra7";
17
18	aliases {
19		rtc0 = &tps659038_rtc;
20		rtc1 = &rtc;
21		display0 = &hdmi_conn;
22	};
23
24	chosen {
25		stdout-path = &uart1;
26	};
27
28	memory@0 {
29		device_type = "memory";
30		reg = <0x0 0x80000000 0x0 0x40000000>;
31	};
32
33	vdd_adc: gpioregulator-vdd_adc {
34		compatible = "regulator-gpio";
35		regulator-name = "vdd_adc";
36		vin-supply = <&vdd_5v>;
37		regulator-min-microvolt = <1800000>;
38		regulator-max-microvolt = <3300000>;
39		regulator-always-on;
40		regulator-boot-on;
41		gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
42		states = <1800000 0
43			3300000 1>;
44	};
45
46	vdd_5v: fixedregulator-vdd_5v {
47		compatible = "regulator-fixed";
48		regulator-name = "vdd_5v";
49		regulator-min-microvolt = <5000000>;
50		regulator-max-microvolt = <5000000>;
51		regulator-always-on;
52		regulator-boot-on;
53	};
54
55	vtt_fixed: fixedregulator-vtt {
56		/* TPS51200 */
57		compatible = "regulator-fixed";
58		regulator-name = "vtt_fixed";
59		vin-supply = <&vdd_ddr>;
60		regulator-min-microvolt = <3300000>;
61		regulator-max-microvolt = <3300000>;
62		regulator-always-on;
63		regulator-boot-on;
64	};
65
66	leds {
67		compatible = "gpio-leds";
68
69		led0 {
70			label = "beaglebone:green:usr0";
71			gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
72			linux,default-trigger = "heartbeat";
73			default-state = "off";
74		};
75
76		led1 {
77			label = "beaglebone:green:usr1";
78			gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
79			linux,default-trigger = "mmc0";
80			default-state = "off";
81		};
82
83		led2 {
84			label = "beaglebone:green:usr2";
85			gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>;
86			linux,default-trigger = "cpu";
87			default-state = "off";
88		};
89
90		led3 {
91			label = "beaglebone:green:usr3";
92			gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
93			linux,default-trigger = "mmc1";
94			default-state = "off";
95		};
96
97		led4 {
98			label = "beaglebone:green:usr4";
99			gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
100			linux,default-trigger = "netdev";
101			default-state = "off";
102		};
103	};
104
105	hdmi_conn: connector@0 {
106		compatible = "hdmi-connector";
107		label = "hdmi";
108		type = "a";
109
110		port {
111			hdmi_connector_in: endpoint {
112				remote-endpoint = <&hdmi_encoder_out>;
113			};
114		};
115	};
116
117	hdmi_enc: encoder@0 {
118		/* "ti,tpd12s016" software compatible with "ti,tpd12s015"
119		 *  no need for individual driver
120		 */
121		compatible = "ti,tpd12s015";
122		gpios = <0>,
123			<0>,
124			<&gpio7 12 GPIO_ACTIVE_HIGH>;
125
126		ports {
127			#address-cells = <0x1>;
128			#size-cells = <0x0>;
129
130			port@0 {
131				reg = <0x0>;
132
133				hdmi_encoder_in: endpoint@0 {
134					remote-endpoint = <&hdmi_out>;
135				};
136			};
137
138			port@1 {
139				reg = <0x1>;
140
141				hdmi_encoder_out: endpoint@0 {
142					remote-endpoint = <&hdmi_connector_in>;
143				};
144			};
145		};
146	};
147
148	emmc_pwrseq: emmc_pwrseq {
149		compatible = "mmc-pwrseq-emmc";
150		reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
151	};
152
153	brcmf_pwrseq: brcmf_pwrseq {
154		compatible = "mmc-pwrseq-simple";
155		reset-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>,	/* BT-REG-ON */
156				<&gpio3 18 GPIO_ACTIVE_LOW>;	/* WL-REG-ON */
157	};
158
159	extcon_usb1: extcon_usb1 {
160		compatible = "linux,extcon-usb-gpio";
161		ti,enable-id-detection;
162		id-gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
163	};
164};
165
166&i2c1 {
167	status = "okay";
168	clock-frequency = <400000>;
169
170	tps659038: tps659038@58 {
171		compatible = "ti,tps659038";
172		reg = <0x58>;
173		interrupt-parent = <&gpio6>;
174		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
175
176		#interrupt-cells = <2>;
177		interrupt-controller;
178
179		ti,system-power-controller;
180		ti,palmas-override-powerhold;
181
182		tps659038_pmic {
183			compatible = "ti,tps659038-pmic";
184
185			smps12-in-supply = <&vdd_5v>;
186			smps3-in-supply = <&vdd_5v>;
187			smps45-in-supply = <&vdd_5v>;
188			smps6-in-supply = <&vdd_5v>;
189			smps7-in-supply = <&vdd_5v>;
190			mps3-in-supply = <&vdd_5v>;
191			smps8-in-supply = <&vdd_5v>;
192			smps9-in-supply = <&vdd_5v>;
193			ldo1-in-supply = <&vdd_5v>;
194			ldo2-in-supply = <&vdd_5v>;
195			ldo3-in-supply = <&vdd_5v>;
196			ldo4-in-supply = <&vdd_5v>;
197			ldo9-in-supply = <&vdd_5v>;
198			ldoln-in-supply = <&vdd_5v>;
199			ldousb-in-supply = <&vdd_5v>;
200			ldortc-in-supply = <&vdd_5v>;
201
202			regulators {
203				vdd_mpu: smps12 {
204					/* VDD_MPU */
205					regulator-name = "smps12";
206					regulator-min-microvolt = <850000>;
207					regulator-max-microvolt = <1250000>;
208					regulator-always-on;
209					regulator-boot-on;
210				};
211
212				vdd_ddr: smps3 {
213					/* VDD_DDR EMIF1 EMIF2 */
214					regulator-name = "smps3";
215					regulator-min-microvolt = <1350000>;
216					regulator-max-microvolt = <1350000>;
217					regulator-always-on;
218					regulator-boot-on;
219				};
220
221				vdd_dspeve: smps45 {
222					/* VDD_DSPEVE on AM572 */
223					regulator-name = "smps45";
224					regulator-min-microvolt = < 850000>;
225					regulator-max-microvolt = <1250000>;
226					regulator-always-on;
227					regulator-boot-on;
228				};
229
230				vdd_gpu: smps6 {
231					/* VDD_GPU */
232					regulator-name = "smps6";
233					regulator-min-microvolt = < 850000>;
234					regulator-max-microvolt = <1250000>;
235					regulator-always-on;
236					regulator-boot-on;
237				};
238
239				vdd_core: smps7 {
240					/* VDD_CORE */
241					regulator-name = "smps7";
242					regulator-min-microvolt = < 850000>;	/*** 1.15V */
243					regulator-max-microvolt = <1150000>;
244					regulator-always-on;
245					regulator-boot-on;
246				};
247
248				vdd_iva: smps8 {
249					/* VDD_IVAHD */				/*** 1.06V */
250					regulator-name = "smps8";
251				};
252
253				vdd_3v3: smps9 {
254					/* VDD_3V3 */
255					regulator-name = "smps9";
256					regulator-min-microvolt = <3300000>;
257					regulator-max-microvolt = <3300000>;
258					regulator-always-on;
259					regulator-boot-on;
260				};
261
262				vdd_sd: ldo1 {
263					/* VDDSHV8 - VSDMMC  */
264					regulator-name = "ldo1";
265					regulator-min-microvolt = <1800000>;
266					regulator-max-microvolt = <3300000>;
267					regulator-boot-on;
268					regulator-always-on;
269				};
270
271				vdd_1v8: ldo2 {
272					/* VDDSH18V */
273					regulator-name = "ldo2";
274					regulator-min-microvolt = <1800000>;
275					regulator-max-microvolt = <1800000>;
276					regulator-always-on;
277					regulator-boot-on;
278				};
279
280				vdd_1v8_phy_ldo3: ldo3 {
281					/* R1.3a 572x V1_8PHY_LDO3: USB, SATA */
282					regulator-name = "ldo3";
283					regulator-min-microvolt = <1800000>;
284					regulator-max-microvolt = <1800000>;
285					regulator-always-on;
286					regulator-boot-on;
287				};
288
289				vdd_1v8_phy_ldo4: ldo4 {
290					/* R1.3a 572x V1_8PHY_LDO4: PCIE, HDMI*/
291					regulator-name = "ldo4";
292					regulator-min-microvolt = <1800000>;
293					regulator-max-microvolt = <1800000>;
294					regulator-always-on;
295					regulator-boot-on;
296				};
297
298				/* LDO5-8 unused */
299
300				vdd_rtc: ldo9 {
301					/* VDD_RTC  */
302					regulator-name = "ldo9";
303					regulator-min-microvolt = < 840000>;
304					regulator-max-microvolt = <1160000>;
305					regulator-always-on;
306					regulator-boot-on;
307				};
308
309				vdd_1v8_pll: ldoln {
310					/* VDDA_1V8_PLL */
311					regulator-name = "ldoln";
312					regulator-min-microvolt = <1800000>;
313					regulator-max-microvolt = <1800000>;
314					regulator-always-on;
315					regulator-boot-on;
316				};
317
318				ldousb_reg: ldousb {
319					/* VDDA_3V_USB: VDDA_USBHS33 */
320					regulator-name = "ldousb";
321					regulator-min-microvolt = <3300000>;
322					regulator-max-microvolt = <3300000>;
323					regulator-always-on;
324					regulator-boot-on;
325				};
326
327				ldortc_reg: ldortc {
328					/* VDDA_RTC  */
329					regulator-name = "ldortc";
330					regulator-min-microvolt = <1800000>;
331					regulator-max-microvolt = <1800000>;
332					regulator-always-on;
333					regulator-boot-on;
334				};
335
336				regen1: regen1 {
337					/* VDD_3V3_ON */
338					regulator-name = "regen1";
339					regulator-boot-on;
340					regulator-always-on;
341				};
342
343				regen2: regen2 {
344					/* Needed for PMIC internal resource */
345					regulator-name = "regen2";
346					regulator-boot-on;
347					regulator-always-on;
348				};
349			};
350		};
351
352		tps659038_rtc: tps659038_rtc {
353			compatible = "ti,palmas-rtc";
354			interrupt-parent = <&tps659038>;
355			interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
356			wakeup-source;
357		};
358
359		tps659038_pwr_button: tps659038_pwr_button {
360			compatible = "ti,palmas-pwrbutton";
361			interrupt-parent = <&tps659038>;
362			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
363			wakeup-source;
364			ti,palmas-long-press-seconds = <12>;
365		};
366
367		tps659038_gpio: tps659038_gpio {
368			compatible = "ti,palmas-gpio";
369			gpio-controller;
370			#gpio-cells = <2>;
371		};
372	};
373};
374
375&mcspi3 {
376	status = "okay";
377	ti,pindir-d0-out-d1-in;
378
379	sn65hvs882: sn65hvs882@0 {
380		compatible = "pisosr-gpio";
381		gpio-controller;
382		#gpio-cells = <2>;
383
384		reg = <0>;
385		spi-max-frequency = <1000000>;
386		spi-cpol;
387	};
388};
389
390&cpu0 {
391	vdd-supply = <&vdd_mpu>;
392	voltage-tolerance = <1>;
393};
394
395&uart1 {
396	status = "okay";
397};
398
399&davinci_mdio {
400	reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
401	reset-delay-us = <2>;
402
403	phy0: ethernet-phy@1 {
404		reg = <4>;
405		eee-broken-100tx;
406		eee-broken-1000t;
407	};
408};
409
410&mac {
411	slaves = <1>;
412	status = "okay";
413};
414
415&cpsw_emac0 {
416	phy-handle = <&phy0>;
417	phy-mode = "rgmii";
418};
419
420&mmc1 {
421	status = "okay";
422	vmmc-supply = <&vdd_3v3>;
423	vqmmc-supply = <&vdd_sd>;
424	bus-width = <4>;
425	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
426
427	pinctrl-names = "default";
428	pinctrl-0 = <&mmc1_pins_default>;
429};
430
431&mmc2 {
432	status = "okay";
433	vmmc-supply = <&vdd_1v8>;
434	vqmmc-supply = <&vdd_1v8>;
435	bus-width = <8>;
436	ti,non-removable;
437	non-removable;
438	mmc-pwrseq = <&emmc_pwrseq>;
439
440	ti,needs-special-reset;
441	dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;
442	dma-names = "tx", "rx";
443
444	pinctrl-names = "default", "hs", "ddr_1_8v", "hs200_1_8v";
445	pinctrl-0 = <&mmc2_pins_default>;
446	pinctrl-1 = <&mmc2_pins_hs>;
447	pinctrl-2 = <&mmc2_pins_ddr_rev20>;
448	pinctrl-3 = <&mmc2_pins_hs200>;
449
450};
451
452&mmc4 {
453	/* DS: Default speed (DS) up to 25 MHz, including 1- and 4-bit modes (3.3 V signaling). */
454	/* HS: High speed up to 50 MHz (3.3 V signaling). */
455	/* SDR12: SDR up to 25 MHz (1.8 V signaling). */
456	/* SDR25: SDR up to 50 MHz (1.8 V signaling). */
457	/* SDR50: SDR up to 100 MHz (1.8 V signaling). */
458	/* SDR104: SDR up to 208 MHz (1.8 V signaling) */
459	/* DDR50: DDR up to 50 MHz (1.8 V signaling). */
460	status = "okay";
461
462	ti,needs-special-reset;
463	vmmc-supply = <&vdd_3v3>;
464	cap-power-off-card;
465	keep-power-in-suspend;
466	bus-width = <4>;
467	ti,non-removable;
468	non-removable;
469	no-1-8-v;
470	max-frequency = <24000000>;
471
472	#address-cells = <1>;
473	#size-cells = <0>;
474	mmc-pwrseq = <&brcmf_pwrseq>;
475
476	brcmf: wifi@1 {
477		status = "okay";
478		reg = <1>;
479		compatible = "brcm,bcm4329-fmac";
480
481		brcm,sd-head-align = <4>;
482		brcm,sd_head_align = <4>;
483		brcm,sd_sgentry_align = <512>;
484
485		interrupt-parent = <&gpio3>;
486		interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
487		interrupt-names = "host-wake";
488	};
489};
490
491&usb2_phy1 {
492	phy-supply = <&ldousb_reg>;
493};
494
495&usb2_phy2 {
496	phy-supply = <&ldousb_reg>;
497};
498
499&usb1 {
500	status = "okay";
501	dr_mode = "otg";
502};
503
504&omap_dwc3_1 {
505	extcon = <&extcon_usb1>;
506};
507
508&usb2 {
509	status = "okay";
510	dr_mode = "host";
511};
512
513&dss {
514	status = "okay";
515	vdda_video-supply = <&vdd_1v8_pll>;
516};
517
518&hdmi {
519	status = "okay";
520	vdda-supply = <&vdd_1v8_phy_ldo4>;
521
522	port {
523		hdmi_out: endpoint {
524			remote-endpoint = <&hdmi_encoder_in>;
525		};
526	};
527};
528
529&bandgap {
530	status = "okay";
531};
532
533&cpu_alert0 {
534	temperature = <55000>; /* milliCelsius */
535};
536
537&cpu_crit {
538	temperature = <85000>; /* milliCelsius */
539};
540
541&gpu_crit {
542	temperature = <85000>; /* milliCelsius */
543};
544
545&core_crit {
546	temperature = <85000>; /* milliCelsius */
547};
548
549&dspeve_crit {
550	temperature = <85000>; /* milliCelsius */
551};
552
553&iva_crit {
554	temperature = <85000>; /* milliCelsius */
555};
556
557&sata {
558	status = "disabled";
559};
560
561&sata_phy {
562	status = "disabled";
563};
564
565/* bluetooth */
566&uart6 {
567	status = "okay";
568};
569
570/* cape header stuff */
571&i2c4 {
572	status = "okay";
573	clock-frequency = <100000>;
574};
575
576#include "omap5-u-boot.dtsi"
577