Merge remote-tracking branch 'regulator/for-5.7' into regulator-linus
[linux-2.6-microblaze.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/clock/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         clk_ov5640_fixed: clock {
192                 compatible = "fixed-clock";
193                 #clock-cells = <0>;
194                 clock-frequency = <24000000>;
195         };
196 };
197
198 &dra7_pmx_core {
199         dcan1_pins_default: dcan1_pins_default {
200                 pinctrl-single,pins = <
201                         DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */
202                         DRA7XX_CORE_IOPAD(0x3818, PULL_UP | MUX_MODE1)  /* wakeup0.dcan1_rx */
203                 >;
204         };
205
206         dcan1_pins_sleep: dcan1_pins_sleep {
207                 pinctrl-single,pins = <
208                         DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP) /* dcan1_tx.off */
209                         DRA7XX_CORE_IOPAD(0x3818, MUX_MODE15 | PULL_UP) /* wakeup0.off */
210                 >;
211         };
212 };
213
214 &i2c1 {
215         status = "okay";
216         clock-frequency = <400000>;
217
218         pcf_lcd: gpio@20 {
219                 compatible = "nxp,pcf8575";
220                 reg = <0x20>;
221                 gpio-controller;
222                 #gpio-cells = <2>;
223                 interrupt-controller;
224                 #interrupt-cells = <2>;
225         };
226
227         pcf_gpio_21: gpio@21 {
228                 compatible = "ti,pcf8575", "nxp,pcf8575";
229                 reg = <0x21>;
230                 lines-initial-states = <0x1408>;
231                 gpio-controller;
232                 #gpio-cells = <2>;
233                 interrupt-controller;
234                 #interrupt-cells = <2>;
235         };
236
237         tlv320aic3106: tlv320aic3106@19 {
238                 #sound-dai-cells = <0>;
239                 compatible = "ti,tlv320aic3106";
240                 reg = <0x19>;
241                 adc-settle-ms = <40>;
242                 ai3x-micbias-vg = <1>;          /* 2.0V */
243                 status = "okay";
244
245                 /* Regulators */
246                 AVDD-supply = <&evm_3v3_sw>;
247                 IOVDD-supply = <&evm_3v3_sw>;
248                 DRVDD-supply = <&evm_3v3_sw>;
249                 DVDD-supply = <&aic_dvdd>;
250         };
251 };
252
253 &i2c5 {
254         status = "okay";
255         clock-frequency = <400000>;
256
257         pcf_hdmi: pcf8575@26 {
258                 compatible = "ti,pcf8575", "nxp,pcf8575";
259                 reg = <0x26>;
260                 gpio-controller;
261                 #gpio-cells = <2>;
262                 /*
263                  * initial state is used here to keep the mdio interface
264                  * selected on RU89 through SEL_VIN4_MUX_S0, VIN2_S1 and
265                  * VIN2_S0 driven high otherwise Ethernet stops working
266                  * VIN6_SEL_S0 is low, thus selecting McASP3 over VIN6
267                  */
268                 lines-initial-states = <0x0f2b>;
269
270                 p1 {
271                         /* vin6_sel_s0: high: VIN6, low: audio */
272                         gpio-hog;
273                         gpios = <1 GPIO_ACTIVE_HIGH>;
274                         output-low;
275                         line-name = "vin6_sel_s0";
276                 };
277         };
278
279         ov5640@3c {
280                 compatible = "ovti,ov5640";
281                 reg = <0x3c>;
282
283                 clocks = <&clk_ov5640_fixed>;
284                 clock-names = "xclk";
285
286                 port {
287                         csi2_cam0: endpoint {
288                                 remote-endpoint = <&csi2_phy0>;
289                                 clock-lanes = <0>;
290                                 data-lanes = <1 2>;
291                         };
292                 };
293         };
294
295 };
296
297 &uart1 {
298         status = "okay";
299         interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
300                               <&dra7_pmx_core 0x3e0>;
301 };
302
303 &elm {
304         status = "okay";
305 };
306
307 &gpmc {
308         /*
309          * For the existing IOdelay configuration via U-Boot we don't
310          * support NAND on dra72-evm. Keep it disabled. Enabling it
311          * requires a different configuration by U-Boot.
312          */
313         status = "disabled";
314         ranges = <0 0 0x08000000 0x01000000>;   /* minimum GPMC partition = 16MB */
315         nand@0,0 {
316                 /* To use NAND, DIP switch SW5 must be set like so:
317                  * SW5.1 (NAND_SELn) = ON (LOW)
318                  * SW5.9 (GPMC_WPN) = OFF (HIGH)
319                  */
320                 compatible = "ti,omap2-nand";
321                 reg = <0 0 4>;          /* device IO registers */
322                 interrupt-parent = <&gpmc>;
323                 interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
324                              <1 IRQ_TYPE_NONE>; /* termcount */
325                 rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 pin */
326                 ti,nand-xfer-type = "prefetch-dma";
327                 ti,nand-ecc-opt = "bch8";
328                 ti,elm-id = <&elm>;
329                 nand-bus-width = <16>;
330                 gpmc,device-width = <2>;
331                 gpmc,sync-clk-ps = <0>;
332                 gpmc,cs-on-ns = <0>;
333                 gpmc,cs-rd-off-ns = <80>;
334                 gpmc,cs-wr-off-ns = <80>;
335                 gpmc,adv-on-ns = <0>;
336                 gpmc,adv-rd-off-ns = <60>;
337                 gpmc,adv-wr-off-ns = <60>;
338                 gpmc,we-on-ns = <10>;
339                 gpmc,we-off-ns = <50>;
340                 gpmc,oe-on-ns = <4>;
341                 gpmc,oe-off-ns = <40>;
342                 gpmc,access-ns = <40>;
343                 gpmc,wr-access-ns = <80>;
344                 gpmc,rd-cycle-ns = <80>;
345                 gpmc,wr-cycle-ns = <80>;
346                 gpmc,bus-turnaround-ns = <0>;
347                 gpmc,cycle2cycle-delay-ns = <0>;
348                 gpmc,clk-activation-ns = <0>;
349                 gpmc,wr-data-mux-bus-ns = <0>;
350                 /* MTD partition table */
351                 /* All SPL-* partitions are sized to minimal length
352                  * which can be independently programmable. For
353                  * NAND flash this is equal to size of erase-block */
354                 #address-cells = <1>;
355                 #size-cells = <1>;
356                 partition@0 {
357                         label = "NAND.SPL";
358                         reg = <0x00000000 0x000020000>;
359                 };
360                 partition@1 {
361                         label = "NAND.SPL.backup1";
362                         reg = <0x00020000 0x00020000>;
363                 };
364                 partition@2 {
365                         label = "NAND.SPL.backup2";
366                         reg = <0x00040000 0x00020000>;
367                 };
368                 partition@3 {
369                         label = "NAND.SPL.backup3";
370                         reg = <0x00060000 0x00020000>;
371                 };
372                 partition@4 {
373                         label = "NAND.u-boot-spl-os";
374                         reg = <0x00080000 0x00040000>;
375                 };
376                 partition@5 {
377                         label = "NAND.u-boot";
378                         reg = <0x000c0000 0x00100000>;
379                 };
380                 partition@6 {
381                         label = "NAND.u-boot-env";
382                         reg = <0x001c0000 0x00020000>;
383                 };
384                 partition@7 {
385                         label = "NAND.u-boot-env.backup1";
386                         reg = <0x001e0000 0x00020000>;
387                 };
388                 partition@8 {
389                         label = "NAND.kernel";
390                         reg = <0x00200000 0x00800000>;
391                 };
392                 partition@9 {
393                         label = "NAND.file-system";
394                         reg = <0x00a00000 0x0f600000>;
395                 };
396         };
397 };
398
399 &omap_dwc3_1 {
400         extcon = <&extcon_usb1>;
401 };
402
403 &omap_dwc3_2 {
404         extcon = <&extcon_usb2>;
405 };
406
407 &usb1 {
408         dr_mode = "otg";
409         extcon = <&extcon_usb1>;
410 };
411
412 &usb2 {
413         dr_mode = "host";
414         extcon = <&extcon_usb2>;
415 };
416
417 &mmc1 {
418         status = "okay";
419         pinctrl-names = "default";
420         pinctrl-0 = <&mmc1_pins_default>;
421         vmmc-supply = <&evm_3v3_sd>;
422         bus-width = <4>;
423         /*
424          * SDCD signal is not being used here - using the fact that GPIO mode
425          * is a viable alternative
426          */
427         cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
428         max-frequency = <192000000>;
429 };
430
431 &mmc2 {
432         /* SW5-3 in ON position */
433         status = "okay";
434         pinctrl-names = "default";
435         pinctrl-0 = <&mmc2_pins_default>;
436         bus-width = <8>;
437         non-removable;
438         max-frequency = <192000000>;
439 };
440
441 &mmc4 {
442         status = "okay";
443         vmmc-supply = <&evm_3v6>;
444         vqmmc-supply = <&vmmcwl_fixed>;
445         bus-width = <4>;
446         cap-power-off-card;
447         keep-power-in-suspend;
448         non-removable;
449         pinctrl-names = "default", "hs", "sdr12", "sdr25";
450         pinctrl-0 = <&mmc4_pins_default>;
451         pinctrl-1 = <&mmc4_pins_default>;
452         pinctrl-2 = <&mmc4_pins_default>;
453         pinctrl-3 = <&mmc4_pins_default>;
454         #address-cells = <1>;
455         #size-cells = <0>;
456         wifi@2 {
457                 compatible = "ti,wl1835";
458                 reg = <2>;
459                 interrupt-parent = <&gpio5>;
460                 interrupts = <7 IRQ_TYPE_EDGE_RISING>;
461         };
462 };
463
464 &mac {
465         status = "okay";
466 };
467
468 &dcan1 {
469         status = "ok";
470         pinctrl-names = "default", "sleep", "active";
471         pinctrl-0 = <&dcan1_pins_sleep>;
472         pinctrl-1 = <&dcan1_pins_sleep>;
473         pinctrl-2 = <&dcan1_pins_default>;
474 };
475
476 &qspi {
477         status = "okay";
478
479         spi-max-frequency = <76800000>;
480         m25p80@0 {
481                 compatible = "s25fl256s1";
482                 spi-max-frequency = <76800000>;
483                 reg = <0>;
484                 spi-tx-bus-width = <1>;
485                 spi-rx-bus-width = <4>;
486                 #address-cells = <1>;
487                 #size-cells = <1>;
488
489                 /* MTD partition table.
490                  * The ROM checks the first four physical blocks
491                  * for a valid file to boot and the flash here is
492                  * 64KiB block size.
493                  */
494                 partition@0 {
495                         label = "QSPI.SPL";
496                         reg = <0x00000000 0x000010000>;
497                 };
498                 partition@1 {
499                         label = "QSPI.SPL.backup1";
500                         reg = <0x00010000 0x00010000>;
501                 };
502                 partition@2 {
503                         label = "QSPI.SPL.backup2";
504                         reg = <0x00020000 0x00010000>;
505                 };
506                 partition@3 {
507                         label = "QSPI.SPL.backup3";
508                         reg = <0x00030000 0x00010000>;
509                 };
510                 partition@4 {
511                         label = "QSPI.u-boot";
512                         reg = <0x00040000 0x00100000>;
513                 };
514                 partition@5 {
515                         label = "QSPI.u-boot-spl-os";
516                         reg = <0x00140000 0x00080000>;
517                 };
518                 partition@6 {
519                         label = "QSPI.u-boot-env";
520                         reg = <0x001c0000 0x00010000>;
521                 };
522                 partition@7 {
523                         label = "QSPI.u-boot-env.backup1";
524                         reg = <0x001d0000 0x0010000>;
525                 };
526                 partition@8 {
527                         label = "QSPI.kernel";
528                         reg = <0x001e0000 0x0800000>;
529                 };
530                 partition@9 {
531                         label = "QSPI.file-system";
532                         reg = <0x009e0000 0x01620000>;
533                 };
534         };
535 };
536
537 &dss {
538         status = "ok";
539 };
540
541 &hdmi {
542         status = "ok";
543
544         port {
545                 hdmi_out: endpoint {
546                         remote-endpoint = <&tpd12s015_in>;
547                 };
548         };
549 };
550
551 &atl {
552         assigned-clocks = <&abe_dpll_sys_clk_mux>,
553                           <&atl_clkctrl DRA7_ATL_ATL_CLKCTRL 26>,
554                           <&dpll_abe_ck>,
555                           <&dpll_abe_m2x2_ck>,
556                           <&atl_clkin2_ck>;
557         assigned-clock-parents = <&sys_clkin2>, <&dpll_abe_m2_ck>;
558         assigned-clock-rates = <0>, <0>, <180633600>, <361267200>, <5644800>;
559
560         status = "okay";
561
562         atl2 {
563                 bws = <DRA7_ATL_WS_MCASP2_FSX>;
564                 aws = <DRA7_ATL_WS_MCASP3_FSX>;
565         };
566 };
567
568 &mcasp3 {
569         #sound-dai-cells = <0>;
570
571         assigned-clocks = <&l4per2_clkctrl DRA7_L4PER2_MCASP3_CLKCTRL 24>;
572         assigned-clock-parents = <&atl_clkin2_ck>;
573
574         status = "okay";
575
576         op-mode = <0>;          /* MCASP_IIS_MODE */
577         tdm-slots = <2>;
578         /* 4 serializer */
579         serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
580                 1 2 0 0
581         >;
582         tx-num-evt = <32>;
583         rx-num-evt = <32>;
584 };
585
586 &mailbox5 {
587         status = "okay";
588         mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
589                 status = "okay";
590         };
591         mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
592                 status = "okay";
593         };
594 };
595
596 &mailbox6 {
597         status = "okay";
598         mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
599                 status = "okay";
600         };
601 };
602
603 &pcie1_rc {
604         status = "okay";
605 };
606
607 &csi2_0 {
608         csi2_phy0: endpoint {
609                 remote-endpoint = <&csi2_cam0>;
610                 clock-lanes = <0>;
611                 data-lanes = <1 2>;
612         };
613 };