1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2015-2016 Texas Instruments Incorporated - https://www.ti.com/
4 */
5
6#include "am57xx-industrial-grade.dtsi"
7
8/ {
9	aliases {
10		rtc0 = &tps659038_rtc;
11		rtc1 = &rtc;
12		display0 = &hdmi0;
13	};
14
15	chosen {
16		stdout-path = &uart3;
17	};
18
19	vmain: fixedregulator-vmain {
20		compatible = "regulator-fixed";
21		regulator-name = "VMAIN";
22		regulator-min-microvolt = <5000000>;
23		regulator-max-microvolt = <5000000>;
24		regulator-always-on;
25		regulator-boot-on;
26	};
27
28	v3_3d: fixedregulator-v3_3d {
29		compatible = "regulator-fixed";
30		regulator-name = "V3_3D";
31		vin-supply = <&smps9_reg>;
32		regulator-min-microvolt = <3300000>;
33		regulator-max-microvolt = <3300000>;
34		regulator-always-on;
35		regulator-boot-on;
36	};
37
38	v1_2d: fixedregulator-v1_2d {
39		compatible = "regulator-fixed";
40		regulator-name = "V1_2D";
41		vin-supply = <&vmain>;
42		regulator-min-microvolt = <1200000>;
43		regulator-max-microvolt = <1200000>;
44		regulator-always-on;
45		regulator-boot-on;
46	};
47
48	vtt_fixed: fixedregulator-vtt {
49		/* TPS51200 */
50		compatible = "regulator-fixed";
51		regulator-name = "vtt_fixed";
52		vin-supply = <&v3_3d>;
53		regulator-min-microvolt = <3300000>;
54		regulator-max-microvolt = <3300000>;
55		regulator-always-on;
56		regulator-boot-on;
57	};
58
59	leds-iio {
60		status = "disabled";
61		compatible = "gpio-leds";
62		led-out0 {
63			label = "out0";
64			gpios = <&tpic2810 0 GPIO_ACTIVE_HIGH>;
65			default-state = "off";
66		};
67
68		led-out1 {
69			label = "out1";
70			gpios = <&tpic2810 1 GPIO_ACTIVE_HIGH>;
71			default-state = "off";
72		};
73
74		led-out2 {
75			label = "out2";
76			gpios = <&tpic2810 2 GPIO_ACTIVE_HIGH>;
77			default-state = "off";
78		};
79
80		led-out3 {
81			label = "out3";
82			gpios = <&tpic2810 3 GPIO_ACTIVE_HIGH>;
83			default-state = "off";
84		};
85
86		led-out4 {
87			label = "out4";
88			gpios = <&tpic2810 4 GPIO_ACTIVE_HIGH>;
89			default-state = "off";
90		};
91
92		led-out5 {
93			label = "out5";
94			gpios = <&tpic2810 5 GPIO_ACTIVE_HIGH>;
95			default-state = "off";
96		};
97
98		led-out6 {
99			label = "out6";
100			gpios = <&tpic2810 6 GPIO_ACTIVE_HIGH>;
101			default-state = "off";
102		};
103
104		led-out7 {
105			label = "out7";
106			gpios = <&tpic2810 7 GPIO_ACTIVE_HIGH>;
107			default-state = "off";
108		};
109	};
110
111	hdmi0: connector@0 {
112		compatible = "hdmi-connector";
113		label = "hdmi";
114
115		type = "a";
116
117		port {
118			hdmi_connector_in: endpoint {
119				remote-endpoint = <&tpd12s015_out>;
120			};
121		};
122	};
123
124	tpd12s015: encoder@0 {
125		compatible = "ti,tpd12s016", "ti,tpd12s015";
126
127		gpios = <0>, /* optional CT_CP_HPD */
128			<0>, /* optional LS_OE */
129			<&gpio7 12 GPIO_ACTIVE_HIGH>;	/* HPD */
130
131		ports {
132			#address-cells = <1>;
133			#size-cells = <0>;
134
135			port@0 {
136				reg = <0>;
137
138				tpd12s015_in: endpoint@0 {
139					remote-endpoint = <&hdmi_out>;
140				};
141			};
142
143			port@1 {
144				reg = <1>;
145
146				tpd12s015_out: endpoint@0 {
147					remote-endpoint = <&hdmi_connector_in>;
148				};
149			};
150		};
151	};
152
153	src_clk_x1: src_clk_x1 {
154		#clock-cells = <0>;
155		compatible = "fixed-clock";
156		clock-frequency = <20000000>;
157	};
158};
159
160&dra7_pmx_core {
161	dcan1_pins_default: dcan1-default-pins {
162		pinctrl-single,pins = <
163			DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0)	/* dcan1_tx */
164			DRA7XX_CORE_IOPAD(0x37d4, PIN_INPUT_PULLUP | MUX_MODE0)		/* dcan1_rx */
165		>;
166	};
167
168	dcan1_pins_sleep: dcan1-sleep-pins {
169		pinctrl-single,pins = <
170			DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP)	/* dcan1_tx.off */
171			DRA7XX_CORE_IOPAD(0x37d4, MUX_MODE15 | PULL_UP)	/* dcan1_rx.off */
172		>;
173	};
174};
175
176&i2c1 {
177	status = "okay";
178	clock-frequency = <400000>;
179
180	tps659038: tps659038@58 {
181		compatible = "ti,tps659038";
182		reg = <0x58>;
183		interrupts-extended = <&gpio6 16 IRQ_TYPE_LEVEL_HIGH
184			       &dra7_pmx_core 0x418>;
185		#interrupt-cells = <2>;
186		interrupt-controller;
187		ti,system-power-controller;
188		ti,palmas-override-powerhold;
189
190		tps659038_pmic {
191			compatible = "ti,tps659038-pmic";
192
193			smps12-in-supply = <&vmain>;
194			smps3-in-supply = <&vmain>;
195			smps45-in-supply = <&vmain>;
196			smps6-in-supply = <&vmain>;
197			smps7-in-supply = <&vmain>;
198			smps8-in-supply = <&vmain>;
199			smps9-in-supply = <&vmain>;
200			ldo1-in-supply = <&vmain>;
201			ldo2-in-supply = <&vmain>;
202			ldo3-in-supply = <&vmain>;
203			ldo4-in-supply = <&vmain>;
204			ldo9-in-supply = <&vmain>;
205			ldoln-in-supply = <&vmain>;
206			ldousb-in-supply = <&vmain>;
207			ldortc-in-supply = <&vmain>;
208
209			regulators {
210				smps12_reg: smps12 {
211					/* VDD_MPU */
212					regulator-name = "smps12";
213					regulator-min-microvolt = <850000>;
214					regulator-max-microvolt = <1250000>;
215					regulator-always-on;
216					regulator-boot-on;
217				};
218
219				smps3_reg: smps3 {
220					/* VDD_DDR EMIF1 EMIF2 */
221					regulator-name = "smps3";
222					regulator-min-microvolt = <1350000>;
223					regulator-max-microvolt = <1350000>;
224					regulator-always-on;
225					regulator-boot-on;
226				};
227
228				smps45_reg: smps45 {
229					/* VDD_DSPEVE on AM572 */
230					/* VDD_IVA + VDD_DSP on AM571 */
231					regulator-name = "smps45";
232					regulator-min-microvolt = <850000>;
233					regulator-max-microvolt = <1250000>;
234					regulator-always-on;
235					regulator-boot-on;
236				};
237
238				smps6_reg: smps6 {
239					/* VDD_GPU */
240					regulator-name = "smps6";
241					regulator-min-microvolt = <850000>;
242					regulator-max-microvolt = <1250000>;
243					regulator-always-on;
244					regulator-boot-on;
245				};
246
247				smps7_reg: smps7 {
248					/* VDD_CORE */
249					regulator-name = "smps7";
250					regulator-min-microvolt = <850000>;
251					regulator-max-microvolt = <1150000>;
252					regulator-always-on;
253					regulator-boot-on;
254				};
255
256				smps8_reg: smps8 {
257					/* 5728 - VDD_IVAHD */
258					/* 5718 - N.C. test point */
259					regulator-name = "smps8";
260				};
261
262				smps9_reg: smps9 {
263					/* VDD_3_3D */
264					regulator-name = "smps9";
265					regulator-min-microvolt = <3300000>;
266					regulator-max-microvolt = <3300000>;
267					regulator-always-on;
268					regulator-boot-on;
269				};
270
271				ldo1_reg: ldo1 {
272					/* VDDSHV8 - VSDMMC  */
273					/* NOTE: on rev 1.3a, data supply */
274					regulator-name = "ldo1";
275					regulator-min-microvolt = <1800000>;
276					regulator-max-microvolt = <3300000>;
277					regulator-boot-on;
278					regulator-always-on;
279				};
280
281				ldo2_reg: ldo2 {
282					/* VDDSH18V */
283					regulator-name = "ldo2";
284					regulator-min-microvolt = <1800000>;
285					regulator-max-microvolt = <1800000>;
286					regulator-always-on;
287					regulator-boot-on;
288				};
289
290				ldo3_reg: ldo3 {
291					/* R1.3a 572x V1_8PHY_LDO3: USB, SATA */
292					regulator-name = "ldo3";
293					regulator-min-microvolt = <1800000>;
294					regulator-max-microvolt = <1800000>;
295					regulator-always-on;
296					regulator-boot-on;
297				};
298
299				ldo4_reg: ldo4 {
300					/* R1.3a 572x V1_8PHY_LDO4: PCIE, HDMI*/
301					regulator-name = "ldo4";
302					regulator-min-microvolt = <1800000>;
303					regulator-max-microvolt = <1800000>;
304					regulator-always-on;
305					regulator-boot-on;
306				};
307
308				/* LDO5-8 unused */
309
310				ldo9_reg: ldo9 {
311					/* VDD_RTC  */
312					regulator-name = "ldo9";
313					regulator-min-microvolt = <840000>;
314					regulator-max-microvolt = <1160000>;
315					regulator-always-on;
316					regulator-boot-on;
317				};
318
319				ldoln_reg: ldoln {
320					/* VDDA_1V8_PLL */
321					regulator-name = "ldoln";
322					regulator-min-microvolt = <1800000>;
323					regulator-max-microvolt = <1800000>;
324					regulator-always-on;
325					regulator-boot-on;
326				};
327
328				ldousb_reg: ldousb {
329					/* VDDA_3V_USB: VDDA_USBHS33 */
330					regulator-name = "ldousb";
331					regulator-min-microvolt = <3300000>;
332					regulator-max-microvolt = <3300000>;
333					regulator-always-on;
334					regulator-boot-on;
335				};
336
337				ldortc_reg: ldortc {
338					/* VDDA_RTC  */
339					regulator-name = "ldortc";
340					regulator-min-microvolt = <1800000>;
341					regulator-max-microvolt = <1800000>;
342					regulator-always-on;
343					regulator-boot-on;
344				};
345
346				regen1: regen1 {
347					/* VDD_3V3_ON */
348					regulator-name = "regen1";
349					regulator-boot-on;
350					regulator-always-on;
351				};
352
353				regen2: regen2 {
354					/* Needed for PMIC internal resource */
355					regulator-name = "regen2";
356					regulator-boot-on;
357					regulator-always-on;
358				};
359			};
360		};
361
362		tps659038_rtc: tps659038_rtc {
363			compatible = "ti,palmas-rtc";
364			interrupt-parent = <&tps659038>;
365			interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
366			wakeup-source;
367		};
368
369		tps659038_pwr_button: tps659038_pwr_button {
370			compatible = "ti,palmas-pwrbutton";
371			interrupt-parent = <&tps659038>;
372			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
373			wakeup-source;
374			ti,palmas-long-press-seconds = <12>;
375		};
376
377		tps659038_gpio: tps659038_gpio {
378			compatible = "ti,palmas-gpio";
379			gpio-controller;
380			#gpio-cells = <2>;
381		};
382
383		extcon_usb2: tps659038_usb {
384			compatible = "ti,palmas-usb-vid";
385			ti,enable-vbus-detection;
386			ti,enable-id-detection;
387			/* ID & VBUS GPIOs provided in board dts */
388		};
389	};
390
391	tpic2810: tpic2810@60 {
392		compatible = "ti,tpic2810";
393		reg = <0x60>;
394		gpio-controller;
395		#gpio-cells = <2>;
396	};
397
398	dsi_bridge: tc358778@e {
399		compatible = "toshiba,tc358778", "toshiba,tc358768";
400		reg = <0xe>;
401		status = "disabled";
402
403		clocks = <&src_clk_x1>;
404		clock-names = "refclk";
405
406		vddc-supply = <&v1_2d>;
407		vddmipi-supply = <&v1_2d>;
408		vddio-supply = <&v3_3d>;
409
410		dsi_bridge_ports: ports {
411			#address-cells = <1>;
412			#size-cells = <0>;
413
414			port@0 {
415				reg = <0>;
416				rgb_in: endpoint {
417					remote-endpoint = <&dpi_out>;
418					data-lines = <24>;
419				};
420			};
421		};
422	};
423};
424
425&mcspi3 {
426	status = "okay";
427	ti,pindir-d0-out-d1-in;
428
429	sn65hvs882: sn65hvs882@0 {
430		compatible = "pisosr-gpio";
431		gpio-controller;
432		#gpio-cells = <2>;
433
434		reg = <0>;
435		spi-max-frequency = <1000000>;
436		spi-cpol;
437	};
438};
439
440&uart3 {
441	status = "okay";
442	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH
443			       &dra7_pmx_core 0x248>;
444};
445
446&rtc {
447	status = "okay";
448	ext-clk-src;
449};
450
451&mac_sw {
452	status = "okay";
453};
454
455&cpsw_port1 {
456	phy-handle = <&ethphy0>;
457	phy-mode = "rgmii-rxid";
458	ti,dual-emac-pvid = <1>;
459};
460
461&cpsw_port2 {
462	phy-handle = <&ethphy1>;
463	phy-mode = "rgmii-rxid";
464	ti,dual-emac-pvid = <2>;
465};
466
467&davinci_mdio_sw {
468	ethphy0: ethernet-phy@0 {
469		reg = <0>;
470	};
471
472	ethphy1: ethernet-phy@1 {
473		reg = <1>;
474	};
475};
476
477&usb2_phy1 {
478	phy-supply = <&ldousb_reg>;
479};
480
481&usb2_phy2 {
482	phy-supply = <&ldousb_reg>;
483};
484
485&usb1 {
486	dr_mode = "host";
487};
488
489&omap_dwc3_2 {
490	extcon = <&extcon_usb2>;
491};
492
493&usb2 {
494	extcon = <&extcon_usb2>;
495	dr_mode = "otg";
496};
497
498&mmc1 {
499	status = "okay";
500	vmmc-supply = <&v3_3d>;
501	vqmmc-supply = <&ldo1_reg>;
502	bus-width = <4>;
503	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
504	no-1-8-v;
505};
506
507&mmc2 {
508	status = "okay";
509	vmmc-supply = <&v3_3d>;
510	vqmmc-supply = <&v3_3d>;
511	bus-width = <8>;
512	non-removable;
513	max-frequency = <96000000>;
514	no-1-8-v;
515};
516
517&dcan1 {
518	status = "okay";
519	pinctrl-names = "default", "sleep", "active";
520	pinctrl-0 = <&dcan1_pins_sleep>;
521	pinctrl-1 = <&dcan1_pins_sleep>;
522	pinctrl-2 = <&dcan1_pins_default>;
523};
524
525&qspi {
526	status = "okay";
527
528	spi-max-frequency = <76800000>;
529	flash@0 {
530		compatible = "s25fl256s1", "jedec,spi-nor";
531		spi-max-frequency = <76800000>;
532		reg = <0>;
533		spi-tx-bus-width = <1>;
534		spi-rx-bus-width = <4>;
535		#address-cells = <1>;
536		#size-cells = <1>;
537
538		/* MTD partition table.
539		 * The ROM checks the first four physical blocks
540		 * for a valid file to boot and the flash here is
541		 * 64KiB block size.
542		 */
543		partition@0 {
544			label = "QSPI.SPL";
545			reg = <0x00000000 0x00040000>;
546		};
547		partition@1 {
548			label = "QSPI.u-boot";
549			reg = <0x00040000 0x00100000>;
550		};
551		partition@2 {
552			label = "QSPI.u-boot-spl-os";
553			reg = <0x00140000 0x00080000>;
554		};
555		partition@3 {
556			label = "QSPI.u-boot-env";
557			reg = <0x001c0000 0x00010000>;
558		};
559		partition@4 {
560			label = "QSPI.u-boot-env.backup1";
561			reg = <0x001d0000 0x0010000>;
562		};
563		partition@5 {
564			label = "QSPI.kernel";
565			reg = <0x001e0000 0x0800000>;
566		};
567		partition@6 {
568			label = "QSPI.file-system";
569			reg = <0x009e0000 0x01620000>;
570		};
571	};
572};
573
574&cpu0 {
575	vdd-supply = <&smps12_reg>;
576};
577
578&hdmi {
579	status = "okay";
580
581	vdda-supply = <&ldo4_reg>;
582
583	port {
584		hdmi_out: endpoint {
585			remote-endpoint = <&tpd12s015_in>;
586		};
587	};
588};
589
590&dss {
591	status = "okay";
592
593	vdda_video-supply = <&ldoln_reg>;
594
595	ports {
596		#address-cells = <1>;
597		#size-cells = <0>;
598
599		port@0 {
600			reg = <0>;
601
602			dpi_out: endpoint {
603				remote-endpoint = <&rgb_in>;
604				data-lines = <24>;
605			};
606		};
607	};
608};
609