treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / dra72-evm-common.dtsi
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 };