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