Loading...
1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3
4#include <dt-bindings/input/input.h>
5#include "tegra20.dtsi"
6
7/ {
8 model = "NVIDIA Seaboard";
9 compatible = "nvidia,seaboard", "nvidia,tegra20";
10
11 aliases {
12 rtc0 = "/i2c@7000d000/tps6586x@34";
13 rtc1 = "/rtc@7000e000";
14 serial0 = &uartd;
15 };
16
17 chosen {
18 stdout-path = "serial0:115200n8";
19 };
20
21 memory {
22 reg = <0x00000000 0x40000000>;
23 };
24
25 host1x@50000000 {
26 dc@54200000 {
27 rgb {
28 status = "okay";
29
30 nvidia,panel = <&panel>;
31 };
32 };
33
34 hdmi@54280000 {
35 status = "okay";
36
37 vdd-supply = <&hdmi_vdd_reg>;
38 pll-supply = <&hdmi_pll_reg>;
39 hdmi-supply = <&vdd_hdmi>;
40
41 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
42 nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
43 GPIO_ACTIVE_HIGH>;
44 };
45 };
46
47 pinmux@70000014 {
48 pinctrl-names = "default";
49 pinctrl-0 = <&state_default>;
50
51 state_default: pinmux {
52 ata {
53 nvidia,pins = "ata";
54 nvidia,function = "ide";
55 };
56 atb {
57 nvidia,pins = "atb", "gma", "gme";
58 nvidia,function = "sdio4";
59 };
60 atc {
61 nvidia,pins = "atc";
62 nvidia,function = "nand";
63 };
64 atd {
65 nvidia,pins = "atd", "ate", "gmb", "spia",
66 "spib", "spic";
67 nvidia,function = "gmi";
68 };
69 cdev1 {
70 nvidia,pins = "cdev1";
71 nvidia,function = "plla_out";
72 };
73 cdev2 {
74 nvidia,pins = "cdev2";
75 nvidia,function = "pllp_out4";
76 };
77 crtp {
78 nvidia,pins = "crtp", "lm1";
79 nvidia,function = "crt";
80 };
81 csus {
82 nvidia,pins = "csus";
83 nvidia,function = "vi_sensor_clk";
84 };
85 dap1 {
86 nvidia,pins = "dap1";
87 nvidia,function = "dap1";
88 };
89 dap2 {
90 nvidia,pins = "dap2";
91 nvidia,function = "dap2";
92 };
93 dap3 {
94 nvidia,pins = "dap3";
95 nvidia,function = "dap3";
96 };
97 dap4 {
98 nvidia,pins = "dap4";
99 nvidia,function = "dap4";
100 };
101 dta {
102 nvidia,pins = "dta", "dtb", "dtc", "dtd", "dte";
103 nvidia,function = "vi";
104 };
105 dtf {
106 nvidia,pins = "dtf";
107 nvidia,function = "i2c3";
108 };
109 gmc {
110 nvidia,pins = "gmc";
111 nvidia,function = "uartd";
112 };
113 gmd {
114 nvidia,pins = "gmd";
115 nvidia,function = "sflash";
116 };
117 gpu {
118 nvidia,pins = "gpu";
119 nvidia,function = "pwm";
120 };
121 gpu7 {
122 nvidia,pins = "gpu7";
123 nvidia,function = "rtck";
124 };
125 gpv {
126 nvidia,pins = "gpv", "slxa", "slxk";
127 nvidia,function = "pcie";
128 };
129 hdint {
130 nvidia,pins = "hdint", "lpw0", "lpw2", "lsc1",
131 "lsck", "lsda";
132 nvidia,function = "hdmi";
133 };
134 i2cp {
135 nvidia,pins = "i2cp";
136 nvidia,function = "i2cp";
137 };
138 irrx {
139 nvidia,pins = "irrx", "irtx";
140 nvidia,function = "uartb";
141 };
142 kbca {
143 nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
144 "kbce", "kbcf";
145 nvidia,function = "kbc";
146 };
147 lcsn {
148 nvidia,pins = "lcsn", "ldc", "lm0", "lpw1",
149 "lsdi", "lvp0";
150 nvidia,function = "rsvd4";
151 };
152 ld0 {
153 nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
154 "ld5", "ld6", "ld7", "ld8", "ld9",
155 "ld10", "ld11", "ld12", "ld13", "ld14",
156 "ld15", "ld16", "ld17", "ldi", "lhp0",
157 "lhp1", "lhp2", "lhs", "lpp", "lsc0",
158 "lspi", "lvp1", "lvs";
159 nvidia,function = "displaya";
160 };
161 owc {
162 nvidia,pins = "owc", "spdi", "spdo", "uac";
163 nvidia,function = "rsvd2";
164 };
165 pmc {
166 nvidia,pins = "pmc";
167 nvidia,function = "pwr_on";
168 };
169 rm {
170 nvidia,pins = "rm";
171 nvidia,function = "i2c1";
172 };
173 sdb {
174 nvidia,pins = "sdb", "sdc", "sdd";
175 nvidia,function = "sdio3";
176 };
177 sdio1 {
178 nvidia,pins = "sdio1";
179 nvidia,function = "sdio1";
180 };
181 slxc {
182 nvidia,pins = "slxc", "slxd";
183 nvidia,function = "spdif";
184 };
185 spid {
186 nvidia,pins = "spid", "spie", "spif";
187 nvidia,function = "spi1";
188 };
189 spig {
190 nvidia,pins = "spig", "spih";
191 nvidia,function = "spi2_alt";
192 };
193 uaa {
194 nvidia,pins = "uaa", "uab", "uda";
195 nvidia,function = "ulpi";
196 };
197 uad {
198 nvidia,pins = "uad";
199 nvidia,function = "irda";
200 };
201 uca {
202 nvidia,pins = "uca", "ucb";
203 nvidia,function = "uartc";
204 };
205 conf_ata {
206 nvidia,pins = "ata", "atb", "atc", "atd",
207 "cdev1", "cdev2", "dap1", "dap2",
208 "dap4", "ddc", "dtf", "gma", "gmc", "gmd",
209 "gme", "gpu", "gpu7", "i2cp", "irrx",
210 "irtx", "pta", "rm", "sdc", "sdd",
211 "slxd", "slxk", "spdi", "spdo", "uac",
212 "uad", "uca", "ucb", "uda";
213 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
214 nvidia,tristate = <TEGRA_PIN_DISABLE>;
215 };
216 conf_ate {
217 nvidia,pins = "ate", "csus", "dap3",
218 "gpv", "owc", "slxc", "spib", "spid",
219 "spie";
220 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
221 nvidia,tristate = <TEGRA_PIN_ENABLE>;
222 };
223 conf_ck32 {
224 nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
225 "pmcc", "pmcd", "pmce", "xm2c", "xm2d";
226 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
227 };
228 conf_crtp {
229 nvidia,pins = "crtp", "gmb", "slxa", "spia",
230 "spig", "spih";
231 nvidia,pull = <TEGRA_PIN_PULL_UP>;
232 nvidia,tristate = <TEGRA_PIN_ENABLE>;
233 };
234 conf_dta {
235 nvidia,pins = "dta", "dtb", "dtc", "dtd";
236 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
237 nvidia,tristate = <TEGRA_PIN_DISABLE>;
238 };
239 conf_dte {
240 nvidia,pins = "dte", "spif";
241 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
242 nvidia,tristate = <TEGRA_PIN_ENABLE>;
243 };
244 conf_hdint {
245 nvidia,pins = "hdint", "lcsn", "ldc", "lm1",
246 "lpw1", "lsc1", "lsck", "lsda", "lsdi",
247 "lvp0";
248 nvidia,tristate = <TEGRA_PIN_ENABLE>;
249 };
250 conf_kbca {
251 nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
252 "kbce", "kbcf", "sdio1", "spic", "uaa",
253 "uab";
254 nvidia,pull = <TEGRA_PIN_PULL_UP>;
255 nvidia,tristate = <TEGRA_PIN_DISABLE>;
256 };
257 conf_lc {
258 nvidia,pins = "lc", "ls";
259 nvidia,pull = <TEGRA_PIN_PULL_UP>;
260 };
261 conf_ld0 {
262 nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
263 "ld5", "ld6", "ld7", "ld8", "ld9",
264 "ld10", "ld11", "ld12", "ld13", "ld14",
265 "ld15", "ld16", "ld17", "ldi", "lhp0",
266 "lhp1", "lhp2", "lhs", "lm0", "lpp",
267 "lpw0", "lpw2", "lsc0", "lspi", "lvp1",
268 "lvs", "pmc", "sdb";
269 nvidia,tristate = <TEGRA_PIN_DISABLE>;
270 };
271 conf_ld17_0 {
272 nvidia,pins = "ld17_0", "ld19_18", "ld21_20",
273 "ld23_22";
274 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
275 };
276 drive_sdio1 {
277 nvidia,pins = "drive_sdio1";
278 nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
279 nvidia,schmitt = <TEGRA_PIN_DISABLE>;
280 nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>;
281 nvidia,pull-down-strength = <31>;
282 nvidia,pull-up-strength = <31>;
283 nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
284 nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
285 };
286 };
287
288 state_i2cmux_ddc: pinmux_i2cmux_ddc {
289 ddc {
290 nvidia,pins = "ddc";
291 nvidia,function = "i2c2";
292 };
293 pta {
294 nvidia,pins = "pta";
295 nvidia,function = "rsvd4";
296 };
297 };
298
299 state_i2cmux_pta: pinmux_i2cmux_pta {
300 ddc {
301 nvidia,pins = "ddc";
302 nvidia,function = "rsvd4";
303 };
304 pta {
305 nvidia,pins = "pta";
306 nvidia,function = "i2c2";
307 };
308 };
309
310 state_i2cmux_idle: pinmux_i2cmux_idle {
311 ddc {
312 nvidia,pins = "ddc";
313 nvidia,function = "rsvd4";
314 };
315 pta {
316 nvidia,pins = "pta";
317 nvidia,function = "rsvd4";
318 };
319 };
320 };
321
322 i2s@70002800 {
323 status = "okay";
324 };
325
326 serial@70006300 {
327 status = "okay";
328 };
329
330 pwm: pwm@7000a000 {
331 status = "okay";
332 };
333
334 i2c@7000c000 {
335 status = "okay";
336 clock-frequency = <400000>;
337
338 wm8903: wm8903@1a {
339 compatible = "wlf,wm8903";
340 reg = <0x1a>;
341 interrupt-parent = <&gpio>;
342 interrupts = <TEGRA_GPIO(X, 3) IRQ_TYPE_LEVEL_HIGH>;
343
344 gpio-controller;
345 #gpio-cells = <2>;
346
347 micdet-cfg = <0>;
348 micdet-delay = <100>;
349 gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
350 };
351
352 /* ALS and proximity sensor */
353 isl29018@44 {
354 compatible = "isil,isl29018";
355 reg = <0x44>;
356 interrupt-parent = <&gpio>;
357 interrupts = <TEGRA_GPIO(Z, 2) IRQ_TYPE_LEVEL_HIGH>;
358 };
359
360 gyrometer@68 {
361 compatible = "invn,mpu3050";
362 reg = <0x68>;
363 interrupt-parent = <&gpio>;
364 interrupts = <TEGRA_GPIO(Z, 4) IRQ_TYPE_LEVEL_HIGH>;
365 };
366 };
367
368 i2c@7000c400 {
369 status = "okay";
370 clock-frequency = <100000>;
371 };
372
373 i2cmux {
374 compatible = "i2c-mux-pinctrl";
375 #address-cells = <1>;
376 #size-cells = <0>;
377
378 i2c-parent = <&{/i2c@7000c400}>;
379
380 pinctrl-names = "ddc", "pta", "idle";
381 pinctrl-0 = <&state_i2cmux_ddc>;
382 pinctrl-1 = <&state_i2cmux_pta>;
383 pinctrl-2 = <&state_i2cmux_idle>;
384
385 hdmi_ddc: i2c@0 {
386 reg = <0>;
387 #address-cells = <1>;
388 #size-cells = <0>;
389 };
390
391 lvds_ddc: i2c@1 {
392 reg = <1>;
393 #address-cells = <1>;
394 #size-cells = <0>;
395
396 smart-battery@b {
397 compatible = "ti,bq20z75", "smart-battery-1.1";
398 reg = <0xb>;
399 ti,i2c-retry-count = <2>;
400 ti,poll-retry-count = <10>;
401 };
402 };
403 };
404
405 i2c@7000c500 {
406 status = "okay";
407 clock-frequency = <400000>;
408 };
409
410 i2c@7000d000 {
411 status = "okay";
412 clock-frequency = <400000>;
413
414 magnetometer@c {
415 compatible = "asahi-kasei,ak8975";
416 reg = <0xc>;
417 interrupt-parent = <&gpio>;
418 interrupts = <TEGRA_GPIO(N, 5) IRQ_TYPE_LEVEL_HIGH>;
419 };
420
421 pmic: tps6586x@34 {
422 compatible = "ti,tps6586x";
423 reg = <0x34>;
424 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
425
426 ti,system-power-controller;
427
428 #gpio-cells = <2>;
429 gpio-controller;
430
431 sys-supply = <&vdd_5v0_reg>;
432 vin-sm0-supply = <&sys_reg>;
433 vin-sm1-supply = <&sys_reg>;
434 vin-sm2-supply = <&sys_reg>;
435 vinldo01-supply = <&sm2_reg>;
436 vinldo23-supply = <&sm2_reg>;
437 vinldo4-supply = <&sm2_reg>;
438 vinldo678-supply = <&sm2_reg>;
439 vinldo9-supply = <&sm2_reg>;
440
441 regulators {
442 sys_reg: sys {
443 regulator-name = "vdd_sys";
444 regulator-always-on;
445 };
446
447 sm0 {
448 regulator-name = "vdd_sm0,vdd_core";
449 regulator-min-microvolt = <1300000>;
450 regulator-max-microvolt = <1300000>;
451 regulator-always-on;
452 };
453
454 sm1 {
455 regulator-name = "vdd_sm1,vdd_cpu";
456 regulator-min-microvolt = <1125000>;
457 regulator-max-microvolt = <1125000>;
458 regulator-always-on;
459 };
460
461 sm2_reg: sm2 {
462 regulator-name = "vdd_sm2,vin_ldo*";
463 regulator-min-microvolt = <3700000>;
464 regulator-max-microvolt = <3700000>;
465 regulator-always-on;
466 };
467
468 /* LDO0 is not connected to anything */
469
470 ldo1 {
471 regulator-name = "vdd_ldo1,avdd_pll*";
472 regulator-min-microvolt = <1100000>;
473 regulator-max-microvolt = <1100000>;
474 regulator-always-on;
475 };
476
477 ldo2 {
478 regulator-name = "vdd_ldo2,vdd_rtc";
479 regulator-min-microvolt = <1200000>;
480 regulator-max-microvolt = <1200000>;
481 };
482
483 ldo3 {
484 regulator-name = "vdd_ldo3,avdd_usb*";
485 regulator-min-microvolt = <3300000>;
486 regulator-max-microvolt = <3300000>;
487 regulator-always-on;
488 };
489
490 ldo4 {
491 regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
492 regulator-min-microvolt = <1800000>;
493 regulator-max-microvolt = <1800000>;
494 regulator-always-on;
495 };
496
497 ldo5 {
498 regulator-name = "vdd_ldo5,vcore_mmc";
499 regulator-min-microvolt = <2850000>;
500 regulator-max-microvolt = <2850000>;
501 regulator-always-on;
502 };
503
504 ldo6 {
505 regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam";
506 regulator-min-microvolt = <1800000>;
507 regulator-max-microvolt = <1800000>;
508 };
509
510 hdmi_vdd_reg: ldo7 {
511 regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse";
512 regulator-min-microvolt = <3300000>;
513 regulator-max-microvolt = <3300000>;
514 };
515
516 hdmi_pll_reg: ldo8 {
517 regulator-name = "vdd_ldo8,avdd_hdmi_pll";
518 regulator-min-microvolt = <1800000>;
519 regulator-max-microvolt = <1800000>;
520 };
521
522 ldo9 {
523 regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
524 regulator-min-microvolt = <2850000>;
525 regulator-max-microvolt = <2850000>;
526 regulator-always-on;
527 };
528
529 ldo_rtc {
530 regulator-name = "vdd_rtc_out,vdd_cell";
531 regulator-min-microvolt = <3300000>;
532 regulator-max-microvolt = <3300000>;
533 regulator-always-on;
534 };
535 };
536 };
537
538 temperature-sensor@4c {
539 compatible = "onnn,nct1008";
540 reg = <0x4c>;
541 };
542 };
543
544 kbc@7000e200 {
545 status = "okay";
546 nvidia,debounce-delay-ms = <32>;
547 nvidia,repeat-delay-ms = <160>;
548 nvidia,ghost-filter;
549 nvidia,kbc-row-pins = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>;
550 nvidia,kbc-col-pins = <16 17 18 19 20 21 22 23>;
551 linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_W)
552 MATRIX_KEY(0x00, 0x03, KEY_S)
553 MATRIX_KEY(0x00, 0x04, KEY_A)
554 MATRIX_KEY(0x00, 0x05, KEY_Z)
555 MATRIX_KEY(0x00, 0x07, KEY_FN)
556
557 MATRIX_KEY(0x01, 0x07, KEY_LEFTMETA)
558 MATRIX_KEY(0x02, 0x06, KEY_RIGHTALT)
559 MATRIX_KEY(0x02, 0x07, KEY_LEFTALT)
560
561 MATRIX_KEY(0x03, 0x00, KEY_5)
562 MATRIX_KEY(0x03, 0x01, KEY_4)
563 MATRIX_KEY(0x03, 0x02, KEY_R)
564 MATRIX_KEY(0x03, 0x03, KEY_E)
565 MATRIX_KEY(0x03, 0x04, KEY_F)
566 MATRIX_KEY(0x03, 0x05, KEY_D)
567 MATRIX_KEY(0x03, 0x06, KEY_X)
568
569 MATRIX_KEY(0x04, 0x00, KEY_7)
570 MATRIX_KEY(0x04, 0x01, KEY_6)
571 MATRIX_KEY(0x04, 0x02, KEY_T)
572 MATRIX_KEY(0x04, 0x03, KEY_H)
573 MATRIX_KEY(0x04, 0x04, KEY_G)
574 MATRIX_KEY(0x04, 0x05, KEY_V)
575 MATRIX_KEY(0x04, 0x06, KEY_C)
576 MATRIX_KEY(0x04, 0x07, KEY_SPACE)
577
578 MATRIX_KEY(0x05, 0x00, KEY_9)
579 MATRIX_KEY(0x05, 0x01, KEY_8)
580 MATRIX_KEY(0x05, 0x02, KEY_U)
581 MATRIX_KEY(0x05, 0x03, KEY_Y)
582 MATRIX_KEY(0x05, 0x04, KEY_J)
583 MATRIX_KEY(0x05, 0x05, KEY_N)
584 MATRIX_KEY(0x05, 0x06, KEY_B)
585 MATRIX_KEY(0x05, 0x07, KEY_BACKSLASH)
586
587 MATRIX_KEY(0x06, 0x00, KEY_MINUS)
588 MATRIX_KEY(0x06, 0x01, KEY_0)
589 MATRIX_KEY(0x06, 0x02, KEY_O)
590 MATRIX_KEY(0x06, 0x03, KEY_I)
591 MATRIX_KEY(0x06, 0x04, KEY_L)
592 MATRIX_KEY(0x06, 0x05, KEY_K)
593 MATRIX_KEY(0x06, 0x06, KEY_COMMA)
594 MATRIX_KEY(0x06, 0x07, KEY_M)
595
596 MATRIX_KEY(0x07, 0x01, KEY_EQUAL)
597 MATRIX_KEY(0x07, 0x02, KEY_RIGHTBRACE)
598 MATRIX_KEY(0x07, 0x03, KEY_ENTER)
599 MATRIX_KEY(0x07, 0x07, KEY_MENU)
600
601 MATRIX_KEY(0x08, 0x04, KEY_RIGHTSHIFT)
602 MATRIX_KEY(0x08, 0x05, KEY_LEFTSHIFT)
603
604 MATRIX_KEY(0x09, 0x05, KEY_RIGHTCTRL)
605 MATRIX_KEY(0x09, 0x07, KEY_LEFTCTRL)
606
607 MATRIX_KEY(0x0B, 0x00, KEY_LEFTBRACE)
608 MATRIX_KEY(0x0B, 0x01, KEY_P)
609 MATRIX_KEY(0x0B, 0x02, KEY_APOSTROPHE)
610 MATRIX_KEY(0x0B, 0x03, KEY_SEMICOLON)
611 MATRIX_KEY(0x0B, 0x04, KEY_SLASH)
612 MATRIX_KEY(0x0B, 0x05, KEY_DOT)
613
614 MATRIX_KEY(0x0C, 0x00, KEY_F10)
615 MATRIX_KEY(0x0C, 0x01, KEY_F9)
616 MATRIX_KEY(0x0C, 0x02, KEY_BACKSPACE)
617 MATRIX_KEY(0x0C, 0x03, KEY_3)
618 MATRIX_KEY(0x0C, 0x04, KEY_2)
619 MATRIX_KEY(0x0C, 0x05, KEY_UP)
620 MATRIX_KEY(0x0C, 0x06, KEY_PRINT)
621 MATRIX_KEY(0x0C, 0x07, KEY_PAUSE)
622
623 MATRIX_KEY(0x0D, 0x00, KEY_INSERT)
624 MATRIX_KEY(0x0D, 0x01, KEY_DELETE)
625 MATRIX_KEY(0x0D, 0x03, KEY_PAGEUP )
626 MATRIX_KEY(0x0D, 0x04, KEY_PAGEDOWN)
627 MATRIX_KEY(0x0D, 0x05, KEY_RIGHT)
628 MATRIX_KEY(0x0D, 0x06, KEY_DOWN)
629 MATRIX_KEY(0x0D, 0x07, KEY_LEFT)
630
631 MATRIX_KEY(0x0E, 0x00, KEY_F11)
632 MATRIX_KEY(0x0E, 0x01, KEY_F12)
633 MATRIX_KEY(0x0E, 0x02, KEY_F8)
634 MATRIX_KEY(0x0E, 0x03, KEY_Q)
635 MATRIX_KEY(0x0E, 0x04, KEY_F4)
636 MATRIX_KEY(0x0E, 0x05, KEY_F3)
637 MATRIX_KEY(0x0E, 0x06, KEY_1)
638 MATRIX_KEY(0x0E, 0x07, KEY_F7)
639
640 MATRIX_KEY(0x0F, 0x00, KEY_ESC)
641 MATRIX_KEY(0x0F, 0x01, KEY_GRAVE)
642 MATRIX_KEY(0x0F, 0x02, KEY_F5)
643 MATRIX_KEY(0x0F, 0x03, KEY_TAB)
644 MATRIX_KEY(0x0F, 0x04, KEY_F1)
645 MATRIX_KEY(0x0F, 0x05, KEY_F2)
646 MATRIX_KEY(0x0F, 0x06, KEY_CAPSLOCK)
647 MATRIX_KEY(0x0F, 0x07, KEY_F6)
648
649 /* Software Handled Function Keys */
650 MATRIX_KEY(0x14, 0x00, KEY_KP7)
651
652 MATRIX_KEY(0x15, 0x00, KEY_KP9)
653 MATRIX_KEY(0x15, 0x01, KEY_KP8)
654 MATRIX_KEY(0x15, 0x02, KEY_KP4)
655 MATRIX_KEY(0x15, 0x04, KEY_KP1)
656
657 MATRIX_KEY(0x16, 0x01, KEY_KPSLASH)
658 MATRIX_KEY(0x16, 0x02, KEY_KP6)
659 MATRIX_KEY(0x16, 0x03, KEY_KP5)
660 MATRIX_KEY(0x16, 0x04, KEY_KP3)
661 MATRIX_KEY(0x16, 0x05, KEY_KP2)
662 MATRIX_KEY(0x16, 0x07, KEY_KP0)
663
664 MATRIX_KEY(0x1B, 0x01, KEY_KPASTERISK)
665 MATRIX_KEY(0x1B, 0x03, KEY_KPMINUS)
666 MATRIX_KEY(0x1B, 0x04, KEY_KPPLUS)
667 MATRIX_KEY(0x1B, 0x05, KEY_KPDOT)
668
669 MATRIX_KEY(0x1C, 0x05, KEY_VOLUMEUP)
670
671 MATRIX_KEY(0x1D, 0x03, KEY_HOME)
672 MATRIX_KEY(0x1D, 0x04, KEY_END)
673 MATRIX_KEY(0x1D, 0x05, KEY_BRIGHTNESSDOWN)
674 MATRIX_KEY(0x1D, 0x06, KEY_VOLUMEDOWN)
675 MATRIX_KEY(0x1D, 0x07, KEY_BRIGHTNESSUP)
676
677 MATRIX_KEY(0x1E, 0x00, KEY_NUMLOCK)
678 MATRIX_KEY(0x1E, 0x01, KEY_SCROLLLOCK)
679 MATRIX_KEY(0x1E, 0x02, KEY_MUTE)
680
681 MATRIX_KEY(0x1F, 0x04, KEY_HELP)>;
682 };
683
684 pmc@7000e400 {
685 nvidia,invert-interrupt;
686 nvidia,suspend-mode = <1>;
687 nvidia,cpu-pwr-good-time = <5000>;
688 nvidia,cpu-pwr-off-time = <5000>;
689 nvidia,core-pwr-good-time = <3845 3845>;
690 nvidia,core-pwr-off-time = <3875>;
691 nvidia,sys-clock-req-active-high;
692 };
693
694 memory-controller@7000f400 {
695 emc-table@190000 {
696 reg = <190000>;
697 compatible = "nvidia,tegra20-emc-table";
698 clock-frequency = <190000>;
699 nvidia,emc-registers = <0x0000000c 0x00000026
700 0x00000009 0x00000003 0x00000004 0x00000004
701 0x00000002 0x0000000c 0x00000003 0x00000003
702 0x00000002 0x00000001 0x00000004 0x00000005
703 0x00000004 0x00000009 0x0000000d 0x0000059f
704 0x00000000 0x00000003 0x00000003 0x00000003
705 0x00000003 0x00000001 0x0000000b 0x000000c8
706 0x00000003 0x00000007 0x00000004 0x0000000f
707 0x00000002 0x00000000 0x00000000 0x00000002
708 0x00000000 0x00000000 0x00000083 0xa06204ae
709 0x007dc010 0x00000000 0x00000000 0x00000000
710 0x00000000 0x00000000 0x00000000 0x00000000>;
711 };
712
713 emc-table@380000 {
714 reg = <380000>;
715 compatible = "nvidia,tegra20-emc-table";
716 clock-frequency = <380000>;
717 nvidia,emc-registers = <0x00000017 0x0000004b
718 0x00000012 0x00000006 0x00000004 0x00000005
719 0x00000003 0x0000000c 0x00000006 0x00000006
720 0x00000003 0x00000001 0x00000004 0x00000005
721 0x00000004 0x00000009 0x0000000d 0x00000b5f
722 0x00000000 0x00000003 0x00000003 0x00000006
723 0x00000006 0x00000001 0x00000011 0x000000c8
724 0x00000003 0x0000000e 0x00000007 0x0000000f
725 0x00000002 0x00000000 0x00000000 0x00000002
726 0x00000000 0x00000000 0x00000083 0xe044048b
727 0x007d8010 0x00000000 0x00000000 0x00000000
728 0x00000000 0x00000000 0x00000000 0x00000000>;
729 };
730 };
731
732 usb@c5000000 {
733 status = "okay";
734 dr_mode = "otg";
735 };
736
737 usb-phy@c5000000 {
738 status = "okay";
739 vbus-supply = <&vbus_reg>;
740 dr_mode = "otg";
741 };
742
743 usb@c5004000 {
744 status = "okay";
745 nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
746 GPIO_ACTIVE_LOW>;
747 };
748
749 usb-phy@c5004000 {
750 status = "okay";
751 nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
752 GPIO_ACTIVE_LOW>;
753 };
754
755 usb@c5008000 {
756 status = "okay";
757 };
758
759 usb-phy@c5008000 {
760 status = "okay";
761 };
762
763 sdhci@c8000000 {
764 status = "okay";
765 power-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>;
766 bus-width = <4>;
767 keep-power-in-suspend;
768 };
769
770 sdhci@c8000400 {
771 status = "okay";
772 cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
773 wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
774 power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
775 bus-width = <4>;
776 };
777
778 sdhci@c8000600 {
779 status = "okay";
780 bus-width = <8>;
781 non-removable;
782 };
783
784 backlight: backlight {
785 compatible = "pwm-backlight";
786
787 enable-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
788 power-supply = <&vdd_bl_reg>;
789 pwms = <&pwm 2 5000000>;
790
791 brightness-levels = <0 4 8 16 32 64 128 255>;
792 default-brightness-level = <6>;
793 };
794
795 clocks {
796 compatible = "simple-bus";
797 #address-cells = <1>;
798 #size-cells = <0>;
799
800 clk32k_in: clock@0 {
801 compatible = "fixed-clock";
802 reg = <0>;
803 #clock-cells = <0>;
804 clock-frequency = <32768>;
805 };
806 };
807
808 gpio-keys {
809 compatible = "gpio-keys";
810
811 power {
812 label = "Power";
813 gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
814 linux,code = <KEY_POWER>;
815 wakeup-source;
816 };
817
818 lid {
819 label = "Lid";
820 gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_HIGH>;
821 linux,input-type = <5>; /* EV_SW */
822 linux,code = <0>; /* SW_LID */
823 debounce-interval = <1>;
824 wakeup-source;
825 };
826 };
827
828 panel: panel {
829 compatible = "chunghwa,claa101wa01a", "simple-panel";
830
831 power-supply = <&vdd_pnl_reg>;
832 enable-gpios = <&gpio TEGRA_GPIO(B, 2) GPIO_ACTIVE_HIGH>;
833
834 backlight = <&backlight>;
835 ddc-i2c-bus = <&lvds_ddc>;
836 };
837
838 regulators {
839 compatible = "simple-bus";
840 #address-cells = <1>;
841 #size-cells = <0>;
842
843 vdd_5v0_reg: regulator@0 {
844 compatible = "regulator-fixed";
845 reg = <0>;
846 regulator-name = "vdd_5v0";
847 regulator-min-microvolt = <5000000>;
848 regulator-max-microvolt = <5000000>;
849 regulator-always-on;
850 };
851
852 regulator@1 {
853 compatible = "regulator-fixed";
854 reg = <1>;
855 regulator-name = "vdd_1v5";
856 regulator-min-microvolt = <1500000>;
857 regulator-max-microvolt = <1500000>;
858 gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
859 };
860
861 regulator@2 {
862 compatible = "regulator-fixed";
863 reg = <2>;
864 regulator-name = "vdd_1v2";
865 regulator-min-microvolt = <1200000>;
866 regulator-max-microvolt = <1200000>;
867 gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
868 enable-active-high;
869 };
870
871 vbus_reg: regulator@3 {
872 compatible = "regulator-fixed";
873 reg = <3>;
874 regulator-name = "vdd_vbus_wup1";
875 regulator-min-microvolt = <5000000>;
876 regulator-max-microvolt = <5000000>;
877 enable-active-high;
878 gpio = <&gpio TEGRA_GPIO(D, 0) 0>;
879 regulator-always-on;
880 regulator-boot-on;
881 };
882
883 vdd_pnl_reg: regulator@4 {
884 compatible = "regulator-fixed";
885 reg = <4>;
886 regulator-name = "vdd_pnl";
887 regulator-min-microvolt = <2800000>;
888 regulator-max-microvolt = <2800000>;
889 gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
890 enable-active-high;
891 };
892
893 vdd_bl_reg: regulator@5 {
894 compatible = "regulator-fixed";
895 reg = <5>;
896 regulator-name = "vdd_bl";
897 regulator-min-microvolt = <2800000>;
898 regulator-max-microvolt = <2800000>;
899 gpio = <&gpio TEGRA_GPIO(W, 0) GPIO_ACTIVE_HIGH>;
900 enable-active-high;
901 };
902
903 vdd_hdmi: regulator@6 {
904 compatible = "regulator-fixed";
905 reg = <6>;
906 regulator-name = "VDDIO_HDMI";
907 regulator-min-microvolt = <5000000>;
908 regulator-max-microvolt = <5000000>;
909 gpio = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_HIGH>;
910 enable-active-high;
911 vin-supply = <&vdd_5v0_reg>;
912 };
913 };
914
915 sound {
916 compatible = "nvidia,tegra-audio-wm8903-seaboard",
917 "nvidia,tegra-audio-wm8903";
918 nvidia,model = "NVIDIA Tegra Seaboard";
919
920 nvidia,audio-routing =
921 "Headphone Jack", "HPOUTR",
922 "Headphone Jack", "HPOUTL",
923 "Int Spk", "ROP",
924 "Int Spk", "RON",
925 "Int Spk", "LOP",
926 "Int Spk", "LON",
927 "Mic Jack", "MICBIAS",
928 "IN1R", "Mic Jack";
929
930 nvidia,i2s-controller = <&tegra_i2s1>;
931 nvidia,audio-codec = <&wm8903>;
932
933 nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
934 nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(X, 1) GPIO_ACTIVE_HIGH>;
935
936 clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
937 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
938 <&tegra_car TEGRA20_CLK_CDEV1>;
939 clock-names = "pll_a", "pll_a_out0", "mclk";
940 };
941};
1/dts-v1/;
2
3#include <dt-bindings/input/input.h>
4#include "tegra20.dtsi"
5
6/ {
7 model = "NVIDIA Seaboard";
8 compatible = "nvidia,seaboard", "nvidia,tegra20";
9
10 aliases {
11 rtc0 = "/i2c@7000d000/tps6586x@34";
12 rtc1 = "/rtc@7000e000";
13 serial0 = &uartd;
14 };
15
16 memory {
17 reg = <0x00000000 0x40000000>;
18 };
19
20 host1x@50000000 {
21 dc@54200000 {
22 rgb {
23 status = "okay";
24
25 nvidia,panel = <&panel>;
26 };
27 };
28
29 hdmi@54280000 {
30 status = "okay";
31
32 vdd-supply = <&hdmi_vdd_reg>;
33 pll-supply = <&hdmi_pll_reg>;
34 hdmi-supply = <&vdd_hdmi>;
35
36 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
37 nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
38 GPIO_ACTIVE_HIGH>;
39 };
40 };
41
42 pinmux@70000014 {
43 pinctrl-names = "default";
44 pinctrl-0 = <&state_default>;
45
46 state_default: pinmux {
47 ata {
48 nvidia,pins = "ata";
49 nvidia,function = "ide";
50 };
51 atb {
52 nvidia,pins = "atb", "gma", "gme";
53 nvidia,function = "sdio4";
54 };
55 atc {
56 nvidia,pins = "atc";
57 nvidia,function = "nand";
58 };
59 atd {
60 nvidia,pins = "atd", "ate", "gmb", "spia",
61 "spib", "spic";
62 nvidia,function = "gmi";
63 };
64 cdev1 {
65 nvidia,pins = "cdev1";
66 nvidia,function = "plla_out";
67 };
68 cdev2 {
69 nvidia,pins = "cdev2";
70 nvidia,function = "pllp_out4";
71 };
72 crtp {
73 nvidia,pins = "crtp", "lm1";
74 nvidia,function = "crt";
75 };
76 csus {
77 nvidia,pins = "csus";
78 nvidia,function = "vi_sensor_clk";
79 };
80 dap1 {
81 nvidia,pins = "dap1";
82 nvidia,function = "dap1";
83 };
84 dap2 {
85 nvidia,pins = "dap2";
86 nvidia,function = "dap2";
87 };
88 dap3 {
89 nvidia,pins = "dap3";
90 nvidia,function = "dap3";
91 };
92 dap4 {
93 nvidia,pins = "dap4";
94 nvidia,function = "dap4";
95 };
96 dta {
97 nvidia,pins = "dta", "dtb", "dtc", "dtd", "dte";
98 nvidia,function = "vi";
99 };
100 dtf {
101 nvidia,pins = "dtf";
102 nvidia,function = "i2c3";
103 };
104 gmc {
105 nvidia,pins = "gmc";
106 nvidia,function = "uartd";
107 };
108 gmd {
109 nvidia,pins = "gmd";
110 nvidia,function = "sflash";
111 };
112 gpu {
113 nvidia,pins = "gpu";
114 nvidia,function = "pwm";
115 };
116 gpu7 {
117 nvidia,pins = "gpu7";
118 nvidia,function = "rtck";
119 };
120 gpv {
121 nvidia,pins = "gpv", "slxa", "slxk";
122 nvidia,function = "pcie";
123 };
124 hdint {
125 nvidia,pins = "hdint", "lpw0", "lpw2", "lsc1",
126 "lsck", "lsda";
127 nvidia,function = "hdmi";
128 };
129 i2cp {
130 nvidia,pins = "i2cp";
131 nvidia,function = "i2cp";
132 };
133 irrx {
134 nvidia,pins = "irrx", "irtx";
135 nvidia,function = "uartb";
136 };
137 kbca {
138 nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
139 "kbce", "kbcf";
140 nvidia,function = "kbc";
141 };
142 lcsn {
143 nvidia,pins = "lcsn", "ldc", "lm0", "lpw1",
144 "lsdi", "lvp0";
145 nvidia,function = "rsvd4";
146 };
147 ld0 {
148 nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
149 "ld5", "ld6", "ld7", "ld8", "ld9",
150 "ld10", "ld11", "ld12", "ld13", "ld14",
151 "ld15", "ld16", "ld17", "ldi", "lhp0",
152 "lhp1", "lhp2", "lhs", "lpp", "lsc0",
153 "lspi", "lvp1", "lvs";
154 nvidia,function = "displaya";
155 };
156 owc {
157 nvidia,pins = "owc", "spdi", "spdo", "uac";
158 nvidia,function = "rsvd2";
159 };
160 pmc {
161 nvidia,pins = "pmc";
162 nvidia,function = "pwr_on";
163 };
164 rm {
165 nvidia,pins = "rm";
166 nvidia,function = "i2c1";
167 };
168 sdb {
169 nvidia,pins = "sdb", "sdc", "sdd";
170 nvidia,function = "sdio3";
171 };
172 sdio1 {
173 nvidia,pins = "sdio1";
174 nvidia,function = "sdio1";
175 };
176 slxc {
177 nvidia,pins = "slxc", "slxd";
178 nvidia,function = "spdif";
179 };
180 spid {
181 nvidia,pins = "spid", "spie", "spif";
182 nvidia,function = "spi1";
183 };
184 spig {
185 nvidia,pins = "spig", "spih";
186 nvidia,function = "spi2_alt";
187 };
188 uaa {
189 nvidia,pins = "uaa", "uab", "uda";
190 nvidia,function = "ulpi";
191 };
192 uad {
193 nvidia,pins = "uad";
194 nvidia,function = "irda";
195 };
196 uca {
197 nvidia,pins = "uca", "ucb";
198 nvidia,function = "uartc";
199 };
200 conf_ata {
201 nvidia,pins = "ata", "atb", "atc", "atd",
202 "cdev1", "cdev2", "dap1", "dap2",
203 "dap4", "ddc", "dtf", "gma", "gmc", "gmd",
204 "gme", "gpu", "gpu7", "i2cp", "irrx",
205 "irtx", "pta", "rm", "sdc", "sdd",
206 "slxd", "slxk", "spdi", "spdo", "uac",
207 "uad", "uca", "ucb", "uda";
208 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
209 nvidia,tristate = <TEGRA_PIN_DISABLE>;
210 };
211 conf_ate {
212 nvidia,pins = "ate", "csus", "dap3",
213 "gpv", "owc", "slxc", "spib", "spid",
214 "spie";
215 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
216 nvidia,tristate = <TEGRA_PIN_ENABLE>;
217 };
218 conf_ck32 {
219 nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
220 "pmcc", "pmcd", "pmce", "xm2c", "xm2d";
221 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
222 };
223 conf_crtp {
224 nvidia,pins = "crtp", "gmb", "slxa", "spia",
225 "spig", "spih";
226 nvidia,pull = <TEGRA_PIN_PULL_UP>;
227 nvidia,tristate = <TEGRA_PIN_ENABLE>;
228 };
229 conf_dta {
230 nvidia,pins = "dta", "dtb", "dtc", "dtd";
231 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
232 nvidia,tristate = <TEGRA_PIN_DISABLE>;
233 };
234 conf_dte {
235 nvidia,pins = "dte", "spif";
236 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
237 nvidia,tristate = <TEGRA_PIN_ENABLE>;
238 };
239 conf_hdint {
240 nvidia,pins = "hdint", "lcsn", "ldc", "lm1",
241 "lpw1", "lsc1", "lsck", "lsda", "lsdi",
242 "lvp0";
243 nvidia,tristate = <TEGRA_PIN_ENABLE>;
244 };
245 conf_kbca {
246 nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
247 "kbce", "kbcf", "sdio1", "spic", "uaa",
248 "uab";
249 nvidia,pull = <TEGRA_PIN_PULL_UP>;
250 nvidia,tristate = <TEGRA_PIN_DISABLE>;
251 };
252 conf_lc {
253 nvidia,pins = "lc", "ls";
254 nvidia,pull = <TEGRA_PIN_PULL_UP>;
255 };
256 conf_ld0 {
257 nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
258 "ld5", "ld6", "ld7", "ld8", "ld9",
259 "ld10", "ld11", "ld12", "ld13", "ld14",
260 "ld15", "ld16", "ld17", "ldi", "lhp0",
261 "lhp1", "lhp2", "lhs", "lm0", "lpp",
262 "lpw0", "lpw2", "lsc0", "lspi", "lvp1",
263 "lvs", "pmc", "sdb";
264 nvidia,tristate = <TEGRA_PIN_DISABLE>;
265 };
266 conf_ld17_0 {
267 nvidia,pins = "ld17_0", "ld19_18", "ld21_20",
268 "ld23_22";
269 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
270 };
271 drive_sdio1 {
272 nvidia,pins = "drive_sdio1";
273 nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
274 nvidia,schmitt = <TEGRA_PIN_DISABLE>;
275 nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>;
276 nvidia,pull-down-strength = <31>;
277 nvidia,pull-up-strength = <31>;
278 nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
279 nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
280 };
281 };
282
283 state_i2cmux_ddc: pinmux_i2cmux_ddc {
284 ddc {
285 nvidia,pins = "ddc";
286 nvidia,function = "i2c2";
287 };
288 pta {
289 nvidia,pins = "pta";
290 nvidia,function = "rsvd4";
291 };
292 };
293
294 state_i2cmux_pta: pinmux_i2cmux_pta {
295 ddc {
296 nvidia,pins = "ddc";
297 nvidia,function = "rsvd4";
298 };
299 pta {
300 nvidia,pins = "pta";
301 nvidia,function = "i2c2";
302 };
303 };
304
305 state_i2cmux_idle: pinmux_i2cmux_idle {
306 ddc {
307 nvidia,pins = "ddc";
308 nvidia,function = "rsvd4";
309 };
310 pta {
311 nvidia,pins = "pta";
312 nvidia,function = "rsvd4";
313 };
314 };
315 };
316
317 i2s@70002800 {
318 status = "okay";
319 };
320
321 serial@70006300 {
322 status = "okay";
323 };
324
325 pwm: pwm@7000a000 {
326 status = "okay";
327 };
328
329 i2c@7000c000 {
330 status = "okay";
331 clock-frequency = <400000>;
332
333 wm8903: wm8903@1a {
334 compatible = "wlf,wm8903";
335 reg = <0x1a>;
336 interrupt-parent = <&gpio>;
337 interrupts = <TEGRA_GPIO(X, 3) IRQ_TYPE_LEVEL_HIGH>;
338
339 gpio-controller;
340 #gpio-cells = <2>;
341
342 micdet-cfg = <0>;
343 micdet-delay = <100>;
344 gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
345 };
346
347 /* ALS and proximity sensor */
348 isl29018@44 {
349 compatible = "isil,isl29018";
350 reg = <0x44>;
351 interrupt-parent = <&gpio>;
352 interrupts = <TEGRA_GPIO(Z, 2) IRQ_TYPE_LEVEL_HIGH>;
353 };
354
355 gyrometer@68 {
356 compatible = "invn,mpu3050";
357 reg = <0x68>;
358 interrupt-parent = <&gpio>;
359 interrupts = <TEGRA_GPIO(Z, 4) IRQ_TYPE_LEVEL_HIGH>;
360 };
361 };
362
363 i2c@7000c400 {
364 status = "okay";
365 clock-frequency = <100000>;
366 };
367
368 i2cmux {
369 compatible = "i2c-mux-pinctrl";
370 #address-cells = <1>;
371 #size-cells = <0>;
372
373 i2c-parent = <&{/i2c@7000c400}>;
374
375 pinctrl-names = "ddc", "pta", "idle";
376 pinctrl-0 = <&state_i2cmux_ddc>;
377 pinctrl-1 = <&state_i2cmux_pta>;
378 pinctrl-2 = <&state_i2cmux_idle>;
379
380 hdmi_ddc: i2c@0 {
381 reg = <0>;
382 #address-cells = <1>;
383 #size-cells = <0>;
384 };
385
386 lvds_ddc: i2c@1 {
387 reg = <1>;
388 #address-cells = <1>;
389 #size-cells = <0>;
390
391 smart-battery@b {
392 compatible = "ti,bq20z75", "smart-battery-1.1";
393 reg = <0xb>;
394 ti,i2c-retry-count = <2>;
395 ti,poll-retry-count = <10>;
396 };
397 };
398 };
399
400 i2c@7000c500 {
401 status = "okay";
402 clock-frequency = <400000>;
403 };
404
405 i2c@7000d000 {
406 status = "okay";
407 clock-frequency = <400000>;
408
409 magnetometer@c {
410 compatible = "asahi-kasei,ak8975";
411 reg = <0xc>;
412 interrupt-parent = <&gpio>;
413 interrupts = <TEGRA_GPIO(N, 5) IRQ_TYPE_LEVEL_HIGH>;
414 };
415
416 pmic: tps6586x@34 {
417 compatible = "ti,tps6586x";
418 reg = <0x34>;
419 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
420
421 ti,system-power-controller;
422
423 #gpio-cells = <2>;
424 gpio-controller;
425
426 sys-supply = <&vdd_5v0_reg>;
427 vin-sm0-supply = <&sys_reg>;
428 vin-sm1-supply = <&sys_reg>;
429 vin-sm2-supply = <&sys_reg>;
430 vinldo01-supply = <&sm2_reg>;
431 vinldo23-supply = <&sm2_reg>;
432 vinldo4-supply = <&sm2_reg>;
433 vinldo678-supply = <&sm2_reg>;
434 vinldo9-supply = <&sm2_reg>;
435
436 regulators {
437 sys_reg: sys {
438 regulator-name = "vdd_sys";
439 regulator-always-on;
440 };
441
442 sm0 {
443 regulator-name = "vdd_sm0,vdd_core";
444 regulator-min-microvolt = <1300000>;
445 regulator-max-microvolt = <1300000>;
446 regulator-always-on;
447 };
448
449 sm1 {
450 regulator-name = "vdd_sm1,vdd_cpu";
451 regulator-min-microvolt = <1125000>;
452 regulator-max-microvolt = <1125000>;
453 regulator-always-on;
454 };
455
456 sm2_reg: sm2 {
457 regulator-name = "vdd_sm2,vin_ldo*";
458 regulator-min-microvolt = <3700000>;
459 regulator-max-microvolt = <3700000>;
460 regulator-always-on;
461 };
462
463 /* LDO0 is not connected to anything */
464
465 ldo1 {
466 regulator-name = "vdd_ldo1,avdd_pll*";
467 regulator-min-microvolt = <1100000>;
468 regulator-max-microvolt = <1100000>;
469 regulator-always-on;
470 };
471
472 ldo2 {
473 regulator-name = "vdd_ldo2,vdd_rtc";
474 regulator-min-microvolt = <1200000>;
475 regulator-max-microvolt = <1200000>;
476 };
477
478 ldo3 {
479 regulator-name = "vdd_ldo3,avdd_usb*";
480 regulator-min-microvolt = <3300000>;
481 regulator-max-microvolt = <3300000>;
482 regulator-always-on;
483 };
484
485 ldo4 {
486 regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
487 regulator-min-microvolt = <1800000>;
488 regulator-max-microvolt = <1800000>;
489 regulator-always-on;
490 };
491
492 ldo5 {
493 regulator-name = "vdd_ldo5,vcore_mmc";
494 regulator-min-microvolt = <2850000>;
495 regulator-max-microvolt = <2850000>;
496 regulator-always-on;
497 };
498
499 ldo6 {
500 regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam";
501 regulator-min-microvolt = <1800000>;
502 regulator-max-microvolt = <1800000>;
503 };
504
505 hdmi_vdd_reg: ldo7 {
506 regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse";
507 regulator-min-microvolt = <3300000>;
508 regulator-max-microvolt = <3300000>;
509 };
510
511 hdmi_pll_reg: ldo8 {
512 regulator-name = "vdd_ldo8,avdd_hdmi_pll";
513 regulator-min-microvolt = <1800000>;
514 regulator-max-microvolt = <1800000>;
515 };
516
517 ldo9 {
518 regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
519 regulator-min-microvolt = <2850000>;
520 regulator-max-microvolt = <2850000>;
521 regulator-always-on;
522 };
523
524 ldo_rtc {
525 regulator-name = "vdd_rtc_out,vdd_cell";
526 regulator-min-microvolt = <3300000>;
527 regulator-max-microvolt = <3300000>;
528 regulator-always-on;
529 };
530 };
531 };
532
533 temperature-sensor@4c {
534 compatible = "onnn,nct1008";
535 reg = <0x4c>;
536 };
537 };
538
539 kbc@7000e200 {
540 status = "okay";
541 nvidia,debounce-delay-ms = <32>;
542 nvidia,repeat-delay-ms = <160>;
543 nvidia,ghost-filter;
544 nvidia,kbc-row-pins = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>;
545 nvidia,kbc-col-pins = <16 17 18 19 20 21 22 23>;
546 linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_W)
547 MATRIX_KEY(0x00, 0x03, KEY_S)
548 MATRIX_KEY(0x00, 0x04, KEY_A)
549 MATRIX_KEY(0x00, 0x05, KEY_Z)
550 MATRIX_KEY(0x00, 0x07, KEY_FN)
551
552 MATRIX_KEY(0x01, 0x07, KEY_LEFTMETA)
553 MATRIX_KEY(0x02, 0x06, KEY_RIGHTALT)
554 MATRIX_KEY(0x02, 0x07, KEY_LEFTALT)
555
556 MATRIX_KEY(0x03, 0x00, KEY_5)
557 MATRIX_KEY(0x03, 0x01, KEY_4)
558 MATRIX_KEY(0x03, 0x02, KEY_R)
559 MATRIX_KEY(0x03, 0x03, KEY_E)
560 MATRIX_KEY(0x03, 0x04, KEY_F)
561 MATRIX_KEY(0x03, 0x05, KEY_D)
562 MATRIX_KEY(0x03, 0x06, KEY_X)
563
564 MATRIX_KEY(0x04, 0x00, KEY_7)
565 MATRIX_KEY(0x04, 0x01, KEY_6)
566 MATRIX_KEY(0x04, 0x02, KEY_T)
567 MATRIX_KEY(0x04, 0x03, KEY_H)
568 MATRIX_KEY(0x04, 0x04, KEY_G)
569 MATRIX_KEY(0x04, 0x05, KEY_V)
570 MATRIX_KEY(0x04, 0x06, KEY_C)
571 MATRIX_KEY(0x04, 0x07, KEY_SPACE)
572
573 MATRIX_KEY(0x05, 0x00, KEY_9)
574 MATRIX_KEY(0x05, 0x01, KEY_8)
575 MATRIX_KEY(0x05, 0x02, KEY_U)
576 MATRIX_KEY(0x05, 0x03, KEY_Y)
577 MATRIX_KEY(0x05, 0x04, KEY_J)
578 MATRIX_KEY(0x05, 0x05, KEY_N)
579 MATRIX_KEY(0x05, 0x06, KEY_B)
580 MATRIX_KEY(0x05, 0x07, KEY_BACKSLASH)
581
582 MATRIX_KEY(0x06, 0x00, KEY_MINUS)
583 MATRIX_KEY(0x06, 0x01, KEY_0)
584 MATRIX_KEY(0x06, 0x02, KEY_O)
585 MATRIX_KEY(0x06, 0x03, KEY_I)
586 MATRIX_KEY(0x06, 0x04, KEY_L)
587 MATRIX_KEY(0x06, 0x05, KEY_K)
588 MATRIX_KEY(0x06, 0x06, KEY_COMMA)
589 MATRIX_KEY(0x06, 0x07, KEY_M)
590
591 MATRIX_KEY(0x07, 0x01, KEY_EQUAL)
592 MATRIX_KEY(0x07, 0x02, KEY_RIGHTBRACE)
593 MATRIX_KEY(0x07, 0x03, KEY_ENTER)
594 MATRIX_KEY(0x07, 0x07, KEY_MENU)
595
596 MATRIX_KEY(0x08, 0x04, KEY_RIGHTSHIFT)
597 MATRIX_KEY(0x08, 0x05, KEY_LEFTSHIFT)
598
599 MATRIX_KEY(0x09, 0x05, KEY_RIGHTCTRL)
600 MATRIX_KEY(0x09, 0x07, KEY_LEFTCTRL)
601
602 MATRIX_KEY(0x0B, 0x00, KEY_LEFTBRACE)
603 MATRIX_KEY(0x0B, 0x01, KEY_P)
604 MATRIX_KEY(0x0B, 0x02, KEY_APOSTROPHE)
605 MATRIX_KEY(0x0B, 0x03, KEY_SEMICOLON)
606 MATRIX_KEY(0x0B, 0x04, KEY_SLASH)
607 MATRIX_KEY(0x0B, 0x05, KEY_DOT)
608
609 MATRIX_KEY(0x0C, 0x00, KEY_F10)
610 MATRIX_KEY(0x0C, 0x01, KEY_F9)
611 MATRIX_KEY(0x0C, 0x02, KEY_BACKSPACE)
612 MATRIX_KEY(0x0C, 0x03, KEY_3)
613 MATRIX_KEY(0x0C, 0x04, KEY_2)
614 MATRIX_KEY(0x0C, 0x05, KEY_UP)
615 MATRIX_KEY(0x0C, 0x06, KEY_PRINT)
616 MATRIX_KEY(0x0C, 0x07, KEY_PAUSE)
617
618 MATRIX_KEY(0x0D, 0x00, KEY_INSERT)
619 MATRIX_KEY(0x0D, 0x01, KEY_DELETE)
620 MATRIX_KEY(0x0D, 0x03, KEY_PAGEUP )
621 MATRIX_KEY(0x0D, 0x04, KEY_PAGEDOWN)
622 MATRIX_KEY(0x0D, 0x05, KEY_RIGHT)
623 MATRIX_KEY(0x0D, 0x06, KEY_DOWN)
624 MATRIX_KEY(0x0D, 0x07, KEY_LEFT)
625
626 MATRIX_KEY(0x0E, 0x00, KEY_F11)
627 MATRIX_KEY(0x0E, 0x01, KEY_F12)
628 MATRIX_KEY(0x0E, 0x02, KEY_F8)
629 MATRIX_KEY(0x0E, 0x03, KEY_Q)
630 MATRIX_KEY(0x0E, 0x04, KEY_F4)
631 MATRIX_KEY(0x0E, 0x05, KEY_F3)
632 MATRIX_KEY(0x0E, 0x06, KEY_1)
633 MATRIX_KEY(0x0E, 0x07, KEY_F7)
634
635 MATRIX_KEY(0x0F, 0x00, KEY_ESC)
636 MATRIX_KEY(0x0F, 0x01, KEY_GRAVE)
637 MATRIX_KEY(0x0F, 0x02, KEY_F5)
638 MATRIX_KEY(0x0F, 0x03, KEY_TAB)
639 MATRIX_KEY(0x0F, 0x04, KEY_F1)
640 MATRIX_KEY(0x0F, 0x05, KEY_F2)
641 MATRIX_KEY(0x0F, 0x06, KEY_CAPSLOCK)
642 MATRIX_KEY(0x0F, 0x07, KEY_F6)
643
644 /* Software Handled Function Keys */
645 MATRIX_KEY(0x14, 0x00, KEY_KP7)
646
647 MATRIX_KEY(0x15, 0x00, KEY_KP9)
648 MATRIX_KEY(0x15, 0x01, KEY_KP8)
649 MATRIX_KEY(0x15, 0x02, KEY_KP4)
650 MATRIX_KEY(0x15, 0x04, KEY_KP1)
651
652 MATRIX_KEY(0x16, 0x01, KEY_KPSLASH)
653 MATRIX_KEY(0x16, 0x02, KEY_KP6)
654 MATRIX_KEY(0x16, 0x03, KEY_KP5)
655 MATRIX_KEY(0x16, 0x04, KEY_KP3)
656 MATRIX_KEY(0x16, 0x05, KEY_KP2)
657 MATRIX_KEY(0x16, 0x07, KEY_KP0)
658
659 MATRIX_KEY(0x1B, 0x01, KEY_KPASTERISK)
660 MATRIX_KEY(0x1B, 0x03, KEY_KPMINUS)
661 MATRIX_KEY(0x1B, 0x04, KEY_KPPLUS)
662 MATRIX_KEY(0x1B, 0x05, KEY_KPDOT)
663
664 MATRIX_KEY(0x1C, 0x05, KEY_VOLUMEUP)
665
666 MATRIX_KEY(0x1D, 0x03, KEY_HOME)
667 MATRIX_KEY(0x1D, 0x04, KEY_END)
668 MATRIX_KEY(0x1D, 0x05, KEY_BRIGHTNESSDOWN)
669 MATRIX_KEY(0x1D, 0x06, KEY_VOLUMEDOWN)
670 MATRIX_KEY(0x1D, 0x07, KEY_BRIGHTNESSUP)
671
672 MATRIX_KEY(0x1E, 0x00, KEY_NUMLOCK)
673 MATRIX_KEY(0x1E, 0x01, KEY_SCROLLLOCK)
674 MATRIX_KEY(0x1E, 0x02, KEY_MUTE)
675
676 MATRIX_KEY(0x1F, 0x04, KEY_HELP)>;
677 };
678
679 pmc@7000e400 {
680 nvidia,invert-interrupt;
681 nvidia,suspend-mode = <1>;
682 nvidia,cpu-pwr-good-time = <5000>;
683 nvidia,cpu-pwr-off-time = <5000>;
684 nvidia,core-pwr-good-time = <3845 3845>;
685 nvidia,core-pwr-off-time = <3875>;
686 nvidia,sys-clock-req-active-high;
687 };
688
689 memory-controller@7000f400 {
690 emc-table@190000 {
691 reg = <190000>;
692 compatible = "nvidia,tegra20-emc-table";
693 clock-frequency = <190000>;
694 nvidia,emc-registers = <0x0000000c 0x00000026
695 0x00000009 0x00000003 0x00000004 0x00000004
696 0x00000002 0x0000000c 0x00000003 0x00000003
697 0x00000002 0x00000001 0x00000004 0x00000005
698 0x00000004 0x00000009 0x0000000d 0x0000059f
699 0x00000000 0x00000003 0x00000003 0x00000003
700 0x00000003 0x00000001 0x0000000b 0x000000c8
701 0x00000003 0x00000007 0x00000004 0x0000000f
702 0x00000002 0x00000000 0x00000000 0x00000002
703 0x00000000 0x00000000 0x00000083 0xa06204ae
704 0x007dc010 0x00000000 0x00000000 0x00000000
705 0x00000000 0x00000000 0x00000000 0x00000000>;
706 };
707
708 emc-table@380000 {
709 reg = <380000>;
710 compatible = "nvidia,tegra20-emc-table";
711 clock-frequency = <380000>;
712 nvidia,emc-registers = <0x00000017 0x0000004b
713 0x00000012 0x00000006 0x00000004 0x00000005
714 0x00000003 0x0000000c 0x00000006 0x00000006
715 0x00000003 0x00000001 0x00000004 0x00000005
716 0x00000004 0x00000009 0x0000000d 0x00000b5f
717 0x00000000 0x00000003 0x00000003 0x00000006
718 0x00000006 0x00000001 0x00000011 0x000000c8
719 0x00000003 0x0000000e 0x00000007 0x0000000f
720 0x00000002 0x00000000 0x00000000 0x00000002
721 0x00000000 0x00000000 0x00000083 0xe044048b
722 0x007d8010 0x00000000 0x00000000 0x00000000
723 0x00000000 0x00000000 0x00000000 0x00000000>;
724 };
725 };
726
727 usb@c5000000 {
728 status = "okay";
729 dr_mode = "otg";
730 };
731
732 usb-phy@c5000000 {
733 status = "okay";
734 vbus-supply = <&vbus_reg>;
735 dr_mode = "otg";
736 };
737
738 usb@c5004000 {
739 status = "okay";
740 nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
741 GPIO_ACTIVE_LOW>;
742 };
743
744 usb-phy@c5004000 {
745 status = "okay";
746 nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
747 GPIO_ACTIVE_LOW>;
748 };
749
750 usb@c5008000 {
751 status = "okay";
752 };
753
754 usb-phy@c5008000 {
755 status = "okay";
756 };
757
758 sdhci@c8000000 {
759 status = "okay";
760 power-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>;
761 bus-width = <4>;
762 keep-power-in-suspend;
763 };
764
765 sdhci@c8000400 {
766 status = "okay";
767 cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
768 wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
769 power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
770 bus-width = <4>;
771 };
772
773 sdhci@c8000600 {
774 status = "okay";
775 bus-width = <8>;
776 non-removable;
777 };
778
779 backlight: backlight {
780 compatible = "pwm-backlight";
781
782 enable-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
783 power-supply = <&vdd_bl_reg>;
784 pwms = <&pwm 2 5000000>;
785
786 brightness-levels = <0 4 8 16 32 64 128 255>;
787 default-brightness-level = <6>;
788 };
789
790 clocks {
791 compatible = "simple-bus";
792 #address-cells = <1>;
793 #size-cells = <0>;
794
795 clk32k_in: clock@0 {
796 compatible = "fixed-clock";
797 reg=<0>;
798 #clock-cells = <0>;
799 clock-frequency = <32768>;
800 };
801 };
802
803 gpio-keys {
804 compatible = "gpio-keys";
805
806 power {
807 label = "Power";
808 gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
809 linux,code = <KEY_POWER>;
810 gpio-key,wakeup;
811 };
812
813 lid {
814 label = "Lid";
815 gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_HIGH>;
816 linux,input-type = <5>; /* EV_SW */
817 linux,code = <0>; /* SW_LID */
818 debounce-interval = <1>;
819 gpio-key,wakeup;
820 };
821 };
822
823 panel: panel {
824 compatible = "chunghwa,claa101wa01a", "simple-panel";
825
826 power-supply = <&vdd_pnl_reg>;
827 enable-gpios = <&gpio TEGRA_GPIO(B, 2) GPIO_ACTIVE_HIGH>;
828
829 backlight = <&backlight>;
830 ddc-i2c-bus = <&lvds_ddc>;
831 };
832
833 regulators {
834 compatible = "simple-bus";
835 #address-cells = <1>;
836 #size-cells = <0>;
837
838 vdd_5v0_reg: regulator@0 {
839 compatible = "regulator-fixed";
840 reg = <0>;
841 regulator-name = "vdd_5v0";
842 regulator-min-microvolt = <5000000>;
843 regulator-max-microvolt = <5000000>;
844 regulator-always-on;
845 };
846
847 regulator@1 {
848 compatible = "regulator-fixed";
849 reg = <1>;
850 regulator-name = "vdd_1v5";
851 regulator-min-microvolt = <1500000>;
852 regulator-max-microvolt = <1500000>;
853 gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
854 };
855
856 regulator@2 {
857 compatible = "regulator-fixed";
858 reg = <2>;
859 regulator-name = "vdd_1v2";
860 regulator-min-microvolt = <1200000>;
861 regulator-max-microvolt = <1200000>;
862 gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
863 enable-active-high;
864 };
865
866 vbus_reg: regulator@3 {
867 compatible = "regulator-fixed";
868 reg = <3>;
869 regulator-name = "vdd_vbus_wup1";
870 regulator-min-microvolt = <5000000>;
871 regulator-max-microvolt = <5000000>;
872 enable-active-high;
873 gpio = <&gpio TEGRA_GPIO(D, 0) 0>;
874 regulator-always-on;
875 regulator-boot-on;
876 };
877
878 vdd_pnl_reg: regulator@4 {
879 compatible = "regulator-fixed";
880 reg = <4>;
881 regulator-name = "vdd_pnl";
882 regulator-min-microvolt = <2800000>;
883 regulator-max-microvolt = <2800000>;
884 gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
885 enable-active-high;
886 };
887
888 vdd_bl_reg: regulator@5 {
889 compatible = "regulator-fixed";
890 reg = <5>;
891 regulator-name = "vdd_bl";
892 regulator-min-microvolt = <2800000>;
893 regulator-max-microvolt = <2800000>;
894 gpio = <&gpio TEGRA_GPIO(W, 0) GPIO_ACTIVE_HIGH>;
895 enable-active-high;
896 };
897
898 vdd_hdmi: regulator@6 {
899 compatible = "regulator-fixed";
900 reg = <6>;
901 regulator-name = "VDDIO_HDMI";
902 regulator-min-microvolt = <5000000>;
903 regulator-max-microvolt = <5000000>;
904 gpio = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_HIGH>;
905 enable-active-high;
906 vin-supply = <&vdd_5v0_reg>;
907 };
908 };
909
910 sound {
911 compatible = "nvidia,tegra-audio-wm8903-seaboard",
912 "nvidia,tegra-audio-wm8903";
913 nvidia,model = "NVIDIA Tegra Seaboard";
914
915 nvidia,audio-routing =
916 "Headphone Jack", "HPOUTR",
917 "Headphone Jack", "HPOUTL",
918 "Int Spk", "ROP",
919 "Int Spk", "RON",
920 "Int Spk", "LOP",
921 "Int Spk", "LON",
922 "Mic Jack", "MICBIAS",
923 "IN1R", "Mic Jack";
924
925 nvidia,i2s-controller = <&tegra_i2s1>;
926 nvidia,audio-codec = <&wm8903>;
927
928 nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
929 nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(X, 1) GPIO_ACTIVE_HIGH>;
930
931 clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
932 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
933 <&tegra_car TEGRA20_CLK_CDEV1>;
934 clock-names = "pll_a", "pll_a_out0", "mclk";
935 };
936};