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