1/*
2 * Copyright (C) 2014 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/dts-v1/;
9
10#include "dra72x.dtsi"
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/clk/ti-dra7-atl.h>
13
14/ {
15	model = "TI DRA722";
16	compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7";
17
18	memory {
19		device_type = "memory";
20		reg = <0x80000000 0x40000000>; /* 1024 MB */
21	};
22
23	aliases {
24		display0 = &hdmi0;
25	};
26
27	evm_3v3: fixedregulator-evm_3v3 {
28		compatible = "regulator-fixed";
29		regulator-name = "evm_3v3";
30		regulator-min-microvolt = <3300000>;
31		regulator-max-microvolt = <3300000>;
32	};
33
34	aic_dvdd: fixedregulator-aic_dvdd {
35		/* TPS77018DBVT */
36		compatible = "regulator-fixed";
37		regulator-name = "aic_dvdd";
38		vin-supply = <&evm_3v3>;
39		regulator-min-microvolt = <1800000>;
40		regulator-max-microvolt = <1800000>;
41	};
42
43	evm_3v3_sd: fixedregulator-sd {
44		compatible = "regulator-fixed";
45		regulator-name = "evm_3v3_sd";
46		regulator-min-microvolt = <3300000>;
47		regulator-max-microvolt = <3300000>;
48		enable-active-high;
49		gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
50	};
51
52	extcon_usb1: extcon_usb1 {
53		compatible = "linux,extcon-usb-gpio";
54		id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
55	};
56
57	extcon_usb2: extcon_usb2 {
58		compatible = "linux,extcon-usb-gpio";
59		id-gpio = <&pcf_gpio_21 2 GPIO_ACTIVE_HIGH>;
60	};
61
62	hdmi0: connector {
63		compatible = "hdmi-connector";
64		label = "hdmi";
65
66		type = "a";
67
68		port {
69			hdmi_connector_in: endpoint {
70				remote-endpoint = <&tpd12s015_out>;
71			};
72		};
73	};
74
75	tpd12s015: encoder {
76		compatible = "ti,tpd12s015";
77
78		pinctrl-names = "default";
79		pinctrl-0 = <&tpd12s015_pins>;
80
81		gpios = <&pcf_hdmi 4 GPIO_ACTIVE_HIGH>,	/* P4, CT CP HPD */
82			<&pcf_hdmi 5 GPIO_ACTIVE_HIGH>,	/* P5, LS OE */
83			<&gpio7 12 GPIO_ACTIVE_HIGH>;	/* gpio7_12/sp1_cs2, HPD */
84
85		ports {
86			#address-cells = <1>;
87			#size-cells = <0>;
88
89			port@0 {
90				reg = <0>;
91
92				tpd12s015_in: endpoint {
93					remote-endpoint = <&hdmi_out>;
94				};
95			};
96
97			port@1 {
98				reg = <1>;
99
100				tpd12s015_out: endpoint {
101					remote-endpoint = <&hdmi_connector_in>;
102				};
103			};
104		};
105	};
106
107	sound0: sound@0 {
108		compatible = "simple-audio-card";
109		simple-audio-card,name = "DRA7xx-EVM";
110		simple-audio-card,widgets =
111			"Headphone", "Headphone Jack",
112			"Line", "Line Out",
113			"Microphone", "Mic Jack",
114			"Line", "Line In";
115		simple-audio-card,routing =
116			"Headphone Jack",       "HPLOUT",
117			"Headphone Jack",       "HPROUT",
118			"Line Out",		"LLOUT",
119			"Line Out",		"RLOUT",
120			"MIC3L",		"Mic Jack",
121			"MIC3R",		"Mic Jack",
122			"Mic Jack",		"Mic Bias",
123			"LINE1L",               "Line In",
124			"LINE1R",               "Line In";
125		simple-audio-card,format = "dsp_b";
126		simple-audio-card,bitclock-master = <&sound0_master>;
127		simple-audio-card,frame-master = <&sound0_master>;
128		simple-audio-card,bitclock-inversion;
129
130		sound0_master: simple-audio-card,cpu {
131			sound-dai = <&mcasp3>;
132			system-clock-frequency = <5644800>;
133		};
134
135		simple-audio-card,codec {
136			sound-dai = <&tlv320aic3106>;
137			clocks = <&atl_clkin2_ck>;
138		};
139	};
140};
141
142&dra7_pmx_core {
143	i2c1_pins: pinmux_i2c1_pins {
144		pinctrl-single,pins = <
145			DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT | MUX_MODE0) /* i2c1_sda.i2c1_sda */
146			DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */
147		>;
148	};
149
150	i2c5_pins: pinmux_i2c5_pins {
151		pinctrl-single,pins = <
152			DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT | MUX_MODE10) /* mcasp1_axr0.i2c5_sda */
153			DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT | MUX_MODE10) /* mcasp1_axr1.i2c5_scl */
154		>;
155	};
156
157	i2c5_pins: pinmux_i2c5_pins {
158		pinctrl-single,pins = <
159			DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT | MUX_MODE10) /* mcasp1_axr0.i2c5_sda */
160			DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT | MUX_MODE10) /* mcasp1_axr1.i2c5_scl */
161		>;
162	};
163
164	nand_default: nand_default {
165		pinctrl-single,pins = <
166			DRA7XX_CORE_IOPAD(0x3400, PIN_INPUT  | MUX_MODE0) /* gpmc_ad0 */
167			DRA7XX_CORE_IOPAD(0x3404, PIN_INPUT  | MUX_MODE0) /* gpmc_ad1 */
168			DRA7XX_CORE_IOPAD(0x3408, PIN_INPUT  | MUX_MODE0) /* gpmc_ad2 */
169			DRA7XX_CORE_IOPAD(0x340c, PIN_INPUT  | MUX_MODE0) /* gpmc_ad3 */
170			DRA7XX_CORE_IOPAD(0x3410, PIN_INPUT  | MUX_MODE0) /* gpmc_ad4 */
171			DRA7XX_CORE_IOPAD(0x3414, PIN_INPUT  | MUX_MODE0) /* gpmc_ad5 */
172			DRA7XX_CORE_IOPAD(0x3418, PIN_INPUT  | MUX_MODE0) /* gpmc_ad6 */
173			DRA7XX_CORE_IOPAD(0x341c, PIN_INPUT  | MUX_MODE0) /* gpmc_ad7 */
174			DRA7XX_CORE_IOPAD(0x3420, PIN_INPUT  | MUX_MODE0) /* gpmc_ad8 */
175			DRA7XX_CORE_IOPAD(0x3424, PIN_INPUT  | MUX_MODE0) /* gpmc_ad9 */
176			DRA7XX_CORE_IOPAD(0x3428, PIN_INPUT  | MUX_MODE0) /* gpmc_ad10 */
177			DRA7XX_CORE_IOPAD(0x342c, PIN_INPUT  | MUX_MODE0) /* gpmc_ad11 */
178			DRA7XX_CORE_IOPAD(0x3430, PIN_INPUT  | MUX_MODE0) /* gpmc_ad12 */
179			DRA7XX_CORE_IOPAD(0x3434, PIN_INPUT  | MUX_MODE0) /* gpmc_ad13 */
180			DRA7XX_CORE_IOPAD(0x3438, PIN_INPUT  | MUX_MODE0) /* gpmc_ad14 */
181			DRA7XX_CORE_IOPAD(0x343c, PIN_INPUT  | MUX_MODE0) /* gpmc_ad15 */
182			DRA7XX_CORE_IOPAD(0x34b4, PIN_OUTPUT | MUX_MODE0) /* gpmc_cs0 */
183			DRA7XX_CORE_IOPAD(0x34c4, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale */
184			DRA7XX_CORE_IOPAD(0x34cc, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen */
185			DRA7XX_CORE_IOPAD(0x34c8, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren */
186			DRA7XX_CORE_IOPAD(0x34d0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0 */
187			DRA7XX_CORE_IOPAD(0x34d8, PIN_INPUT  | MUX_MODE0) /* gpmc_wait0 */
188		>;
189	};
190
191	usb1_pins: pinmux_usb1_pins {
192		pinctrl-single,pins = <
193			DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
194		>;
195	};
196
197	usb2_pins: pinmux_usb2_pins {
198		pinctrl-single,pins = <
199			DRA7XX_CORE_IOPAD(0x3684, PIN_INPUT_SLEW | MUX_MODE0) /* usb2_drvvbus */
200		>;
201	};
202
203	tps65917_pins_default: tps65917_pins_default {
204		pinctrl-single,pins = <
205			DRA7XX_CORE_IOPAD(0x3824, PIN_INPUT_PULLUP | MUX_MODE1) /* wakeup3.sys_nirq1 */
206		>;
207	};
208
209	mmc1_pins_default: mmc1_pins_default {
210		pinctrl-single,pins = <
211			DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14)	/* mmc1sdcd.gpio219 */
212			DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
213			DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
214			DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
215			DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
216			DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
217			DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
218		>;
219	};
220
221	mmc2_pins_default: mmc2_pins_default {
222		pinctrl-single,pins = <
223			DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
224			DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
225			DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
226			DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
227			DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
228			DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
229			DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
230			DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
231			DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
232			DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
233		>;
234	};
235
236	dcan1_pins_default: dcan1_pins_default {
237		pinctrl-single,pins = <
238			DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */
239			DRA7XX_CORE_IOPAD(0x3818, PULL_UP | MUX_MODE1)	/* wakeup0.dcan1_rx */
240		>;
241	};
242
243	dcan1_pins_sleep: dcan1_pins_sleep {
244		pinctrl-single,pins = <
245			DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP)	/* dcan1_tx.off */
246			DRA7XX_CORE_IOPAD(0x3818, MUX_MODE15 | PULL_UP)	/* wakeup0.off */
247		>;
248	};
249
250	qspi1_pins: pinmux_qspi1_pins {
251		pinctrl-single,pins = <
252			DRA7XX_CORE_IOPAD(0x3474, PIN_OUTPUT | MUX_MODE1)	/* gpmc_a13.qspi1_rtclk */
253			DRA7XX_CORE_IOPAD(0x3478, PIN_INPUT | MUX_MODE1)	/* gpmc_a14.qspi1_d3 */
254			DRA7XX_CORE_IOPAD(0x347c, PIN_INPUT | MUX_MODE1)	/* gpmc_a15.qspi1_d2 */
255			DRA7XX_CORE_IOPAD(0x3480, PIN_INPUT | MUX_MODE1)	/* gpmc_a16.qspi1_d1 */
256			DRA7XX_CORE_IOPAD(0x3484, PIN_INPUT | MUX_MODE1)	/* gpmc_a17.qspi1_d0 */
257			DRA7XX_CORE_IOPAD(0x3488, PIN_OUTPUT | MUX_MODE1)	/* qpmc_a18.qspi1_sclk */
258			DRA7XX_CORE_IOPAD(0x34b8, PIN_OUTPUT | MUX_MODE1)	/* gpmc_cs2.qspi1_cs0 */
259		>;
260	};
261
262	hdmi_pins: pinmux_hdmi_pins {
263		pinctrl-single,pins = <
264			DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1) /* i2c2_sda.hdmi1_ddc_scl */
265			DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */
266		>;
267	};
268
269	tpd12s015_pins: pinmux_tpd12s015_pins {
270		pinctrl-single,pins = <
271			DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpio7_12 HPD */
272		>;
273	};
274
275	atl_pins: pinmux_atl_pins {
276		pinctrl-single,pins = <
277			DRA7XX_CORE_IOPAD(0x3698, PIN_OUTPUT | MUX_MODE5)	/* xref_clk1.atl_clk1 */
278			DRA7XX_CORE_IOPAD(0x369c, PIN_OUTPUT | MUX_MODE5)	/* xref_clk2.atl_clk2 */
279		>;
280	};
281
282	mcasp3_pins: pinmux_mcasp3_pins {
283		pinctrl-single,pins = <
284			DRA7XX_CORE_IOPAD(0x3724, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mcasp3_aclkx */
285			DRA7XX_CORE_IOPAD(0x3728, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mcasp3_fsx */
286			DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mcasp3_axr0 */
287			DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0)	/* mcasp3_axr1 */
288		>;
289	};
290
291	mcasp3_sleep_pins: pinmux_mcasp3_sleep_pins {
292		pinctrl-single,pins = <
293			DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE15)
294			DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE15)
295			DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT_PULLDOWN | MUX_MODE15)
296			DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE15)
297		>;
298	};
299};
300
301&i2c1 {
302	status = "okay";
303	pinctrl-names = "default";
304	pinctrl-0 = <&i2c1_pins>;
305	clock-frequency = <400000>;
306
307	tps65917: tps65917@58 {
308		compatible = "ti,tps65917";
309		reg = <0x58>;
310
311		pinctrl-names = "default";
312		pinctrl-0 = <&tps65917_pins_default>;
313
314		interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>;  /* IRQ_SYS_1N */
315		interrupt-controller;
316		#interrupt-cells = <2>;
317
318		ti,system-power-controller;
319
320		tps65917_pmic {
321			compatible = "ti,tps65917-pmic";
322
323			regulators {
324				smps1_reg: smps1 {
325					/* VDD_MPU */
326					regulator-name = "smps1";
327					regulator-min-microvolt = <850000>;
328					regulator-max-microvolt = <1250000>;
329					regulator-always-on;
330					regulator-boot-on;
331				};
332
333				smps2_reg: smps2 {
334					/* VDD_CORE */
335					regulator-name = "smps2";
336					regulator-min-microvolt = <850000>;
337					regulator-max-microvolt = <1060000>;
338					regulator-boot-on;
339					regulator-always-on;
340				};
341
342				smps3_reg: smps3 {
343					/* VDD_GPU IVA DSPEVE */
344					regulator-name = "smps3";
345					regulator-min-microvolt = <850000>;
346					regulator-max-microvolt = <1250000>;
347					regulator-boot-on;
348					regulator-always-on;
349				};
350
351				smps4_reg: smps4 {
352					/* VDDS1V8 */
353					regulator-name = "smps4";
354					regulator-min-microvolt = <1800000>;
355					regulator-max-microvolt = <1800000>;
356					regulator-always-on;
357					regulator-boot-on;
358				};
359
360				smps5_reg: smps5 {
361					/* VDD_DDR */
362					regulator-name = "smps5";
363					regulator-min-microvolt = <1350000>;
364					regulator-max-microvolt = <1350000>;
365					regulator-boot-on;
366					regulator-always-on;
367				};
368
369				ldo1_reg: ldo1 {
370					/* LDO1_OUT --> SDIO  */
371					regulator-name = "ldo1";
372					regulator-min-microvolt = <1800000>;
373					regulator-max-microvolt = <3300000>;
374					regulator-always-on;
375					regulator-boot-on;
376					regulator-allow-bypass;
377				};
378
379				ldo2_reg: ldo2 {
380					/* LDO2_OUT --> TP1017 (UNUSED)  */
381					regulator-name = "ldo2";
382					regulator-min-microvolt = <1800000>;
383					regulator-max-microvolt = <3300000>;
384					regulator-allow-bypass;
385				};
386
387				ldo3_reg: ldo3 {
388					/* VDDA_1V8_PHY */
389					regulator-name = "ldo3";
390					regulator-min-microvolt = <1800000>;
391					regulator-max-microvolt = <1800000>;
392					regulator-boot-on;
393					regulator-always-on;
394				};
395
396				ldo5_reg: ldo5 {
397					/* VDDA_1V8_PLL */
398					regulator-name = "ldo5";
399					regulator-min-microvolt = <1800000>;
400					regulator-max-microvolt = <1800000>;
401					regulator-always-on;
402					regulator-boot-on;
403				};
404
405				ldo4_reg: ldo4 {
406					/* VDDA_3V_USB: VDDA_USBHS33 */
407					regulator-name = "ldo4";
408					regulator-min-microvolt = <3300000>;
409					regulator-max-microvolt = <3300000>;
410					regulator-boot-on;
411				};
412			};
413		};
414
415		tps65917_power_button {
416			compatible = "ti,palmas-pwrbutton";
417			interrupt-parent = <&tps65917>;
418			interrupts = <1 IRQ_TYPE_NONE>;
419			wakeup-source;
420			ti,palmas-long-press-seconds = <6>;
421		};
422	};
423
424	pcf_gpio_21: gpio@21 {
425		compatible = "ti,pcf8575";
426		reg = <0x21>;
427		lines-initial-states = <0x1408>;
428		gpio-controller;
429		#gpio-cells = <2>;
430		interrupt-parent = <&gpio6>;
431		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
432		interrupt-controller;
433		#interrupt-cells = <2>;
434	};
435
436	tlv320aic3106: tlv320aic3106@19 {
437		#sound-dai-cells = <0>;
438		compatible = "ti,tlv320aic3106";
439		reg = <0x19>;
440		adc-settle-ms = <40>;
441		ai3x-micbias-vg = <1>;		/* 2.0V */
442		status = "okay";
443
444		/* Regulators */
445		AVDD-supply = <&evm_3v3>;
446		IOVDD-supply = <&evm_3v3>;
447		DRVDD-supply = <&evm_3v3>;
448		DVDD-supply = <&aic_dvdd>;
449	};
450};
451
452&i2c5 {
453	status = "okay";
454	pinctrl-names = "default";
455	pinctrl-0 = <&i2c5_pins>;
456	clock-frequency = <400000>;
457
458	pcf_hdmi: pcf8575@26 {
459		compatible = "nxp,pcf8575";
460		reg = <0x26>;
461		gpio-controller;
462		#gpio-cells = <2>;
463		/*
464		 * initial state is used here to keep the mdio interface
465		 * selected on RU89 through SEL_VIN4_MUX_S0, VIN2_S1 and
466		 * VIN2_S0 driven high otherwise Ethernet stops working
467		 * VIN6_SEL_S0 is low, thus selecting McASP3 over VIN6
468		 */
469		lines-initial-states = <0x0f2b>;
470
471		p1 {
472			/* vin6_sel_s0: high: VIN6, low: audio */
473			gpio-hog;
474			gpios = <1 GPIO_ACTIVE_HIGH>;
475			output-low;
476			line-name = "vin6_sel_s0";
477		};
478	};
479};
480
481&uart1 {
482	status = "okay";
483	interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
484			      <&dra7_pmx_core 0x3e0>;
485};
486
487&elm {
488	status = "okay";
489};
490
491&gpmc {
492	status = "okay";
493	pinctrl-names = "default";
494	pinctrl-0 = <&nand_default>;
495	ranges = <0 0 0 0x01000000>;	/* minimum GPMC partition = 16MB */
496	nand@0,0 {
497		/* To use NAND, DIP switch SW5 must be set like so:
498		 * SW5.1 (NAND_SELn) = ON (LOW)
499		 * SW5.9 (GPMC_WPN) = OFF (HIGH)
500		 */
501		reg = <0 0 4>;		/* device IO registers */
502		ti,nand-ecc-opt = "bch8";
503		ti,elm-id = <&elm>;
504		nand-bus-width = <16>;
505		gpmc,device-width = <2>;
506		gpmc,sync-clk-ps = <0>;
507		gpmc,cs-on-ns = <0>;
508		gpmc,cs-rd-off-ns = <80>;
509		gpmc,cs-wr-off-ns = <80>;
510		gpmc,adv-on-ns = <0>;
511		gpmc,adv-rd-off-ns = <60>;
512		gpmc,adv-wr-off-ns = <60>;
513		gpmc,we-on-ns = <10>;
514		gpmc,we-off-ns = <50>;
515		gpmc,oe-on-ns = <4>;
516		gpmc,oe-off-ns = <40>;
517		gpmc,access-ns = <40>;
518		gpmc,wr-access-ns = <80>;
519		gpmc,rd-cycle-ns = <80>;
520		gpmc,wr-cycle-ns = <80>;
521		gpmc,bus-turnaround-ns = <0>;
522		gpmc,cycle2cycle-delay-ns = <0>;
523		gpmc,clk-activation-ns = <0>;
524		gpmc,wait-monitoring-ns = <0>;
525		gpmc,wr-data-mux-bus-ns = <0>;
526		/* MTD partition table */
527		/* All SPL-* partitions are sized to minimal length
528		 * which can be independently programmable. For
529		 * NAND flash this is equal to size of erase-block */
530		#address-cells = <1>;
531		#size-cells = <1>;
532		partition@0 {
533			label = "NAND.SPL";
534			reg = <0x00000000 0x000020000>;
535		};
536		partition@1 {
537			label = "NAND.SPL.backup1";
538			reg = <0x00020000 0x00020000>;
539		};
540		partition@2 {
541			label = "NAND.SPL.backup2";
542			reg = <0x00040000 0x00020000>;
543		};
544		partition@3 {
545			label = "NAND.SPL.backup3";
546			reg = <0x00060000 0x00020000>;
547		};
548		partition@4 {
549			label = "NAND.u-boot-spl-os";
550			reg = <0x00080000 0x00040000>;
551		};
552		partition@5 {
553			label = "NAND.u-boot";
554			reg = <0x000c0000 0x00100000>;
555		};
556		partition@6 {
557			label = "NAND.u-boot-env";
558			reg = <0x001c0000 0x00020000>;
559		};
560		partition@7 {
561			label = "NAND.u-boot-env.backup1";
562			reg = <0x001e0000 0x00020000>;
563		};
564		partition@8 {
565			label = "NAND.kernel";
566			reg = <0x00200000 0x00800000>;
567		};
568		partition@9 {
569			label = "NAND.file-system";
570			reg = <0x00a00000 0x0f600000>;
571		};
572	};
573};
574
575&usb2_phy1 {
576	phy-supply = <&ldo4_reg>;
577};
578
579&usb2_phy2 {
580	phy-supply = <&ldo4_reg>;
581};
582
583&omap_dwc3_1 {
584	extcon = <&extcon_usb1>;
585};
586
587&omap_dwc3_2 {
588	extcon = <&extcon_usb2>;
589};
590
591&usb1 {
592	dr_mode = "peripheral";
593	pinctrl-names = "default";
594	pinctrl-0 = <&usb1_pins>;
595};
596
597&usb2 {
598	dr_mode = "host";
599	pinctrl-names = "default";
600	pinctrl-0 = <&usb2_pins>;
601};
602
603&mmc1 {
604	status = "okay";
605	pinctrl-names = "default";
606	pinctrl-0 = <&mmc1_pins_default>;
607	vmmc-supply = <&evm_3v3_sd>;
608	vmmc_aux-supply = <&ldo1_reg>;
609	bus-width = <4>;
610	/*
611	 * SDCD signal is not being used here - using the fact that GPIO mode
612	 * is a viable alternative
613	 */
614	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
615	max-frequency = <192000000>;
616};
617
618&mmc2 {
619	/* SW5-3 in ON position */
620	status = "okay";
621	pinctrl-names = "default";
622	pinctrl-0 = <&mmc2_pins_default>;
623
624	vmmc-supply = <&evm_3v3>;
625	bus-width = <8>;
626	ti,non-removable;
627	max-frequency = <192000000>;
628};
629
630&dra7_pmx_core {
631	cpsw_default: cpsw_default {
632		pinctrl-single,pins = <
633			/* Slave 2 */
634			DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3)	/* vin2a_d12.rgmii1_txc */
635			DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3)	/* vin2a_d13.rgmii1_tctl */
636			DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3)	/* vin2a_d14.rgmii1_td3 */
637			DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3)	/* vin2a_d15.rgmii1_td2 */
638			DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3)	/* vin2a_d16.rgmii1_td1 */
639			DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3)	/* vin2a_d17.rgmii1_td0 */
640			DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE3)	/* vin2a_d18.rgmii1_rclk */
641			DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE3)	/* vin2a_d19.rgmii1_rctl */
642			DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE3)	/* vin2a_d20.rgmii1_rd3 */
643			DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE3)	/* vin2a_d21.rgmii1_rd2 */
644			DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE3)	/* vin2a_d22.rgmii1_rd1 */
645			DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE3)	/* vin2a_d23.rgmii1_rd0 */
646		>;
647
648	};
649
650	cpsw_sleep: cpsw_sleep {
651		pinctrl-single,pins = <
652			/* Slave 2 */
653			DRA7XX_CORE_IOPAD(0x3598, MUX_MODE15)
654			DRA7XX_CORE_IOPAD(0x359c, MUX_MODE15)
655			DRA7XX_CORE_IOPAD(0x35a0, MUX_MODE15)
656			DRA7XX_CORE_IOPAD(0x35a4, MUX_MODE15)
657			DRA7XX_CORE_IOPAD(0x35a8, MUX_MODE15)
658			DRA7XX_CORE_IOPAD(0x35ac, MUX_MODE15)
659			DRA7XX_CORE_IOPAD(0x35b0, MUX_MODE15)
660			DRA7XX_CORE_IOPAD(0x35b4, MUX_MODE15)
661			DRA7XX_CORE_IOPAD(0x35b8, MUX_MODE15)
662			DRA7XX_CORE_IOPAD(0x35bc, MUX_MODE15)
663			DRA7XX_CORE_IOPAD(0x35c0, MUX_MODE15)
664			DRA7XX_CORE_IOPAD(0x35c4, MUX_MODE15)
665		>;
666	};
667
668	davinci_mdio_default: davinci_mdio_default {
669		pinctrl-single,pins = <
670			/* MDIO */
671			DRA7XX_CORE_IOPAD(0x363c, PIN_OUTPUT_PULLUP | MUX_MODE0)	/* mdio_d.mdio_d */
672			DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLUP | MUX_MODE0)	/* mdio_clk.mdio_clk */
673		>;
674	};
675
676	davinci_mdio_sleep: davinci_mdio_sleep {
677		pinctrl-single,pins = <
678			DRA7XX_CORE_IOPAD(0x363c, MUX_MODE15)
679			DRA7XX_CORE_IOPAD(0x3640, MUX_MODE15)
680		>;
681	};
682};
683
684&mac {
685	status = "okay";
686	pinctrl-names = "default", "sleep";
687	pinctrl-0 = <&cpsw_default>;
688	pinctrl-1 = <&cpsw_sleep>;
689	slaves = <1>;
690	mode-gpios = <&pcf_gpio_21 4 GPIO_ACTIVE_HIGH>;
691};
692
693&cpsw_emac0 {
694	phy_id = <&davinci_mdio>, <3>;
695	phy-mode = "rgmii";
696};
697
698&davinci_mdio {
699	pinctrl-names = "default", "sleep";
700	pinctrl-0 = <&davinci_mdio_default>;
701	pinctrl-1 = <&davinci_mdio_sleep>;
702};
703
704&dcan1 {
705	status = "ok";
706	pinctrl-names = "default", "sleep", "active";
707	pinctrl-0 = <&dcan1_pins_sleep>;
708	pinctrl-1 = <&dcan1_pins_sleep>;
709	pinctrl-2 = <&dcan1_pins_default>;
710};
711
712&qspi {
713	status = "okay";
714	pinctrl-names = "default";
715	pinctrl-0 = <&qspi1_pins>;
716
717	spi-max-frequency = <48000000>;
718	m25p80@0 {
719		compatible = "s25fl256s1";
720		spi-max-frequency = <48000000>;
721		reg = <0>;
722		spi-tx-bus-width = <1>;
723		spi-rx-bus-width = <4>;
724		spi-cpol;
725		spi-cpha;
726		#address-cells = <1>;
727		#size-cells = <1>;
728
729		/* MTD partition table.
730		 * The ROM checks the first four physical blocks
731		 * for a valid file to boot and the flash here is
732		 * 64KiB block size.
733		 */
734		partition@0 {
735			label = "QSPI.SPL";
736			reg = <0x00000000 0x000010000>;
737		};
738		partition@1 {
739			label = "QSPI.SPL.backup1";
740			reg = <0x00010000 0x00010000>;
741		};
742		partition@2 {
743			label = "QSPI.SPL.backup2";
744			reg = <0x00020000 0x00010000>;
745		};
746		partition@3 {
747			label = "QSPI.SPL.backup3";
748			reg = <0x00030000 0x00010000>;
749		};
750		partition@4 {
751			label = "QSPI.u-boot";
752			reg = <0x00040000 0x00100000>;
753		};
754		partition@5 {
755			label = "QSPI.u-boot-spl-os";
756			reg = <0x00140000 0x00080000>;
757		};
758		partition@6 {
759			label = "QSPI.u-boot-env";
760			reg = <0x001c0000 0x00010000>;
761		};
762		partition@7 {
763			label = "QSPI.u-boot-env.backup1";
764			reg = <0x001d0000 0x0010000>;
765		};
766		partition@8 {
767			label = "QSPI.kernel";
768			reg = <0x001e0000 0x0800000>;
769		};
770		partition@9 {
771			label = "QSPI.file-system";
772			reg = <0x009e0000 0x01620000>;
773		};
774	};
775};
776
777&dss {
778	status = "ok";
779
780	vdda_video-supply = <&ldo5_reg>;
781};
782
783&hdmi {
784	status = "ok";
785	vdda-supply = <&ldo3_reg>;
786
787	pinctrl-names = "default";
788	pinctrl-0 = <&hdmi_pins>;
789
790	port {
791		hdmi_out: endpoint {
792			remote-endpoint = <&tpd12s015_in>;
793		};
794	};
795};
796
797&atl {
798	pinctrl-names = "default";
799	pinctrl-0 = <&atl_pins>;
800
801	assigned-clocks = <&abe_dpll_sys_clk_mux>,
802			  <&atl_gfclk_mux>,
803			  <&dpll_abe_ck>,
804			  <&dpll_abe_m2x2_ck>,
805			  <&atl_clkin2_ck>;
806	assigned-clock-parents = <&sys_clkin2>, <&dpll_abe_m2_ck>;
807	assigned-clock-rates = <0>, <0>, <180633600>, <361267200>, <5644800>;
808
809	status = "okay";
810
811	atl2 {
812		bws = <DRA7_ATL_WS_MCASP2_FSX>;
813		aws = <DRA7_ATL_WS_MCASP3_FSX>;
814	};
815};
816
817&mcasp3 {
818	#sound-dai-cells = <0>;
819	pinctrl-names = "default", "sleep";
820	pinctrl-0 = <&mcasp3_pins>;
821	pinctrl-1 = <&mcasp3_sleep_pins>;
822
823	assigned-clocks = <&mcasp3_ahclkx_mux>;
824	assigned-clock-parents = <&atl_clkin2_ck>;
825
826	status = "okay";
827
828	op-mode = <0>;          /* MCASP_IIS_MODE */
829	tdm-slots = <2>;
830	/* 4 serializer */
831	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
832		1 2 0 0
833	>;
834};
835
836&mailbox5 {
837	status = "okay";
838	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
839		status = "okay";
840	};
841	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
842		status = "okay";
843	};
844};
845
846&mailbox6 {
847	status = "okay";
848	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
849		status = "okay";
850	};
851};
852