Merge branch 'for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / tegra20-colibri-512.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 #include "tegra20.dtsi"
3
4 / {
5         model = "Toradex Colibri T20 512MB";
6         compatible = "toradex,colibri_t20-512", "nvidia,tegra20";
7
8         aliases {
9                 rtc0 = "/i2c@7000d000/tps6586x@34";
10                 rtc1 = "/rtc@7000e000";
11         };
12
13         memory {
14                 reg = <0x00000000 0x20000000>;
15         };
16
17         host1x@50000000 {
18                 hdmi@54280000 {
19                         vdd-supply = <&hdmi_vdd_reg>;
20                         pll-supply = <&hdmi_pll_reg>;
21
22                         nvidia,ddc-i2c-bus = <&i2c_ddc>;
23                         nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
24                                 GPIO_ACTIVE_HIGH>;
25                 };
26         };
27
28         pinmux@70000014 {
29                 pinctrl-names = "default";
30                 pinctrl-0 = <&state_default>;
31
32                 state_default: pinmux {
33                         audio_refclk {
34                                 nvidia,pins = "cdev1";
35                                 nvidia,function = "plla_out";
36                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
37                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
38                         };
39                         crt {
40                                 nvidia,pins = "crtp";
41                                 nvidia,function = "crt";
42                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
43                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
44                         };
45                         dap3 {
46                                 nvidia,pins = "dap3";
47                                 nvidia,function = "dap3";
48                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
49                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
50                         };
51                         displaya {
52                                 nvidia,pins = "ld0", "ld1", "ld2", "ld3",
53                                         "ld4", "ld5", "ld6", "ld7", "ld8",
54                                         "ld9", "ld10", "ld11", "ld12", "ld13",
55                                         "ld14", "ld15", "ld16", "ld17",
56                                         "lhs", "lpw0", "lpw2", "lsc0",
57                                         "lsc1", "lsck", "lsda", "lspi", "lvs";
58                                 nvidia,function = "displaya";
59                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
60                         };
61                         gpio_dte {
62                                 nvidia,pins = "dte";
63                                 nvidia,function = "rsvd1";
64                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
65                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
66                         };
67                         gpio_gmi {
68                                 nvidia,pins = "ata", "atc", "atd", "ate",
69                                         "dap1", "dap2", "dap4", "gpu", "irrx",
70                                         "irtx", "spia", "spib", "spic";
71                                 nvidia,function = "gmi";
72                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
73                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
74                         };
75                         gpio_pta {
76                                 nvidia,pins = "pta";
77                                 nvidia,function = "rsvd4";
78                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
79                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
80                         };
81                         gpio_uac {
82                                 nvidia,pins = "uac";
83                                 nvidia,function = "rsvd2";
84                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
85                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
86                         };
87                         hdint {
88                                 nvidia,pins = "hdint";
89                                 nvidia,function = "hdmi";
90                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
91                         };
92                         i2c1 {
93                                 nvidia,pins = "rm";
94                                 nvidia,function = "i2c1";
95                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
96                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
97                         };
98                         i2c3 {
99                                 nvidia,pins = "dtf";
100                                 nvidia,function = "i2c3";
101                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
102                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
103                         };
104                         i2cddc {
105                                 nvidia,pins = "ddc";
106                                 nvidia,function = "i2c2";
107                                 nvidia,pull = <TEGRA_PIN_PULL_UP>;
108                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
109                         };
110                         i2cp {
111                                 nvidia,pins = "i2cp";
112                                 nvidia,function = "i2cp";
113                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
114                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
115                         };
116                         irda {
117                                 nvidia,pins = "uad";
118                                 nvidia,function = "irda";
119                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
120                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
121                         };
122                         nand {
123                                 nvidia,pins = "kbca", "kbcc", "kbcd",
124                                         "kbce", "kbcf";
125                                 nvidia,function = "nand";
126                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
127                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
128                         };
129                         owc {
130                                 nvidia,pins = "owc";
131                                 nvidia,function = "owr";
132                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
133                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
134                         };
135                         pmc {
136                                 nvidia,pins = "pmc";
137                                 nvidia,function = "pwr_on";
138                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
139                         };
140                         pwm {
141                                 nvidia,pins = "sdb", "sdc", "sdd";
142                                 nvidia,function = "pwm";
143                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
144                         };
145                         sdio4 {
146                                 nvidia,pins = "atb", "gma", "gme";
147                                 nvidia,function = "sdio4";
148                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
149                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
150                         };
151                         spi1 {
152                                 nvidia,pins = "spid", "spie", "spif";
153                                 nvidia,function = "spi1";
154                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
155                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
156                         };
157                         spi4 {
158                                 nvidia,pins = "slxa", "slxc", "slxd", "slxk";
159                                 nvidia,function = "spi4";
160                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
161                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
162                         };
163                         uarta {
164                                 nvidia,pins = "sdio1";
165                                 nvidia,function = "uarta";
166                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
167                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
168                         };
169                         uartd {
170                                 nvidia,pins = "gmc";
171                                 nvidia,function = "uartd";
172                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
173                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
174                         };
175                         ulpi {
176                                 nvidia,pins = "uaa", "uab", "uda";
177                                 nvidia,function = "ulpi";
178                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
179                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
180                         };
181                         ulpi_refclk {
182                                 nvidia,pins = "cdev2";
183                                 nvidia,function = "pllp_out4";
184                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
185                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
186                         };
187                         usb_gpio {
188                                 nvidia,pins = "spig", "spih";
189                                 nvidia,function = "spi2_alt";
190                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
191                                 nvidia,tristate = <TEGRA_PIN_DISABLE>;
192                         };
193                         vi {
194                                 nvidia,pins = "dta", "dtb", "dtc", "dtd";
195                                 nvidia,function = "vi";
196                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
197                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
198                         };
199                         vi_sc {
200                                 nvidia,pins = "csus";
201                                 nvidia,function = "vi_sensor_clk";
202                                 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
203                                 nvidia,tristate = <TEGRA_PIN_ENABLE>;
204                         };
205                 };
206         };
207
208         ac97: ac97@70002000 {
209                 status = "okay";
210                 nvidia,codec-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
211                         GPIO_ACTIVE_HIGH>;
212                 nvidia,codec-sync-gpio = <&gpio TEGRA_GPIO(P, 0)
213                         GPIO_ACTIVE_HIGH>;
214         };
215
216         i2c@7000c000 {
217                 clock-frequency = <400000>;
218         };
219
220         i2c_ddc: i2c@7000c400 {
221                 clock-frequency = <100000>;
222         };
223
224         i2c@7000c500 {
225                 clock-frequency = <400000>;
226         };
227
228         i2c@7000d000 {
229                 status = "okay";
230                 clock-frequency = <400000>;
231
232                 pmic: tps6586x@34 {
233                         compatible = "ti,tps6586x";
234                         reg = <0x34>;
235                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
236
237                         ti,system-power-controller;
238
239                         #gpio-cells = <2>;
240                         gpio-controller;
241
242                         sys-supply = <&vdd_3v3_reg>;
243                         vin-sm0-supply = <&sys_reg>;
244                         vin-sm1-supply = <&sys_reg>;
245                         vin-sm2-supply = <&sys_reg>;
246                         vinldo01-supply = <&sm2_reg>;
247                         vinldo23-supply = <&vdd_3v3_reg>;
248                         vinldo4-supply = <&vdd_3v3_reg>;
249                         vinldo678-supply = <&vdd_3v3_reg>;
250                         vinldo9-supply = <&vdd_3v3_reg>;
251
252                         regulators {
253                                 #address-cells = <1>;
254                                 #size-cells = <0>;
255
256                                 sys_reg: regulator@0 {
257                                         reg = <0>;
258                                         regulator-compatible = "sys";
259                                         regulator-name = "vdd_sys";
260                                         regulator-always-on;
261                                 };
262
263                                 regulator@1 {
264                                         reg = <1>;
265                                         regulator-compatible = "sm0";
266                                         regulator-name = "vdd_sm0,vdd_core";
267                                         regulator-min-microvolt = <1200000>;
268                                         regulator-max-microvolt = <1200000>;
269                                         regulator-always-on;
270                                 };
271
272                                 regulator@2 {
273                                         reg = <2>;
274                                         regulator-compatible = "sm1";
275                                         regulator-name = "vdd_sm1,vdd_cpu";
276                                         regulator-min-microvolt = <1000000>;
277                                         regulator-max-microvolt = <1000000>;
278                                         regulator-always-on;
279                                 };
280
281                                 sm2_reg: regulator@3 {
282                                         reg = <3>;
283                                         regulator-compatible = "sm2";
284                                         regulator-name = "vdd_sm2,vin_ldo*";
285                                         regulator-min-microvolt = <1800000>;
286                                         regulator-max-microvolt = <1800000>;
287                                         regulator-always-on;
288                                 };
289
290                                 /* LDO0 is not connected to anything */
291
292                                 regulator@5 {
293                                         reg = <5>;
294                                         regulator-compatible = "ldo1";
295                                         regulator-name = "vdd_ldo1,avdd_pll*";
296                                         regulator-min-microvolt = <1100000>;
297                                         regulator-max-microvolt = <1100000>;
298                                         regulator-always-on;
299                                 };
300
301                                 regulator@6 {
302                                         reg = <6>;
303                                         regulator-compatible = "ldo2";
304                                         regulator-name = "vdd_ldo2,vdd_rtc";
305                                         regulator-min-microvolt = <1200000>;
306                                         regulator-max-microvolt = <1200000>;
307                                 };
308
309                                 /* LDO3 is not connected to anything */
310
311                                 regulator@8 {
312                                         reg = <8>;
313                                         regulator-compatible = "ldo4";
314                                         regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
315                                         regulator-min-microvolt = <1800000>;
316                                         regulator-max-microvolt = <1800000>;
317                                         regulator-always-on;
318                                 };
319
320                                 ldo5_reg: regulator@9 {
321                                         reg = <9>;
322                                         regulator-compatible = "ldo5";
323                                         regulator-name = "vdd_ldo5,vdd_fuse";
324                                         regulator-min-microvolt = <3300000>;
325                                         regulator-max-microvolt = <3300000>;
326                                         regulator-always-on;
327                                 };
328
329                                 regulator@10 {
330                                         reg = <10>;
331                                         regulator-compatible = "ldo6";
332                                         regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam";
333                                         regulator-min-microvolt = <2850000>;
334                                         regulator-max-microvolt = <2850000>;
335                                 };
336
337                                 hdmi_vdd_reg: regulator@11 {
338                                         reg = <11>;
339                                         regulator-compatible = "ldo7";
340                                         regulator-name = "vdd_ldo7,avdd_hdmi";
341                                         regulator-min-microvolt = <3300000>;
342                                         regulator-max-microvolt = <3300000>;
343                                 };
344
345                                 hdmi_pll_reg: regulator@12 {
346                                         reg = <12>;
347                                         regulator-compatible = "ldo8";
348                                         regulator-name = "vdd_ldo8,avdd_hdmi_pll";
349                                         regulator-min-microvolt = <1800000>;
350                                         regulator-max-microvolt = <1800000>;
351                                 };
352
353                                 regulator@13 {
354                                         reg = <13>;
355                                         regulator-compatible = "ldo9";
356                                         regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
357                                         regulator-min-microvolt = <2850000>;
358                                         regulator-max-microvolt = <2850000>;
359                                         regulator-always-on;
360                                 };
361
362                                 regulator@14 {
363                                         reg = <14>;
364                                         regulator-compatible = "ldo_rtc";
365                                         regulator-name = "vdd_rtc_out,vdd_cell";
366                                         regulator-min-microvolt = <3300000>;
367                                         regulator-max-microvolt = <3300000>;
368                                         regulator-always-on;
369                                 };
370                         };
371                 };
372
373                 temperature-sensor@4c {
374                         compatible = "national,lm95245";
375                         reg = <0x4c>;
376                 };
377         };
378
379         pmc@7000e400 {
380                 nvidia,suspend-mode = <1>;
381                 nvidia,cpu-pwr-good-time = <5000>;
382                 nvidia,cpu-pwr-off-time = <5000>;
383                 nvidia,core-pwr-good-time = <3845 3845>;
384                 nvidia,core-pwr-off-time = <3875>;
385                 nvidia,sys-clock-req-active-high;
386         };
387
388         memory-controller@7000f400 {
389                 emc-table@83250 {
390                         reg = <83250>;
391                         compatible = "nvidia,tegra20-emc-table";
392                         clock-frequency = <83250>;
393                         nvidia,emc-registers =   <0x00000005 0x00000011
394                                 0x00000004 0x00000002 0x00000004 0x00000004
395                                 0x00000001 0x0000000a 0x00000002 0x00000002
396                                 0x00000001 0x00000001 0x00000003 0x00000004
397                                 0x00000003 0x00000009 0x0000000c 0x0000025f
398                                 0x00000000 0x00000003 0x00000003 0x00000002
399                                 0x00000002 0x00000001 0x00000008 0x000000c8
400                                 0x00000003 0x00000005 0x00000003 0x0000000c
401                                 0x00000002 0x00000000 0x00000000 0x00000002
402                                 0x00000000 0x00000000 0x00000083 0x00520006
403                                 0x00000010 0x00000008 0x00000000 0x00000000
404                                 0x00000000 0x00000000 0x00000000 0x00000000>;
405                 };
406                 emc-table@133200 {
407                         reg = <133200>;
408                         compatible = "nvidia,tegra20-emc-table";
409                         clock-frequency = <133200>;
410                         nvidia,emc-registers =   <0x00000008 0x00000019
411                                 0x00000006 0x00000002 0x00000004 0x00000004
412                                 0x00000001 0x0000000a 0x00000002 0x00000002
413                                 0x00000002 0x00000001 0x00000003 0x00000004
414                                 0x00000003 0x00000009 0x0000000c 0x0000039f
415                                 0x00000000 0x00000003 0x00000003 0x00000002
416                                 0x00000002 0x00000001 0x00000008 0x000000c8
417                                 0x00000003 0x00000007 0x00000003 0x0000000c
418                                 0x00000002 0x00000000 0x00000000 0x00000002
419                                 0x00000000 0x00000000 0x00000083 0x00510006
420                                 0x00000010 0x00000008 0x00000000 0x00000000
421                                 0x00000000 0x00000000 0x00000000 0x00000000>;
422                 };
423                 emc-table@166500 {
424                         reg = <166500>;
425                         compatible = "nvidia,tegra20-emc-table";
426                         clock-frequency = <166500>;
427                         nvidia,emc-registers =   <0x0000000a 0x00000021
428                                 0x00000008 0x00000003 0x00000004 0x00000004
429                                 0x00000002 0x0000000a 0x00000003 0x00000003
430                                 0x00000002 0x00000001 0x00000003 0x00000004
431                                 0x00000003 0x00000009 0x0000000c 0x000004df
432                                 0x00000000 0x00000003 0x00000003 0x00000003
433                                 0x00000003 0x00000001 0x00000009 0x000000c8
434                                 0x00000003 0x00000009 0x00000004 0x0000000c
435                                 0x00000002 0x00000000 0x00000000 0x00000002
436                                 0x00000000 0x00000000 0x00000083 0x004f0006
437                                 0x00000010 0x00000008 0x00000000 0x00000000
438                                 0x00000000 0x00000000 0x00000000 0x00000000>;
439                 };
440                 emc-table@333000 {
441                         reg = <333000>;
442                         compatible = "nvidia,tegra20-emc-table";
443                         clock-frequency = <333000>;
444                         nvidia,emc-registers =   <0x00000014 0x00000041
445                                 0x0000000f 0x00000005 0x00000004 0x00000005
446                                 0x00000003 0x0000000a 0x00000005 0x00000005
447                                 0x00000004 0x00000001 0x00000003 0x00000004
448                                 0x00000003 0x00000009 0x0000000c 0x000009ff
449                                 0x00000000 0x00000003 0x00000003 0x00000005
450                                 0x00000005 0x00000001 0x0000000e 0x000000c8
451                                 0x00000003 0x00000011 0x00000006 0x0000000c
452                                 0x00000002 0x00000000 0x00000000 0x00000002
453                                 0x00000000 0x00000000 0x00000083 0x00380006
454                                 0x00000010 0x00000008 0x00000000 0x00000000
455                                 0x00000000 0x00000000 0x00000000 0x00000000>;
456                 };
457         };
458
459         usb@c5004000 {
460                 status = "okay";
461                 nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
462                         GPIO_ACTIVE_LOW>;
463         };
464
465         usb-phy@c5004000 {
466                 status = "okay";
467                 nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
468                         GPIO_ACTIVE_LOW>;
469         };
470
471         sdhci@c8000600 {
472                 cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>;
473         };
474
475         clocks {
476                 compatible = "simple-bus";
477                 #address-cells = <1>;
478                 #size-cells = <0>;
479
480                 clk32k_in: clock@0 {
481                         compatible = "fixed-clock";
482                         reg = <0>;
483                         #clock-cells = <0>;
484                         clock-frequency = <32768>;
485                 };
486         };
487
488         regulators {
489                 compatible = "simple-bus";
490                 #address-cells = <1>;
491                 #size-cells = <0>;
492
493                 vdd_3v3_reg: regulator@100 {
494                         compatible = "regulator-fixed";
495                         reg = <100>;
496                         regulator-name = "vdd_3v3";
497                         regulator-min-microvolt = <3300000>;
498                         regulator-max-microvolt = <3300000>;
499                         regulator-always-on;
500                 };
501
502                 regulator@101 {
503                         compatible = "regulator-fixed";
504                         reg = <101>;
505                         regulator-name = "internal_usb";
506                         regulator-min-microvolt = <5000000>;
507                         regulator-max-microvolt = <5000000>;
508                         enable-active-high;
509                         regulator-boot-on;
510                         regulator-always-on;
511                         gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>;
512                 };
513         };
514
515         sound {
516                 compatible = "nvidia,tegra-audio-wm9712-colibri_t20",
517                                  "nvidia,tegra-audio-wm9712";
518                 nvidia,model = "Colibri T20 AC97 Audio";
519
520                 nvidia,audio-routing =
521                         "Headphone", "HPOUTL",
522                         "Headphone", "HPOUTR",
523                         "LineIn", "LINEINL",
524                         "LineIn", "LINEINR",
525                         "Mic", "MIC1";
526
527                 nvidia,ac97-controller = <&ac97>;
528
529                 clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
530                          <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
531                          <&tegra_car TEGRA20_CLK_CDEV1>;
532                 clock-names = "pll_a", "pll_a_out0", "mclk";
533         };
534 };