1/*
2 * Copyright (C) 2015-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
9#include "am57xx-industrial-grade.dtsi"
10
11/ {
12	aliases {
13		rtc0 = &tps659038_rtc;
14		rtc1 = &rtc;
15	};
16
17	chosen {
18		stdout-path = &uart3;
19	};
20
21	vmain: fixedregulator-vmain {
22		compatible = "regulator-fixed";
23		regulator-name = "VMAIN";
24		regulator-min-microvolt = <5000000>;
25		regulator-max-microvolt = <5000000>;
26		regulator-always-on;
27		regulator-boot-on;
28	};
29
30	v3_3d: fixedregulator-v3_3d {
31		compatible = "regulator-fixed";
32		regulator-name = "V3_3D";
33		vin-supply = <&smps9_reg>;
34		regulator-min-microvolt = <3300000>;
35		regulator-max-microvolt = <3300000>;
36		regulator-always-on;
37		regulator-boot-on;
38	};
39
40	vtt_fixed: fixedregulator-vtt {
41		/* TPS51200 */
42		compatible = "regulator-fixed";
43		regulator-name = "vtt_fixed";
44		vin-supply = <&v3_3d>;
45		regulator-min-microvolt = <3300000>;
46		regulator-max-microvolt = <3300000>;
47		regulator-always-on;
48		regulator-boot-on;
49	};
50
51	leds-iio {
52		status = "disabled";
53		compatible = "gpio-leds";
54		led-out0 {
55			label = "out0";
56			gpios = <&tpic2810 0 GPIO_ACTIVE_HIGH>;
57			default-state = "off";
58		};
59
60		led-out1 {
61			label = "out1";
62			gpios = <&tpic2810 1 GPIO_ACTIVE_HIGH>;
63			default-state = "off";
64		};
65
66		led-out2 {
67			label = "out2";
68			gpios = <&tpic2810 2 GPIO_ACTIVE_HIGH>;
69			default-state = "off";
70		};
71
72		led-out3 {
73			label = "out3";
74			gpios = <&tpic2810 3 GPIO_ACTIVE_HIGH>;
75			default-state = "off";
76		};
77
78		led-out4 {
79			label = "out4";
80			gpios = <&tpic2810 4 GPIO_ACTIVE_HIGH>;
81			default-state = "off";
82		};
83
84		led-out5 {
85			label = "out5";
86			gpios = <&tpic2810 5 GPIO_ACTIVE_HIGH>;
87			default-state = "off";
88		};
89
90		led-out6 {
91			label = "out6";
92			gpios = <&tpic2810 6 GPIO_ACTIVE_HIGH>;
93			default-state = "off";
94		};
95
96		led-out7 {
97			label = "out7";
98			gpios = <&tpic2810 7 GPIO_ACTIVE_HIGH>;
99			default-state = "off";
100		};
101	};
102};
103
104&dra7_pmx_core {
105	dcan1_pins_default: dcan1_pins_default {
106		pinctrl-single,pins = <
107			DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0)	/* dcan1_tx */
108			DRA7XX_CORE_IOPAD(0x37d4, PIN_INPUT_PULLUP | MUX_MODE0)		/* dcan1_rx */
109		>;
110	};
111
112	dcan1_pins_sleep: dcan1_pins_sleep {
113		pinctrl-single,pins = <
114			DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP)	/* dcan1_tx.off */
115			DRA7XX_CORE_IOPAD(0x37d4, MUX_MODE15 | PULL_UP)	/* dcan1_rx.off */
116		>;
117	};
118};
119
120&i2c1 {
121	status = "okay";
122	clock-frequency = <400000>;
123
124	tps659038: tps659038@58 {
125		compatible = "ti,tps659038";
126		reg = <0x58>;
127		interrupts-extended = <&gpio6 16 IRQ_TYPE_LEVEL_HIGH
128			       &dra7_pmx_core 0x418>;
129		#interrupt-cells = <2>;
130		interrupt-controller;
131		ti,system-power-controller;
132		ti,palmas-override-powerhold;
133
134		tps659038_pmic {
135			compatible = "ti,tps659038-pmic";
136
137			smps12-in-supply = <&vmain>;
138			smps3-in-supply = <&vmain>;
139			smps45-in-supply = <&vmain>;
140			smps6-in-supply = <&vmain>;
141			smps7-in-supply = <&vmain>;
142			smps8-in-supply = <&vmain>;
143			smps9-in-supply = <&vmain>;
144			ldo1-in-supply = <&vmain>;
145			ldo2-in-supply = <&vmain>;
146			ldo3-in-supply = <&vmain>;
147			ldo4-in-supply = <&vmain>;
148			ldo9-in-supply = <&vmain>;
149			ldoln-in-supply = <&vmain>;
150			ldousb-in-supply = <&vmain>;
151			ldortc-in-supply = <&vmain>;
152
153			regulators {
154				smps12_reg: smps12 {
155					/* VDD_MPU */
156					regulator-name = "smps12";
157					regulator-min-microvolt = <850000>;
158					regulator-max-microvolt = <1250000>;
159					regulator-always-on;
160					regulator-boot-on;
161				};
162
163				smps3_reg: smps3 {
164					/* VDD_DDR EMIF1 EMIF2 */
165					regulator-name = "smps3";
166					regulator-min-microvolt = <1350000>;
167					regulator-max-microvolt = <1350000>;
168					regulator-always-on;
169					regulator-boot-on;
170				};
171
172				smps45_reg: smps45 {
173					/* VDD_DSPEVE on AM572 */
174					/* VDD_IVA + VDD_DSP on AM571 */
175					regulator-name = "smps45";
176					regulator-min-microvolt = <850000>;
177					regulator-max-microvolt = <1250000>;
178					regulator-always-on;
179					regulator-boot-on;
180				};
181
182				smps6_reg: smps6 {
183					/* VDD_GPU */
184					regulator-name = "smps6";
185					regulator-min-microvolt = <850000>;
186					regulator-max-microvolt = <1250000>;
187					regulator-always-on;
188					regulator-boot-on;
189				};
190
191				smps7_reg: smps7 {
192					/* VDD_CORE */
193					regulator-name = "smps7";
194					regulator-min-microvolt = <850000>;
195					regulator-max-microvolt = <1150000>;
196					regulator-always-on;
197					regulator-boot-on;
198				};
199
200				smps8_reg: smps8 {
201					/* 5728 - VDD_IVAHD */
202					/* 5718 - N.C. test point */
203					regulator-name = "smps8";
204				};
205
206				smps9_reg: smps9 {
207					/* VDD_3_3D */
208					regulator-name = "smps9";
209					regulator-min-microvolt = <3300000>;
210					regulator-max-microvolt = <3300000>;
211					regulator-always-on;
212					regulator-boot-on;
213				};
214
215				ldo1_reg: ldo1 {
216					/* VDDSHV8 - VSDMMC  */
217					/* NOTE: on rev 1.3a, data supply */
218					regulator-name = "ldo1";
219					regulator-min-microvolt = <1800000>;
220					regulator-max-microvolt = <3300000>;
221					regulator-boot-on;
222					regulator-always-on;
223				};
224
225				ldo2_reg: ldo2 {
226					/* VDDSH18V */
227					regulator-name = "ldo2";
228					regulator-min-microvolt = <1800000>;
229					regulator-max-microvolt = <1800000>;
230					regulator-always-on;
231					regulator-boot-on;
232				};
233
234				ldo3_reg: ldo3 {
235					/* R1.3a 572x V1_8PHY_LDO3: USB, SATA */
236					regulator-name = "ldo3";
237					regulator-min-microvolt = <1800000>;
238					regulator-max-microvolt = <1800000>;
239					regulator-always-on;
240					regulator-boot-on;
241				};
242
243				ldo4_reg: ldo4 {
244					/* R1.3a 572x V1_8PHY_LDO4: PCIE, HDMI*/
245					regulator-name = "ldo4";
246					regulator-min-microvolt = <1800000>;
247					regulator-max-microvolt = <1800000>;
248					regulator-always-on;
249					regulator-boot-on;
250				};
251
252				/* LDO5-8 unused */
253
254				ldo9_reg: ldo9 {
255					/* VDD_RTC  */
256					regulator-name = "ldo9";
257					regulator-min-microvolt = <840000>;
258					regulator-max-microvolt = <1160000>;
259					regulator-always-on;
260					regulator-boot-on;
261				};
262
263				ldoln_reg: ldoln {
264					/* VDDA_1V8_PLL */
265					regulator-name = "ldoln";
266					regulator-min-microvolt = <1800000>;
267					regulator-max-microvolt = <1800000>;
268					regulator-always-on;
269					regulator-boot-on;
270				};
271
272				ldousb_reg: ldousb {
273					/* VDDA_3V_USB: VDDA_USBHS33 */
274					regulator-name = "ldousb";
275					regulator-min-microvolt = <3300000>;
276					regulator-max-microvolt = <3300000>;
277					regulator-always-on;
278					regulator-boot-on;
279				};
280
281				ldortc_reg: ldortc {
282					/* VDDA_RTC  */
283					regulator-name = "ldortc";
284					regulator-min-microvolt = <1800000>;
285					regulator-max-microvolt = <1800000>;
286					regulator-always-on;
287					regulator-boot-on;
288				};
289
290				regen1: regen1 {
291					/* VDD_3V3_ON */
292					regulator-name = "regen1";
293					regulator-boot-on;
294					regulator-always-on;
295				};
296
297				regen2: regen2 {
298					/* Needed for PMIC internal resource */
299					regulator-name = "regen2";
300					regulator-boot-on;
301					regulator-always-on;
302				};
303			};
304		};
305
306		tps659038_rtc: tps659038_rtc {
307			compatible = "ti,palmas-rtc";
308			interrupt-parent = <&tps659038>;
309			interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
310			wakeup-source;
311		};
312
313		tps659038_pwr_button: tps659038_pwr_button {
314			compatible = "ti,palmas-pwrbutton";
315			interrupt-parent = <&tps659038>;
316			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
317			wakeup-source;
318			ti,palmas-long-press-seconds = <12>;
319		};
320
321		tps659038_gpio: tps659038_gpio {
322			compatible = "ti,palmas-gpio";
323			gpio-controller;
324			#gpio-cells = <2>;
325		};
326
327		extcon_usb2: tps659038_usb {
328			compatible = "ti,palmas-usb-vid";
329			ti,enable-vbus-detection;
330			ti,enable-id-detection;
331			/* ID & VBUS GPIOs provided in board dts */
332		};
333	};
334
335	tpic2810: tpic2810@60 {
336		compatible = "ti,tpic2810";
337		reg = <0x60>;
338		gpio-controller;
339		#gpio-cells = <2>;
340	};
341};
342
343&mcspi3 {
344	status = "okay";
345	ti,pindir-d0-out-d1-in;
346
347	sn65hvs882: sn65hvs882@0 {
348		compatible = "pisosr-gpio";
349		gpio-controller;
350		#gpio-cells = <2>;
351
352		reg = <0>;
353		spi-max-frequency = <1000000>;
354		spi-cpol;
355	};
356};
357
358&uart3 {
359	status = "okay";
360	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH
361			       &dra7_pmx_core 0x248>;
362};
363
364&rtc {
365	status = "okay";
366	ext-clk-src;
367};
368
369&mac {
370	status = "okay";
371	dual_emac;
372};
373
374&cpsw_emac0 {
375	phy_id = <&davinci_mdio>, <0>;
376	phy-mode = "rgmii";
377	dual_emac_res_vlan = <1>;
378};
379
380&cpsw_emac1 {
381	phy_id = <&davinci_mdio>, <1>;
382	phy-mode = "rgmii";
383	dual_emac_res_vlan = <2>;
384};
385
386&usb2_phy1 {
387	phy-supply = <&ldousb_reg>;
388};
389
390&usb2_phy2 {
391	phy-supply = <&ldousb_reg>;
392};
393
394&usb1 {
395	dr_mode = "host";
396};
397
398&usb2 {
399	dr_mode = "peripheral";
400};
401
402&mmc1 {
403	status = "okay";
404	vmmc-supply = <&v3_3d>;
405	vqmmc-supply = <&ldo1_reg>;
406	bus-width = <4>;
407	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
408};
409
410&mmc2 {
411	status = "okay";
412	vmmc-supply = <&v3_3d>;
413	bus-width = <8>;
414	ti,non-removable;
415	max-frequency = <96000000>;
416};
417
418&dcan1 {
419	status = "okay";
420	pinctrl-names = "default", "sleep", "active";
421	pinctrl-0 = <&dcan1_pins_sleep>;
422	pinctrl-1 = <&dcan1_pins_sleep>;
423	pinctrl-2 = <&dcan1_pins_default>;
424};
425
426&qspi {
427	status = "okay";
428
429	spi-max-frequency = <76800000>;
430	m25p80@0 {
431		compatible = "s25fl256s1", "jedec,spi-nor";
432		spi-max-frequency = <76800000>;
433		reg = <0>;
434		spi-tx-bus-width = <1>;
435		spi-rx-bus-width = <4>;
436		#address-cells = <1>;
437		#size-cells = <1>;
438
439		/* MTD partition table.
440		 * The ROM checks the first four physical blocks
441		 * for a valid file to boot and the flash here is
442		 * 64KiB block size.
443		 */
444		partition@0 {
445			label = "QSPI.SPL";
446			reg = <0x00000000 0x000040000>;
447		};
448		partition@1 {
449			label = "QSPI.u-boot";
450			reg = <0x00040000 0x00100000>;
451		};
452		partition@2 {
453			label = "QSPI.u-boot-spl-os";
454			reg = <0x00140000 0x00080000>;
455		};
456		partition@3 {
457			label = "QSPI.u-boot-env";
458			reg = <0x001c0000 0x00010000>;
459		};
460		partition@4 {
461			label = "QSPI.u-boot-env.backup1";
462			reg = <0x001d0000 0x0010000>;
463		};
464		partition@5 {
465			label = "QSPI.kernel";
466			reg = <0x001e0000 0x0800000>;
467		};
468		partition@6 {
469			label = "QSPI.file-system";
470			reg = <0x009e0000 0x01620000>;
471		};
472	};
473};
474