Linux Audio

Check our new training course

Loading...
v4.17
 
  1/*
  2 * Copyright (C) 2014-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/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	compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7";
 16
 17	aliases {
 18		display0 = &hdmi0;
 19	};
 20
 21	chosen {
 22		stdout-path = &uart1;
 23	};
 24
 25	evm_12v0: fixedregulator-evm12v0 {
 26		/* main supply */
 27		compatible = "regulator-fixed";
 28		regulator-name = "evm_12v0";
 29		regulator-min-microvolt = <12000000>;
 30		regulator-max-microvolt = <12000000>;
 31		regulator-always-on;
 32		regulator-boot-on;
 33	};
 34
 35	evm_5v0: fixedregulator-evm5v0 {
 36		/* Output 1 of TPS43351QDAPRQ1 on dra72-evm */
 37		/* Output 1 of LM5140QRWGTQ1 on dra71-evm */
 38		compatible = "regulator-fixed";
 39		regulator-name = "evm_5v0";
 40		regulator-min-microvolt = <5000000>;
 41		regulator-max-microvolt = <5000000>;
 42		vin-supply = <&evm_12v0>;
 43		regulator-always-on;
 44		regulator-boot-on;
 45	};
 46
 
 
 
 
 
 
 
 
 
 
 47	vsys_3v3: fixedregulator-vsys3v3 {
 48		/* Output 2 of TPS43351QDAPRQ1 on dra72-evm */
 49		/* Output 2 of LM5140QRWGTQ1 on dra71-evm */
 50		compatible = "regulator-fixed";
 51		regulator-name = "vsys_3v3";
 52		regulator-min-microvolt = <3300000>;
 53		regulator-max-microvolt = <3300000>;
 54		vin-supply = <&evm_12v0>;
 55		regulator-always-on;
 56		regulator-boot-on;
 57	};
 58
 59	evm_3v3_sw: fixedregulator-evm_3v3 {
 60		/* TPS22965DSG */
 61		compatible = "regulator-fixed";
 62		regulator-name = "evm_3v3";
 63		regulator-min-microvolt = <3300000>;
 64		regulator-max-microvolt = <3300000>;
 65		vin-supply = <&vsys_3v3>;
 66		regulator-always-on;
 67		regulator-boot-on;
 68	};
 69
 70	aic_dvdd: fixedregulator-aic_dvdd {
 71		/* TPS77018DBVT */
 72		compatible = "regulator-fixed";
 73		regulator-name = "aic_dvdd";
 74		vin-supply = <&evm_3v3_sw>;
 75		regulator-min-microvolt = <1800000>;
 76		regulator-max-microvolt = <1800000>;
 77	};
 78
 79	evm_3v3_sd: fixedregulator-sd {
 80		compatible = "regulator-fixed";
 81		regulator-name = "evm_3v3_sd";
 82		regulator-min-microvolt = <3300000>;
 83		regulator-max-microvolt = <3300000>;
 84		vin-supply = <&evm_3v3_sw>;
 85		enable-active-high;
 86		gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
 87	};
 88
 89	extcon_usb1: extcon_usb1 {
 90		compatible = "linux,extcon-usb-gpio";
 91		id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
 92	};
 93
 94	extcon_usb2: extcon_usb2 {
 95		compatible = "linux,extcon-usb-gpio";
 96		id-gpio = <&pcf_gpio_21 2 GPIO_ACTIVE_HIGH>;
 97	};
 98
 99	hdmi0: connector {
100		compatible = "hdmi-connector";
101		label = "hdmi";
102
103		type = "a";
104
105		port {
106			hdmi_connector_in: endpoint {
107				remote-endpoint = <&tpd12s015_out>;
108			};
109		};
110	};
111
112	tpd12s015: encoder {
113		compatible = "ti,tpd12s015";
114
115		gpios = <&pcf_hdmi 4 GPIO_ACTIVE_HIGH>,	/* P4, CT CP HPD */
116			<&pcf_hdmi 5 GPIO_ACTIVE_HIGH>,	/* P5, LS OE */
117			<&gpio7 12 GPIO_ACTIVE_HIGH>;	/* gpio7_12/sp1_cs2, HPD */
118
119		ports {
120			#address-cells = <1>;
121			#size-cells = <0>;
122
123			port@0 {
124				reg = <0>;
125
126				tpd12s015_in: endpoint {
127					remote-endpoint = <&hdmi_out>;
128				};
129			};
130
131			port@1 {
132				reg = <1>;
133
134				tpd12s015_out: endpoint {
135					remote-endpoint = <&hdmi_connector_in>;
136				};
137			};
138		};
139	};
140
141	sound0: sound0 {
142		compatible = "simple-audio-card";
143		simple-audio-card,name = "DRA7xx-EVM";
144		simple-audio-card,widgets =
145			"Headphone", "Headphone Jack",
146			"Line", "Line Out",
147			"Microphone", "Mic Jack",
148			"Line", "Line In";
149		simple-audio-card,routing =
150			"Headphone Jack",       "HPLOUT",
151			"Headphone Jack",       "HPROUT",
152			"Line Out",		"LLOUT",
153			"Line Out",		"RLOUT",
154			"MIC3L",		"Mic Jack",
155			"MIC3R",		"Mic Jack",
156			"Mic Jack",		"Mic Bias",
157			"LINE1L",               "Line In",
158			"LINE1R",               "Line In";
159		simple-audio-card,format = "dsp_b";
160		simple-audio-card,bitclock-master = <&sound0_master>;
161		simple-audio-card,frame-master = <&sound0_master>;
162		simple-audio-card,bitclock-inversion;
163
164		sound0_master: simple-audio-card,cpu {
165			sound-dai = <&mcasp3>;
166			system-clock-frequency = <5644800>;
167		};
168
169		simple-audio-card,codec {
170			sound-dai = <&tlv320aic3106>;
171			clocks = <&atl_clkin2_ck>;
172		};
173	};
174};
175
176&dra7_pmx_core {
177	mmc1_pins_default: mmc1_pins_default {
178		pinctrl-single,pins = <
179			DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14)	/* mmc1sdcd.gpio219 */
180			DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
181			DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
182			DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
183			DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
184			DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
185			DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
186		>;
187	};
188
189	mmc2_pins_default: mmc2_pins_default {
190		pinctrl-single,pins = <
191			DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
192			DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
193			DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
194			DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
195			DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
196			DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
197			DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
198			DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
199			DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
200			DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
201		>;
202	};
 
203
 
204	dcan1_pins_default: dcan1_pins_default {
205		pinctrl-single,pins = <
206			DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */
207			DRA7XX_CORE_IOPAD(0x3818, PULL_UP | MUX_MODE1)	/* wakeup0.dcan1_rx */
208		>;
209	};
210
211	dcan1_pins_sleep: dcan1_pins_sleep {
212		pinctrl-single,pins = <
213			DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP)	/* dcan1_tx.off */
214			DRA7XX_CORE_IOPAD(0x3818, MUX_MODE15 | PULL_UP)	/* wakeup0.off */
215		>;
216	};
217};
218
219&i2c1 {
220	status = "okay";
221	clock-frequency = <400000>;
222
223	pcf_lcd: gpio@20 {
224		compatible = "nxp,pcf8575";
225		reg = <0x20>;
226		gpio-controller;
227		#gpio-cells = <2>;
228		interrupt-controller;
229		#interrupt-cells = <2>;
230	};
231
232	pcf_gpio_21: gpio@21 {
233		compatible = "ti,pcf8575", "nxp,pcf8575";
234		reg = <0x21>;
235		lines-initial-states = <0x1408>;
236		gpio-controller;
237		#gpio-cells = <2>;
238		interrupt-controller;
239		#interrupt-cells = <2>;
240	};
241
242	tlv320aic3106: tlv320aic3106@19 {
243		#sound-dai-cells = <0>;
244		compatible = "ti,tlv320aic3106";
245		reg = <0x19>;
246		adc-settle-ms = <40>;
247		ai3x-micbias-vg = <1>;		/* 2.0V */
248		status = "okay";
249
250		/* Regulators */
251		AVDD-supply = <&evm_3v3_sw>;
252		IOVDD-supply = <&evm_3v3_sw>;
253		DRVDD-supply = <&evm_3v3_sw>;
254		DVDD-supply = <&aic_dvdd>;
255	};
256};
257
258&i2c5 {
259	status = "okay";
260	clock-frequency = <400000>;
261
262	pcf_hdmi: pcf8575@26 {
263		compatible = "ti,pcf8575", "nxp,pcf8575";
264		reg = <0x26>;
265		gpio-controller;
266		#gpio-cells = <2>;
267		/*
268		 * initial state is used here to keep the mdio interface
269		 * selected on RU89 through SEL_VIN4_MUX_S0, VIN2_S1 and
270		 * VIN2_S0 driven high otherwise Ethernet stops working
271		 * VIN6_SEL_S0 is low, thus selecting McASP3 over VIN6
272		 */
273		lines-initial-states = <0x0f2b>;
274
275		p1 {
276			/* vin6_sel_s0: high: VIN6, low: audio */
277			gpio-hog;
278			gpios = <1 GPIO_ACTIVE_HIGH>;
279			output-low;
280			line-name = "vin6_sel_s0";
281		};
282	};
283};
284
285&uart1 {
286	status = "okay";
287	interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
288			      <&dra7_pmx_core 0x3e0>;
289};
290
291&elm {
292	status = "okay";
293};
294
295&gpmc {
296	/*
297	 * For the existing IOdelay configuration via U-Boot we don't
298	 * support NAND on dra72-evm. Keep it disabled. Enabling it
299	 * requires a different configuration by U-Boot.
300	 */
301	status = "disabled";
302	ranges = <0 0 0x08000000 0x01000000>;	/* minimum GPMC partition = 16MB */
303	nand@0,0 {
304		/* To use NAND, DIP switch SW5 must be set like so:
305		 * SW5.1 (NAND_SELn) = ON (LOW)
306		 * SW5.9 (GPMC_WPN) = OFF (HIGH)
307		 */
308		compatible = "ti,omap2-nand";
309		reg = <0 0 4>;		/* device IO registers */
310		interrupt-parent = <&gpmc>;
311		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
312			     <1 IRQ_TYPE_NONE>;	/* termcount */
313		rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 pin */
314		ti,nand-xfer-type = "prefetch-dma";
315		ti,nand-ecc-opt = "bch8";
316		ti,elm-id = <&elm>;
317		nand-bus-width = <16>;
318		gpmc,device-width = <2>;
319		gpmc,sync-clk-ps = <0>;
320		gpmc,cs-on-ns = <0>;
321		gpmc,cs-rd-off-ns = <80>;
322		gpmc,cs-wr-off-ns = <80>;
323		gpmc,adv-on-ns = <0>;
324		gpmc,adv-rd-off-ns = <60>;
325		gpmc,adv-wr-off-ns = <60>;
326		gpmc,we-on-ns = <10>;
327		gpmc,we-off-ns = <50>;
328		gpmc,oe-on-ns = <4>;
329		gpmc,oe-off-ns = <40>;
330		gpmc,access-ns = <40>;
331		gpmc,wr-access-ns = <80>;
332		gpmc,rd-cycle-ns = <80>;
333		gpmc,wr-cycle-ns = <80>;
334		gpmc,bus-turnaround-ns = <0>;
335		gpmc,cycle2cycle-delay-ns = <0>;
336		gpmc,clk-activation-ns = <0>;
337		gpmc,wr-data-mux-bus-ns = <0>;
338		/* MTD partition table */
339		/* All SPL-* partitions are sized to minimal length
340		 * which can be independently programmable. For
341		 * NAND flash this is equal to size of erase-block */
342		#address-cells = <1>;
343		#size-cells = <1>;
344		partition@0 {
345			label = "NAND.SPL";
346			reg = <0x00000000 0x000020000>;
347		};
348		partition@1 {
349			label = "NAND.SPL.backup1";
350			reg = <0x00020000 0x00020000>;
351		};
352		partition@2 {
353			label = "NAND.SPL.backup2";
354			reg = <0x00040000 0x00020000>;
355		};
356		partition@3 {
357			label = "NAND.SPL.backup3";
358			reg = <0x00060000 0x00020000>;
359		};
360		partition@4 {
361			label = "NAND.u-boot-spl-os";
362			reg = <0x00080000 0x00040000>;
363		};
364		partition@5 {
365			label = "NAND.u-boot";
366			reg = <0x000c0000 0x00100000>;
367		};
368		partition@6 {
369			label = "NAND.u-boot-env";
370			reg = <0x001c0000 0x00020000>;
371		};
372		partition@7 {
373			label = "NAND.u-boot-env.backup1";
374			reg = <0x001e0000 0x00020000>;
375		};
376		partition@8 {
377			label = "NAND.kernel";
378			reg = <0x00200000 0x00800000>;
379		};
380		partition@9 {
381			label = "NAND.file-system";
382			reg = <0x00a00000 0x0f600000>;
383		};
384	};
385};
386
387&omap_dwc3_1 {
388	extcon = <&extcon_usb1>;
389};
390
391&omap_dwc3_2 {
392	extcon = <&extcon_usb2>;
393};
394
395&usb1 {
396	dr_mode = "otg";
397	extcon = <&extcon_usb1>;
398};
399
400&usb2 {
401	dr_mode = "host";
 
402};
403
404&mmc1 {
405	status = "okay";
406	pinctrl-names = "default";
407	pinctrl-0 = <&mmc1_pins_default>;
408	vmmc-supply = <&evm_3v3_sd>;
409	bus-width = <4>;
410	/*
411	 * SDCD signal is not being used here - using the fact that GPIO mode
412	 * is a viable alternative
413	 */
414	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
415	max-frequency = <192000000>;
416};
417
418&mmc2 {
419	/* SW5-3 in ON position */
420	status = "okay";
421	pinctrl-names = "default";
422	pinctrl-0 = <&mmc2_pins_default>;
423	bus-width = <8>;
424	ti,non-removable;
425	max-frequency = <192000000>;
426};
427
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
428&mac {
429	status = "okay";
430};
431
432&dcan1 {
433	status = "ok";
434	pinctrl-names = "default", "sleep", "active";
435	pinctrl-0 = <&dcan1_pins_sleep>;
436	pinctrl-1 = <&dcan1_pins_sleep>;
437	pinctrl-2 = <&dcan1_pins_default>;
438};
439
440&qspi {
441	status = "okay";
442
443	spi-max-frequency = <76800000>;
444	m25p80@0 {
445		compatible = "s25fl256s1";
446		spi-max-frequency = <76800000>;
447		reg = <0>;
448		spi-tx-bus-width = <1>;
449		spi-rx-bus-width = <4>;
450		#address-cells = <1>;
451		#size-cells = <1>;
452
453		/* MTD partition table.
454		 * The ROM checks the first four physical blocks
455		 * for a valid file to boot and the flash here is
456		 * 64KiB block size.
457		 */
458		partition@0 {
459			label = "QSPI.SPL";
460			reg = <0x00000000 0x000010000>;
461		};
462		partition@1 {
463			label = "QSPI.SPL.backup1";
464			reg = <0x00010000 0x00010000>;
465		};
466		partition@2 {
467			label = "QSPI.SPL.backup2";
468			reg = <0x00020000 0x00010000>;
469		};
470		partition@3 {
471			label = "QSPI.SPL.backup3";
472			reg = <0x00030000 0x00010000>;
473		};
474		partition@4 {
475			label = "QSPI.u-boot";
476			reg = <0x00040000 0x00100000>;
477		};
478		partition@5 {
479			label = "QSPI.u-boot-spl-os";
480			reg = <0x00140000 0x00080000>;
481		};
482		partition@6 {
483			label = "QSPI.u-boot-env";
484			reg = <0x001c0000 0x00010000>;
485		};
486		partition@7 {
487			label = "QSPI.u-boot-env.backup1";
488			reg = <0x001d0000 0x0010000>;
489		};
490		partition@8 {
491			label = "QSPI.kernel";
492			reg = <0x001e0000 0x0800000>;
493		};
494		partition@9 {
495			label = "QSPI.file-system";
496			reg = <0x009e0000 0x01620000>;
497		};
498	};
499};
500
501&dss {
502	status = "ok";
503};
504
505&hdmi {
506	status = "ok";
507
508	port {
509		hdmi_out: endpoint {
510			remote-endpoint = <&tpd12s015_in>;
511		};
512	};
513};
514
515&atl {
516	assigned-clocks = <&abe_dpll_sys_clk_mux>,
517			  <&atl_clkctrl DRA7_ATL_CLKCTRL 26>,
518			  <&dpll_abe_ck>,
519			  <&dpll_abe_m2x2_ck>,
520			  <&atl_clkin2_ck>;
521	assigned-clock-parents = <&sys_clkin2>, <&dpll_abe_m2_ck>;
522	assigned-clock-rates = <0>, <0>, <180633600>, <361267200>, <5644800>;
523
524	status = "okay";
525
526	atl2 {
527		bws = <DRA7_ATL_WS_MCASP2_FSX>;
528		aws = <DRA7_ATL_WS_MCASP3_FSX>;
529	};
530};
531
532&mcasp3 {
533	#sound-dai-cells = <0>;
534
535	assigned-clocks = <&l4per_clkctrl DRA7_MCASP3_CLKCTRL 24>;
536	assigned-clock-parents = <&atl_clkin2_ck>;
537
538	status = "okay";
539
540	op-mode = <0>;          /* MCASP_IIS_MODE */
541	tdm-slots = <2>;
542	/* 4 serializer */
543	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
544		1 2 0 0
545	>;
546	tx-num-evt = <32>;
547	rx-num-evt = <32>;
548};
549
550&mailbox5 {
551	status = "okay";
552	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
553		status = "okay";
554	};
555	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
556		status = "okay";
557	};
558};
559
560&mailbox6 {
561	status = "okay";
562	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
563		status = "okay";
564	};
565};
566
567&pcie1_rc {
568	status = "okay";
569};
v5.4
  1// SPDX-License-Identifier: GPL-2.0-only
  2/*
  3 * Copyright (C) 2014-2016 Texas Instruments Incorporated - http://www.ti.com/
 
 
 
 
  4 */
  5/dts-v1/;
  6
  7#include "dra72x.dtsi"
  8#include <dt-bindings/gpio/gpio.h>
  9#include <dt-bindings/clk/ti-dra7-atl.h>
 10
 11/ {
 12	compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7";
 13
 14	aliases {
 15		display0 = &hdmi0;
 16	};
 17
 18	chosen {
 19		stdout-path = &uart1;
 20	};
 21
 22	evm_12v0: fixedregulator-evm12v0 {
 23		/* main supply */
 24		compatible = "regulator-fixed";
 25		regulator-name = "evm_12v0";
 26		regulator-min-microvolt = <12000000>;
 27		regulator-max-microvolt = <12000000>;
 28		regulator-always-on;
 29		regulator-boot-on;
 30	};
 31
 32	evm_5v0: fixedregulator-evm5v0 {
 33		/* Output 1 of TPS43351QDAPRQ1 on dra72-evm */
 34		/* Output 1 of LM5140QRWGTQ1 on dra71-evm */
 35		compatible = "regulator-fixed";
 36		regulator-name = "evm_5v0";
 37		regulator-min-microvolt = <5000000>;
 38		regulator-max-microvolt = <5000000>;
 39		vin-supply = <&evm_12v0>;
 40		regulator-always-on;
 41		regulator-boot-on;
 42	};
 43
 44	evm_3v6: fixedregulator-evm_3v6 {
 45		compatible = "regulator-fixed";
 46		regulator-name = "evm_3v6";
 47		regulator-min-microvolt = <3600000>;
 48		regulator-max-microvolt = <3600000>;
 49		vin-supply = <&evm_5v0>;
 50		regulator-always-on;
 51		regulator-boot-on;
 52	};
 53
 54	vsys_3v3: fixedregulator-vsys3v3 {
 55		/* Output 2 of TPS43351QDAPRQ1 on dra72-evm */
 56		/* Output 2 of LM5140QRWGTQ1 on dra71-evm */
 57		compatible = "regulator-fixed";
 58		regulator-name = "vsys_3v3";
 59		regulator-min-microvolt = <3300000>;
 60		regulator-max-microvolt = <3300000>;
 61		vin-supply = <&evm_12v0>;
 62		regulator-always-on;
 63		regulator-boot-on;
 64	};
 65
 66	evm_3v3_sw: fixedregulator-evm_3v3 {
 67		/* TPS22965DSG */
 68		compatible = "regulator-fixed";
 69		regulator-name = "evm_3v3";
 70		regulator-min-microvolt = <3300000>;
 71		regulator-max-microvolt = <3300000>;
 72		vin-supply = <&vsys_3v3>;
 73		regulator-always-on;
 74		regulator-boot-on;
 75	};
 76
 77	aic_dvdd: fixedregulator-aic_dvdd {
 78		/* TPS77018DBVT */
 79		compatible = "regulator-fixed";
 80		regulator-name = "aic_dvdd";
 81		vin-supply = <&evm_3v3_sw>;
 82		regulator-min-microvolt = <1800000>;
 83		regulator-max-microvolt = <1800000>;
 84	};
 85
 86	evm_3v3_sd: fixedregulator-sd {
 87		compatible = "regulator-fixed";
 88		regulator-name = "evm_3v3_sd";
 89		regulator-min-microvolt = <3300000>;
 90		regulator-max-microvolt = <3300000>;
 91		vin-supply = <&evm_3v3_sw>;
 92		enable-active-high;
 93		gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
 94	};
 95
 96	extcon_usb1: extcon_usb1 {
 97		compatible = "linux,extcon-usb-gpio";
 98		id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
 99	};
100
101	extcon_usb2: extcon_usb2 {
102		compatible = "linux,extcon-usb-gpio";
103		id-gpio = <&pcf_gpio_21 2 GPIO_ACTIVE_HIGH>;
104	};
105
106	hdmi0: connector {
107		compatible = "hdmi-connector";
108		label = "hdmi";
109
110		type = "a";
111
112		port {
113			hdmi_connector_in: endpoint {
114				remote-endpoint = <&tpd12s015_out>;
115			};
116		};
117	};
118
119	tpd12s015: encoder {
120		compatible = "ti,tpd12s015";
121
122		gpios = <&pcf_hdmi 4 GPIO_ACTIVE_HIGH>,	/* P4, CT CP HPD */
123			<&pcf_hdmi 5 GPIO_ACTIVE_HIGH>,	/* P5, LS OE */
124			<&gpio7 12 GPIO_ACTIVE_HIGH>;	/* gpio7_12/sp1_cs2, HPD */
125
126		ports {
127			#address-cells = <1>;
128			#size-cells = <0>;
129
130			port@0 {
131				reg = <0>;
132
133				tpd12s015_in: endpoint {
134					remote-endpoint = <&hdmi_out>;
135				};
136			};
137
138			port@1 {
139				reg = <1>;
140
141				tpd12s015_out: endpoint {
142					remote-endpoint = <&hdmi_connector_in>;
143				};
144			};
145		};
146	};
147
148	sound0: sound0 {
149		compatible = "simple-audio-card";
150		simple-audio-card,name = "DRA7xx-EVM";
151		simple-audio-card,widgets =
152			"Headphone", "Headphone Jack",
153			"Line", "Line Out",
154			"Microphone", "Mic Jack",
155			"Line", "Line In";
156		simple-audio-card,routing =
157			"Headphone Jack",       "HPLOUT",
158			"Headphone Jack",       "HPROUT",
159			"Line Out",		"LLOUT",
160			"Line Out",		"RLOUT",
161			"MIC3L",		"Mic Jack",
162			"MIC3R",		"Mic Jack",
163			"Mic Jack",		"Mic Bias",
164			"LINE1L",               "Line In",
165			"LINE1R",               "Line In";
166		simple-audio-card,format = "dsp_b";
167		simple-audio-card,bitclock-master = <&sound0_master>;
168		simple-audio-card,frame-master = <&sound0_master>;
169		simple-audio-card,bitclock-inversion;
170
171		sound0_master: simple-audio-card,cpu {
172			sound-dai = <&mcasp3>;
173			system-clock-frequency = <5644800>;
174		};
175
176		simple-audio-card,codec {
177			sound-dai = <&tlv320aic3106>;
178			clocks = <&atl_clkin2_ck>;
179		};
180	};
 
181
182	vmmcwl_fixed: fixedregulator-mmcwl {
183		compatible = "regulator-fixed";
184		regulator-name = "vmmcwl_fixed";
185		regulator-min-microvolt = <1800000>;
186		regulator-max-microvolt = <1800000>;
187		gpio = <&gpio5 8 GPIO_ACTIVE_HIGH>;
188		enable-active-high;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189	};
190};
191
192&dra7_pmx_core {
193	dcan1_pins_default: dcan1_pins_default {
194		pinctrl-single,pins = <
195			DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */
196			DRA7XX_CORE_IOPAD(0x3818, PULL_UP | MUX_MODE1)	/* wakeup0.dcan1_rx */
197		>;
198	};
199
200	dcan1_pins_sleep: dcan1_pins_sleep {
201		pinctrl-single,pins = <
202			DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP)	/* dcan1_tx.off */
203			DRA7XX_CORE_IOPAD(0x3818, MUX_MODE15 | PULL_UP)	/* wakeup0.off */
204		>;
205	};
206};
207
208&i2c1 {
209	status = "okay";
210	clock-frequency = <400000>;
211
212	pcf_lcd: gpio@20 {
213		compatible = "nxp,pcf8575";
214		reg = <0x20>;
215		gpio-controller;
216		#gpio-cells = <2>;
217		interrupt-controller;
218		#interrupt-cells = <2>;
219	};
220
221	pcf_gpio_21: gpio@21 {
222		compatible = "ti,pcf8575", "nxp,pcf8575";
223		reg = <0x21>;
224		lines-initial-states = <0x1408>;
225		gpio-controller;
226		#gpio-cells = <2>;
227		interrupt-controller;
228		#interrupt-cells = <2>;
229	};
230
231	tlv320aic3106: tlv320aic3106@19 {
232		#sound-dai-cells = <0>;
233		compatible = "ti,tlv320aic3106";
234		reg = <0x19>;
235		adc-settle-ms = <40>;
236		ai3x-micbias-vg = <1>;		/* 2.0V */
237		status = "okay";
238
239		/* Regulators */
240		AVDD-supply = <&evm_3v3_sw>;
241		IOVDD-supply = <&evm_3v3_sw>;
242		DRVDD-supply = <&evm_3v3_sw>;
243		DVDD-supply = <&aic_dvdd>;
244	};
245};
246
247&i2c5 {
248	status = "okay";
249	clock-frequency = <400000>;
250
251	pcf_hdmi: pcf8575@26 {
252		compatible = "ti,pcf8575", "nxp,pcf8575";
253		reg = <0x26>;
254		gpio-controller;
255		#gpio-cells = <2>;
256		/*
257		 * initial state is used here to keep the mdio interface
258		 * selected on RU89 through SEL_VIN4_MUX_S0, VIN2_S1 and
259		 * VIN2_S0 driven high otherwise Ethernet stops working
260		 * VIN6_SEL_S0 is low, thus selecting McASP3 over VIN6
261		 */
262		lines-initial-states = <0x0f2b>;
263
264		p1 {
265			/* vin6_sel_s0: high: VIN6, low: audio */
266			gpio-hog;
267			gpios = <1 GPIO_ACTIVE_HIGH>;
268			output-low;
269			line-name = "vin6_sel_s0";
270		};
271	};
272};
273
274&uart1 {
275	status = "okay";
276	interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
277			      <&dra7_pmx_core 0x3e0>;
278};
279
280&elm {
281	status = "okay";
282};
283
284&gpmc {
285	/*
286	 * For the existing IOdelay configuration via U-Boot we don't
287	 * support NAND on dra72-evm. Keep it disabled. Enabling it
288	 * requires a different configuration by U-Boot.
289	 */
290	status = "disabled";
291	ranges = <0 0 0x08000000 0x01000000>;	/* minimum GPMC partition = 16MB */
292	nand@0,0 {
293		/* To use NAND, DIP switch SW5 must be set like so:
294		 * SW5.1 (NAND_SELn) = ON (LOW)
295		 * SW5.9 (GPMC_WPN) = OFF (HIGH)
296		 */
297		compatible = "ti,omap2-nand";
298		reg = <0 0 4>;		/* device IO registers */
299		interrupt-parent = <&gpmc>;
300		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
301			     <1 IRQ_TYPE_NONE>;	/* termcount */
302		rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 pin */
303		ti,nand-xfer-type = "prefetch-dma";
304		ti,nand-ecc-opt = "bch8";
305		ti,elm-id = <&elm>;
306		nand-bus-width = <16>;
307		gpmc,device-width = <2>;
308		gpmc,sync-clk-ps = <0>;
309		gpmc,cs-on-ns = <0>;
310		gpmc,cs-rd-off-ns = <80>;
311		gpmc,cs-wr-off-ns = <80>;
312		gpmc,adv-on-ns = <0>;
313		gpmc,adv-rd-off-ns = <60>;
314		gpmc,adv-wr-off-ns = <60>;
315		gpmc,we-on-ns = <10>;
316		gpmc,we-off-ns = <50>;
317		gpmc,oe-on-ns = <4>;
318		gpmc,oe-off-ns = <40>;
319		gpmc,access-ns = <40>;
320		gpmc,wr-access-ns = <80>;
321		gpmc,rd-cycle-ns = <80>;
322		gpmc,wr-cycle-ns = <80>;
323		gpmc,bus-turnaround-ns = <0>;
324		gpmc,cycle2cycle-delay-ns = <0>;
325		gpmc,clk-activation-ns = <0>;
326		gpmc,wr-data-mux-bus-ns = <0>;
327		/* MTD partition table */
328		/* All SPL-* partitions are sized to minimal length
329		 * which can be independently programmable. For
330		 * NAND flash this is equal to size of erase-block */
331		#address-cells = <1>;
332		#size-cells = <1>;
333		partition@0 {
334			label = "NAND.SPL";
335			reg = <0x00000000 0x000020000>;
336		};
337		partition@1 {
338			label = "NAND.SPL.backup1";
339			reg = <0x00020000 0x00020000>;
340		};
341		partition@2 {
342			label = "NAND.SPL.backup2";
343			reg = <0x00040000 0x00020000>;
344		};
345		partition@3 {
346			label = "NAND.SPL.backup3";
347			reg = <0x00060000 0x00020000>;
348		};
349		partition@4 {
350			label = "NAND.u-boot-spl-os";
351			reg = <0x00080000 0x00040000>;
352		};
353		partition@5 {
354			label = "NAND.u-boot";
355			reg = <0x000c0000 0x00100000>;
356		};
357		partition@6 {
358			label = "NAND.u-boot-env";
359			reg = <0x001c0000 0x00020000>;
360		};
361		partition@7 {
362			label = "NAND.u-boot-env.backup1";
363			reg = <0x001e0000 0x00020000>;
364		};
365		partition@8 {
366			label = "NAND.kernel";
367			reg = <0x00200000 0x00800000>;
368		};
369		partition@9 {
370			label = "NAND.file-system";
371			reg = <0x00a00000 0x0f600000>;
372		};
373	};
374};
375
376&omap_dwc3_1 {
377	extcon = <&extcon_usb1>;
378};
379
380&omap_dwc3_2 {
381	extcon = <&extcon_usb2>;
382};
383
384&usb1 {
385	dr_mode = "otg";
386	extcon = <&extcon_usb1>;
387};
388
389&usb2 {
390	dr_mode = "host";
391	extcon = <&extcon_usb2>;
392};
393
394&mmc1 {
395	status = "okay";
396	pinctrl-names = "default";
397	pinctrl-0 = <&mmc1_pins_default>;
398	vmmc-supply = <&evm_3v3_sd>;
399	bus-width = <4>;
400	/*
401	 * SDCD signal is not being used here - using the fact that GPIO mode
402	 * is a viable alternative
403	 */
404	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
405	max-frequency = <192000000>;
406};
407
408&mmc2 {
409	/* SW5-3 in ON position */
410	status = "okay";
411	pinctrl-names = "default";
412	pinctrl-0 = <&mmc2_pins_default>;
413	bus-width = <8>;
414	non-removable;
415	max-frequency = <192000000>;
416};
417
418&mmc4 {
419	status = "okay";
420	vmmc-supply = <&evm_3v6>;
421	vqmmc-supply = <&vmmcwl_fixed>;
422	bus-width = <4>;
423	cap-power-off-card;
424	keep-power-in-suspend;
425	non-removable;
426	pinctrl-names = "default", "hs", "sdr12", "sdr25";
427	pinctrl-0 = <&mmc4_pins_default>;
428	pinctrl-1 = <&mmc4_pins_default>;
429	pinctrl-2 = <&mmc4_pins_default>;
430	pinctrl-3 = <&mmc4_pins_default>;
431	#address-cells = <1>;
432	#size-cells = <0>;
433	wifi@2 {
434		compatible = "ti,wl1835";
435		reg = <2>;
436		interrupt-parent = <&gpio5>;
437		interrupts = <7 IRQ_TYPE_EDGE_RISING>;
438	};
439};
440
441&mac {
442	status = "okay";
443};
444
445&dcan1 {
446	status = "ok";
447	pinctrl-names = "default", "sleep", "active";
448	pinctrl-0 = <&dcan1_pins_sleep>;
449	pinctrl-1 = <&dcan1_pins_sleep>;
450	pinctrl-2 = <&dcan1_pins_default>;
451};
452
453&qspi {
454	status = "okay";
455
456	spi-max-frequency = <76800000>;
457	m25p80@0 {
458		compatible = "s25fl256s1";
459		spi-max-frequency = <76800000>;
460		reg = <0>;
461		spi-tx-bus-width = <1>;
462		spi-rx-bus-width = <4>;
463		#address-cells = <1>;
464		#size-cells = <1>;
465
466		/* MTD partition table.
467		 * The ROM checks the first four physical blocks
468		 * for a valid file to boot and the flash here is
469		 * 64KiB block size.
470		 */
471		partition@0 {
472			label = "QSPI.SPL";
473			reg = <0x00000000 0x000010000>;
474		};
475		partition@1 {
476			label = "QSPI.SPL.backup1";
477			reg = <0x00010000 0x00010000>;
478		};
479		partition@2 {
480			label = "QSPI.SPL.backup2";
481			reg = <0x00020000 0x00010000>;
482		};
483		partition@3 {
484			label = "QSPI.SPL.backup3";
485			reg = <0x00030000 0x00010000>;
486		};
487		partition@4 {
488			label = "QSPI.u-boot";
489			reg = <0x00040000 0x00100000>;
490		};
491		partition@5 {
492			label = "QSPI.u-boot-spl-os";
493			reg = <0x00140000 0x00080000>;
494		};
495		partition@6 {
496			label = "QSPI.u-boot-env";
497			reg = <0x001c0000 0x00010000>;
498		};
499		partition@7 {
500			label = "QSPI.u-boot-env.backup1";
501			reg = <0x001d0000 0x0010000>;
502		};
503		partition@8 {
504			label = "QSPI.kernel";
505			reg = <0x001e0000 0x0800000>;
506		};
507		partition@9 {
508			label = "QSPI.file-system";
509			reg = <0x009e0000 0x01620000>;
510		};
511	};
512};
513
514&dss {
515	status = "ok";
516};
517
518&hdmi {
519	status = "ok";
520
521	port {
522		hdmi_out: endpoint {
523			remote-endpoint = <&tpd12s015_in>;
524		};
525	};
526};
527
528&atl {
529	assigned-clocks = <&abe_dpll_sys_clk_mux>,
530			  <&atl_clkctrl DRA7_ATL_ATL_CLKCTRL 26>,
531			  <&dpll_abe_ck>,
532			  <&dpll_abe_m2x2_ck>,
533			  <&atl_clkin2_ck>;
534	assigned-clock-parents = <&sys_clkin2>, <&dpll_abe_m2_ck>;
535	assigned-clock-rates = <0>, <0>, <180633600>, <361267200>, <5644800>;
536
537	status = "okay";
538
539	atl2 {
540		bws = <DRA7_ATL_WS_MCASP2_FSX>;
541		aws = <DRA7_ATL_WS_MCASP3_FSX>;
542	};
543};
544
545&mcasp3 {
546	#sound-dai-cells = <0>;
547
548	assigned-clocks = <&l4per2_clkctrl DRA7_L4PER2_MCASP3_CLKCTRL 24>;
549	assigned-clock-parents = <&atl_clkin2_ck>;
550
551	status = "okay";
552
553	op-mode = <0>;          /* MCASP_IIS_MODE */
554	tdm-slots = <2>;
555	/* 4 serializer */
556	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
557		1 2 0 0
558	>;
559	tx-num-evt = <32>;
560	rx-num-evt = <32>;
561};
562
563&mailbox5 {
564	status = "okay";
565	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
566		status = "okay";
567	};
568	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
569		status = "okay";
570	};
571};
572
573&mailbox6 {
574	status = "okay";
575	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
576		status = "okay";
577	};
578};
579
580&pcie1_rc {
581	status = "okay";
582};