1/*
2 * Copyright (C) 2017 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 <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/clk/ti-dra7-atl.h>
11#include <dt-bindings/input/input.h>
12
13/ {
14	chosen {
15		stdout-path = &uart1;
16	};
17
18	extcon_usb1: extcon_usb1 {
19		compatible = "linux,extcon-usb-gpio";
20		id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
21	};
22
23	extcon_usb2: extcon_usb2 {
24		compatible = "linux,extcon-usb-gpio";
25		id-gpio = <&pcf_gpio_21 2 GPIO_ACTIVE_HIGH>;
26	};
27
28	sound0: sound0 {
29		compatible = "simple-audio-card";
30		simple-audio-card,name = "DRA7xx-EVM";
31		simple-audio-card,widgets =
32			"Headphone", "Headphone Jack",
33			"Line", "Line Out",
34			"Microphone", "Mic Jack",
35			"Line", "Line In";
36		simple-audio-card,routing =
37			"Headphone Jack",	"HPLOUT",
38			"Headphone Jack",	"HPROUT",
39			"Line Out",		"LLOUT",
40			"Line Out",		"RLOUT",
41			"MIC3L",		"Mic Jack",
42			"MIC3R",		"Mic Jack",
43			"Mic Jack",		"Mic Bias",
44			"LINE1L",		"Line In",
45			"LINE1R",		"Line In";
46		simple-audio-card,format = "dsp_b";
47		simple-audio-card,bitclock-master = <&sound0_master>;
48		simple-audio-card,frame-master = <&sound0_master>;
49		simple-audio-card,bitclock-inversion;
50
51		sound0_master: simple-audio-card,cpu {
52			sound-dai = <&mcasp3>;
53			system-clock-frequency = <5644800>;
54		};
55
56		simple-audio-card,codec {
57			sound-dai = <&tlv320aic3106>;
58			clocks = <&atl_clkin2_ck>;
59		};
60	};
61
62	leds {
63		compatible = "gpio-leds";
64		led0 {
65			label = "dra7:usr1";
66			gpios = <&pcf_lcd 4 GPIO_ACTIVE_LOW>;
67			default-state = "off";
68		};
69
70		led1 {
71			label = "dra7:usr2";
72			gpios = <&pcf_lcd 5 GPIO_ACTIVE_LOW>;
73			default-state = "off";
74		};
75
76		led2 {
77			label = "dra7:usr3";
78			gpios = <&pcf_lcd 6 GPIO_ACTIVE_LOW>;
79			default-state = "off";
80		};
81
82		led3 {
83			label = "dra7:usr4";
84			gpios = <&pcf_lcd 7 GPIO_ACTIVE_LOW>;
85			default-state = "off";
86		};
87	};
88
89	gpio_keys {
90		compatible = "gpio-keys";
91		#address-cells = <1>;
92		#size-cells = <0>;
93		autorepeat;
94
95		USER1 {
96			label = "btnUser1";
97			linux,code = <BTN_0>;
98			gpios = <&pcf_lcd 2 GPIO_ACTIVE_LOW>;
99		};
100
101		USER2 {
102			label = "btnUser2";
103			linux,code = <BTN_1>;
104			gpios = <&pcf_lcd 3 GPIO_ACTIVE_LOW>;
105		};
106	};
107};
108
109&i2c3 {
110	status = "okay";
111	clock-frequency = <400000>;
112};
113
114&mcspi1 {
115	status = "okay";
116};
117
118&mcspi2 {
119	status = "okay";
120};
121
122&uart1 {
123	status = "okay";
124	interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
125			      <&dra7_pmx_core 0x3e0>;
126};
127
128&uart2 {
129	status = "okay";
130};
131
132&uart3 {
133	status = "okay";
134};
135
136&qspi {
137	status = "okay";
138
139	spi-max-frequency = <76800000>;
140	m25p80@0 {
141		compatible = "s25fl256s1";
142		spi-max-frequency = <76800000>;
143		reg = <0>;
144		spi-tx-bus-width = <1>;
145		spi-rx-bus-width = <4>;
146		#address-cells = <1>;
147		#size-cells = <1>;
148
149		/* MTD partition table.
150		 * The ROM checks the first four physical blocks
151		 * for a valid file to boot and the flash here is
152		 * 64KiB block size.
153		 */
154		partition@0 {
155			label = "QSPI.SPL";
156			reg = <0x00000000 0x000010000>;
157		};
158		partition@1 {
159			label = "QSPI.SPL.backup1";
160			reg = <0x00010000 0x00010000>;
161		};
162		partition@2 {
163			label = "QSPI.SPL.backup2";
164			reg = <0x00020000 0x00010000>;
165		};
166		partition@3 {
167			label = "QSPI.SPL.backup3";
168			reg = <0x00030000 0x00010000>;
169		};
170		partition@4 {
171			label = "QSPI.u-boot";
172			reg = <0x00040000 0x00100000>;
173		};
174		partition@5 {
175			label = "QSPI.u-boot-spl-os";
176			reg = <0x00140000 0x00080000>;
177		};
178		partition@6 {
179			label = "QSPI.u-boot-env";
180			reg = <0x001c0000 0x00010000>;
181		};
182		partition@7 {
183			label = "QSPI.u-boot-env.backup1";
184			reg = <0x001d0000 0x0010000>;
185		};
186		partition@8 {
187			label = "QSPI.kernel";
188			reg = <0x001e0000 0x0800000>;
189		};
190		partition@9 {
191			label = "QSPI.file-system";
192			reg = <0x009e0000 0x01620000>;
193		};
194	};
195};
196
197&omap_dwc3_1 {
198	extcon = <&extcon_usb1>;
199};
200
201&usb1 {
202	dr_mode = "otg";
203	extcon = <&extcon_usb1>;
204};
205
206&omap_dwc3_2 {
207	extcon = <&extcon_usb2>;
208};
209
210&usb2 {
211	dr_mode = "host";
212	extcon = <&extcon_usb2>;
213};
214
215&atl {
216	assigned-clocks = <&abe_dpll_sys_clk_mux>,
217			  <&atl_clkctrl DRA7_ATL_CLKCTRL 26>,
218			  <&dpll_abe_ck>,
219			  <&dpll_abe_m2x2_ck>,
220			  <&atl_clkin2_ck>;
221	assigned-clock-parents = <&sys_clkin2>, <&dpll_abe_m2_ck>;
222	assigned-clock-rates = <0>, <0>, <180633600>, <361267200>, <5644800>;
223
224	status = "okay";
225
226	atl2 {
227		bws = <DRA7_ATL_WS_MCASP2_FSX>;
228		aws = <DRA7_ATL_WS_MCASP3_FSX>;
229	};
230};
231
232&mcasp3 {
233	#sound-dai-cells = <0>;
234
235	assigned-clocks = <&l4per_clkctrl DRA7_MCASP3_CLKCTRL 24>;
236	assigned-clock-parents = <&atl_clkin2_ck>;
237
238	status = "okay";
239
240	op-mode = <0>;          /* MCASP_IIS_MODE */
241	tdm-slots = <2>;
242	/* 4 serializer */
243	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
244		1 2 0 0
245	>;
246	tx-num-evt = <32>;
247	rx-num-evt = <32>;
248};
249
250&mailbox5 {
251	status = "okay";
252	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
253		status = "okay";
254	};
255	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
256		status = "okay";
257	};
258};
259
260&mailbox6 {
261	status = "okay";
262	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
263		status = "okay";
264	};
265	mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
266		status = "okay";
267	};
268};
269
270&pcie1_rc {
271	status = "okay";
272};
273
274&mmc4 {
275	bus-width = <4>;
276	cap-power-off-card;
277	keep-power-in-suspend;
278	non-removable;
279	#address-cells = <1>;
280	#size-cells = <0>;
281	wifi@2 {
282		compatible = "ti,wl1835";
283		reg = <2>;
284		interrupt-parent = <&gpio5>;
285		interrupts = <7 IRQ_TYPE_EDGE_RISING>;
286	};
287};
288