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@0 {
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_idle: pinmux-i2cmux-idle {
300			ddc {
301				nvidia,pins = "ddc";
302				nvidia,function = "rsvd4";
303			};
304			pta {
305				nvidia,pins = "pta";
306				nvidia,function = "rsvd4";
307			};
308		};
309
310		state_i2cmux_pta: pinmux-i2cmux-pta {
311			ddc {
312				nvidia,pins = "ddc";
313				nvidia,function = "rsvd4";
314			};
315			pta {
316				nvidia,pins = "pta";
317				nvidia,function = "i2c2";
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 = "invensense,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	i2c@7000c500 {
374		status = "okay";
375		clock-frequency = <400000>;
376	};
377
378	i2c@7000d000 {
379		status = "okay";
380		clock-frequency = <400000>;
381
382		magnetometer@c {
383			compatible = "asahi-kasei,ak8975";
384			reg = <0xc>;
385			interrupt-parent = <&gpio>;
386			interrupts = <TEGRA_GPIO(N, 5) IRQ_TYPE_LEVEL_HIGH>;
387		};
388
389		pmic: tps6586x@34 {
390			compatible = "ti,tps6586x";
391			reg = <0x34>;
392			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
393
394			ti,system-power-controller;
395
396			#gpio-cells = <2>;
397			gpio-controller;
398
399			sys-supply = <&vdd_5v0_reg>;
400			vin-sm0-supply = <&sys_reg>;
401			vin-sm1-supply = <&sys_reg>;
402			vin-sm2-supply = <&sys_reg>;
403			vinldo01-supply = <&sm2_reg>;
404			vinldo23-supply = <&sm2_reg>;
405			vinldo4-supply = <&sm2_reg>;
406			vinldo678-supply = <&sm2_reg>;
407			vinldo9-supply = <&sm2_reg>;
408
409			regulators {
410				sys_reg: sys {
411					regulator-name = "vdd_sys";
412					regulator-always-on;
413				};
414
415				vdd_core: sm0 {
416					regulator-name = "vdd_sm0,vdd_core";
417					regulator-min-microvolt = <1300000>;
418					regulator-max-microvolt = <1300000>;
419					regulator-always-on;
420				};
421
422				sm1 {
423					regulator-name = "vdd_sm1,vdd_cpu";
424					regulator-min-microvolt = <1125000>;
425					regulator-max-microvolt = <1125000>;
426					regulator-always-on;
427				};
428
429				sm2_reg: sm2 {
430					regulator-name = "vdd_sm2,vin_ldo*";
431					regulator-min-microvolt = <3700000>;
432					regulator-max-microvolt = <3700000>;
433					regulator-always-on;
434				};
435
436				/* LDO0 is not connected to anything */
437
438				ldo1 {
439					regulator-name = "vdd_ldo1,avdd_pll*";
440					regulator-min-microvolt = <1100000>;
441					regulator-max-microvolt = <1100000>;
442					regulator-always-on;
443				};
444
445				ldo2 {
446					regulator-name = "vdd_ldo2,vdd_rtc";
447					regulator-min-microvolt = <1200000>;
448					regulator-max-microvolt = <1200000>;
449				};
450
451				ldo3 {
452					regulator-name = "vdd_ldo3,avdd_usb*";
453					regulator-min-microvolt = <3300000>;
454					regulator-max-microvolt = <3300000>;
455					regulator-always-on;
456				};
457
458				ldo4 {
459					regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
460					regulator-min-microvolt = <1800000>;
461					regulator-max-microvolt = <1800000>;
462					regulator-always-on;
463				};
464
465				ldo5 {
466					regulator-name = "vdd_ldo5,vcore_mmc";
467					regulator-min-microvolt = <2850000>;
468					regulator-max-microvolt = <2850000>;
469					regulator-always-on;
470				};
471
472				ldo6 {
473					regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam";
474					regulator-min-microvolt = <1800000>;
475					regulator-max-microvolt = <1800000>;
476				};
477
478				hdmi_vdd_reg: ldo7 {
479					regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse";
480					regulator-min-microvolt = <3300000>;
481					regulator-max-microvolt = <3300000>;
482				};
483
484				hdmi_pll_reg: ldo8 {
485					regulator-name = "vdd_ldo8,avdd_hdmi_pll";
486					regulator-min-microvolt = <1800000>;
487					regulator-max-microvolt = <1800000>;
488				};
489
490				ldo9 {
491					regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
492					regulator-min-microvolt = <2850000>;
493					regulator-max-microvolt = <2850000>;
494					regulator-always-on;
495				};
496
497				ldo_rtc {
498					regulator-name = "vdd_rtc_out,vdd_cell";
499					regulator-min-microvolt = <3300000>;
500					regulator-max-microvolt = <3300000>;
501					regulator-always-on;
502				};
503			};
504		};
505
506		temperature-sensor@4c {
507			compatible = "onnn,nct1008";
508			reg = <0x4c>;
509		};
510	};
511
512	kbc@7000e200 {
513		status = "okay";
514		nvidia,debounce-delay-ms = <32>;
515		nvidia,repeat-delay-ms = <160>;
516		nvidia,ghost-filter;
517		nvidia,kbc-row-pins = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>;
518		nvidia,kbc-col-pins = <16 17 18 19 20 21 22 23>;
519		linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_W)
520				MATRIX_KEY(0x00, 0x03, KEY_S)
521				MATRIX_KEY(0x00, 0x04, KEY_A)
522				MATRIX_KEY(0x00, 0x05, KEY_Z)
523				MATRIX_KEY(0x00, 0x07, KEY_FN)
524
525				MATRIX_KEY(0x01, 0x07, KEY_LEFTMETA)
526				MATRIX_KEY(0x02, 0x06, KEY_RIGHTALT)
527				MATRIX_KEY(0x02, 0x07, KEY_LEFTALT)
528
529				MATRIX_KEY(0x03, 0x00, KEY_5)
530				MATRIX_KEY(0x03, 0x01, KEY_4)
531				MATRIX_KEY(0x03, 0x02, KEY_R)
532				MATRIX_KEY(0x03, 0x03, KEY_E)
533				MATRIX_KEY(0x03, 0x04, KEY_F)
534				MATRIX_KEY(0x03, 0x05, KEY_D)
535				MATRIX_KEY(0x03, 0x06, KEY_X)
536
537				MATRIX_KEY(0x04, 0x00, KEY_7)
538				MATRIX_KEY(0x04, 0x01, KEY_6)
539				MATRIX_KEY(0x04, 0x02, KEY_T)
540				MATRIX_KEY(0x04, 0x03, KEY_H)
541				MATRIX_KEY(0x04, 0x04, KEY_G)
542				MATRIX_KEY(0x04, 0x05, KEY_V)
543				MATRIX_KEY(0x04, 0x06, KEY_C)
544				MATRIX_KEY(0x04, 0x07, KEY_SPACE)
545
546				MATRIX_KEY(0x05, 0x00, KEY_9)
547				MATRIX_KEY(0x05, 0x01, KEY_8)
548				MATRIX_KEY(0x05, 0x02, KEY_U)
549				MATRIX_KEY(0x05, 0x03, KEY_Y)
550				MATRIX_KEY(0x05, 0x04, KEY_J)
551				MATRIX_KEY(0x05, 0x05, KEY_N)
552				MATRIX_KEY(0x05, 0x06, KEY_B)
553				MATRIX_KEY(0x05, 0x07, KEY_BACKSLASH)
554
555				MATRIX_KEY(0x06, 0x00, KEY_MINUS)
556				MATRIX_KEY(0x06, 0x01, KEY_0)
557				MATRIX_KEY(0x06, 0x02, KEY_O)
558				MATRIX_KEY(0x06, 0x03, KEY_I)
559				MATRIX_KEY(0x06, 0x04, KEY_L)
560				MATRIX_KEY(0x06, 0x05, KEY_K)
561				MATRIX_KEY(0x06, 0x06, KEY_COMMA)
562				MATRIX_KEY(0x06, 0x07, KEY_M)
563
564				MATRIX_KEY(0x07, 0x01, KEY_EQUAL)
565				MATRIX_KEY(0x07, 0x02, KEY_RIGHTBRACE)
566				MATRIX_KEY(0x07, 0x03, KEY_ENTER)
567				MATRIX_KEY(0x07, 0x07, KEY_MENU)
568
569				MATRIX_KEY(0x08, 0x04, KEY_RIGHTSHIFT)
570				MATRIX_KEY(0x08, 0x05, KEY_LEFTSHIFT)
571
572				MATRIX_KEY(0x09, 0x05, KEY_RIGHTCTRL)
573				MATRIX_KEY(0x09, 0x07, KEY_LEFTCTRL)
574
575				MATRIX_KEY(0x0B, 0x00, KEY_LEFTBRACE)
576				MATRIX_KEY(0x0B, 0x01, KEY_P)
577				MATRIX_KEY(0x0B, 0x02, KEY_APOSTROPHE)
578				MATRIX_KEY(0x0B, 0x03, KEY_SEMICOLON)
579				MATRIX_KEY(0x0B, 0x04, KEY_SLASH)
580				MATRIX_KEY(0x0B, 0x05, KEY_DOT)
581
582				MATRIX_KEY(0x0C, 0x00, KEY_F10)
583				MATRIX_KEY(0x0C, 0x01, KEY_F9)
584				MATRIX_KEY(0x0C, 0x02, KEY_BACKSPACE)
585				MATRIX_KEY(0x0C, 0x03, KEY_3)
586				MATRIX_KEY(0x0C, 0x04, KEY_2)
587				MATRIX_KEY(0x0C, 0x05, KEY_UP)
588				MATRIX_KEY(0x0C, 0x06, KEY_PRINT)
589				MATRIX_KEY(0x0C, 0x07, KEY_PAUSE)
590
591				MATRIX_KEY(0x0D, 0x00, KEY_INSERT)
592				MATRIX_KEY(0x0D, 0x01, KEY_DELETE)
593				MATRIX_KEY(0x0D, 0x03, KEY_PAGEUP )
594				MATRIX_KEY(0x0D, 0x04, KEY_PAGEDOWN)
595				MATRIX_KEY(0x0D, 0x05, KEY_RIGHT)
596				MATRIX_KEY(0x0D, 0x06, KEY_DOWN)
597				MATRIX_KEY(0x0D, 0x07, KEY_LEFT)
598
599				MATRIX_KEY(0x0E, 0x00, KEY_F11)
600				MATRIX_KEY(0x0E, 0x01, KEY_F12)
601				MATRIX_KEY(0x0E, 0x02, KEY_F8)
602				MATRIX_KEY(0x0E, 0x03, KEY_Q)
603				MATRIX_KEY(0x0E, 0x04, KEY_F4)
604				MATRIX_KEY(0x0E, 0x05, KEY_F3)
605				MATRIX_KEY(0x0E, 0x06, KEY_1)
606				MATRIX_KEY(0x0E, 0x07, KEY_F7)
607
608				MATRIX_KEY(0x0F, 0x00, KEY_ESC)
609				MATRIX_KEY(0x0F, 0x01, KEY_GRAVE)
610				MATRIX_KEY(0x0F, 0x02, KEY_F5)
611				MATRIX_KEY(0x0F, 0x03, KEY_TAB)
612				MATRIX_KEY(0x0F, 0x04, KEY_F1)
613				MATRIX_KEY(0x0F, 0x05, KEY_F2)
614				MATRIX_KEY(0x0F, 0x06, KEY_CAPSLOCK)
615				MATRIX_KEY(0x0F, 0x07, KEY_F6)
616
617				/* Software Handled Function Keys */
618				MATRIX_KEY(0x14, 0x00, KEY_KP7)
619
620				MATRIX_KEY(0x15, 0x00, KEY_KP9)
621				MATRIX_KEY(0x15, 0x01, KEY_KP8)
622				MATRIX_KEY(0x15, 0x02, KEY_KP4)
623				MATRIX_KEY(0x15, 0x04, KEY_KP1)
624
625				MATRIX_KEY(0x16, 0x01, KEY_KPSLASH)
626				MATRIX_KEY(0x16, 0x02, KEY_KP6)
627				MATRIX_KEY(0x16, 0x03, KEY_KP5)
628				MATRIX_KEY(0x16, 0x04, KEY_KP3)
629				MATRIX_KEY(0x16, 0x05, KEY_KP2)
630				MATRIX_KEY(0x16, 0x07, KEY_KP0)
631
632				MATRIX_KEY(0x1B, 0x01, KEY_KPASTERISK)
633				MATRIX_KEY(0x1B, 0x03, KEY_KPMINUS)
634				MATRIX_KEY(0x1B, 0x04, KEY_KPPLUS)
635				MATRIX_KEY(0x1B, 0x05, KEY_KPDOT)
636
637				MATRIX_KEY(0x1C, 0x05, KEY_VOLUMEUP)
638
639				MATRIX_KEY(0x1D, 0x03, KEY_HOME)
640				MATRIX_KEY(0x1D, 0x04, KEY_END)
641				MATRIX_KEY(0x1D, 0x05, KEY_BRIGHTNESSDOWN)
642				MATRIX_KEY(0x1D, 0x06, KEY_VOLUMEDOWN)
643				MATRIX_KEY(0x1D, 0x07, KEY_BRIGHTNESSUP)
644
645				MATRIX_KEY(0x1E, 0x00, KEY_NUMLOCK)
646				MATRIX_KEY(0x1E, 0x01, KEY_SCROLLLOCK)
647				MATRIX_KEY(0x1E, 0x02, KEY_MUTE)
648
649				MATRIX_KEY(0x1F, 0x04, KEY_HELP)>;
650	};
651
652	pmc@7000e400 {
653		nvidia,invert-interrupt;
654		nvidia,suspend-mode = <1>;
655		nvidia,cpu-pwr-good-time = <5000>;
656		nvidia,cpu-pwr-off-time = <5000>;
657		nvidia,core-pwr-good-time = <3845 3845>;
658		nvidia,core-pwr-off-time = <3875>;
659		nvidia,sys-clock-req-active-high;
660		core-supply = <&vdd_core>;
661	};
662
663	memory-controller@7000f400 {
664		emc-table@190000 {
665			reg = <190000>;
666			compatible = "nvidia,tegra20-emc-table";
667			clock-frequency = <190000>;
668			nvidia,emc-registers = <0x0000000c 0x00000026
669				0x00000009 0x00000003 0x00000004 0x00000004
670				0x00000002 0x0000000c 0x00000003 0x00000003
671				0x00000002 0x00000001 0x00000004 0x00000005
672				0x00000004 0x00000009 0x0000000d 0x0000059f
673				0x00000000 0x00000003 0x00000003 0x00000003
674				0x00000003 0x00000001 0x0000000b 0x000000c8
675				0x00000003 0x00000007 0x00000004 0x0000000f
676				0x00000002 0x00000000 0x00000000 0x00000002
677				0x00000000 0x00000000 0x00000083 0xa06204ae
678				0x007dc010 0x00000000 0x00000000 0x00000000
679				0x00000000 0x00000000 0x00000000 0x00000000>;
680		};
681
682		emc-table@380000 {
683			reg = <380000>;
684			compatible = "nvidia,tegra20-emc-table";
685			clock-frequency = <380000>;
686			nvidia,emc-registers = <0x00000017 0x0000004b
687				0x00000012 0x00000006 0x00000004 0x00000005
688				0x00000003 0x0000000c 0x00000006 0x00000006
689				0x00000003 0x00000001 0x00000004 0x00000005
690				0x00000004 0x00000009 0x0000000d 0x00000b5f
691				0x00000000 0x00000003 0x00000003 0x00000006
692				0x00000006 0x00000001 0x00000011 0x000000c8
693				0x00000003 0x0000000e 0x00000007 0x0000000f
694				0x00000002 0x00000000 0x00000000 0x00000002
695				0x00000000 0x00000000 0x00000083 0xe044048b
696				0x007d8010 0x00000000 0x00000000 0x00000000
697				0x00000000 0x00000000 0x00000000 0x00000000>;
698		};
699	};
700
701	usb@c5000000 {
702		status = "okay";
703		dr_mode = "otg";
704	};
705
706	usb-phy@c5000000 {
707		status = "okay";
708		vbus-supply = <&vbus_reg>;
709		dr_mode = "otg";
710	};
711
712	usb@c5004000 {
713		status = "okay";
714	};
715
716	usb-phy@c5004000 {
717		status = "okay";
718		nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
719			GPIO_ACTIVE_LOW>;
720	};
721
722	usb@c5008000 {
723		status = "okay";
724	};
725
726	usb-phy@c5008000 {
727		status = "okay";
728	};
729
730	mmc@c8000000 {
731		status = "okay";
732		power-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>;
733		bus-width = <4>;
734		keep-power-in-suspend;
735	};
736
737	mmc@c8000400 {
738		status = "okay";
739		cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
740		wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
741		power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
742		bus-width = <4>;
743	};
744
745	mmc@c8000600 {
746		status = "okay";
747		bus-width = <8>;
748		non-removable;
749	};
750
751	backlight: backlight {
752		compatible = "pwm-backlight";
753
754		enable-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
755		power-supply = <&vdd_bl_reg>;
756		pwms = <&pwm 2 5000000>;
757
758		brightness-levels = <0 4 8 16 32 64 128 255>;
759		default-brightness-level = <6>;
760	};
761
762	clk32k_in: clock-32k {
763		compatible = "fixed-clock";
764		clock-frequency = <32768>;
765		#clock-cells = <0>;
766	};
767
768	gpio-keys {
769		compatible = "gpio-keys";
770
771		key-power {
772			label = "Power";
773			gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
774			linux,code = <KEY_POWER>;
775			wakeup-source;
776		};
777
778		switch-lid {
779			label = "Lid";
780			gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_HIGH>;
781			linux,input-type = <5>; /* EV_SW */
782			linux,code = <0>; /* SW_LID */
783			debounce-interval = <1>;
784			wakeup-source;
785		};
786	};
787
788	i2cmux {
789		compatible = "i2c-mux-pinctrl";
790		#address-cells = <1>;
791		#size-cells = <0>;
792
793		i2c-parent = <&{/i2c@7000c400}>;
794
795		pinctrl-names = "ddc", "pta", "idle";
796		pinctrl-0 = <&state_i2cmux_ddc>;
797		pinctrl-1 = <&state_i2cmux_pta>;
798		pinctrl-2 = <&state_i2cmux_idle>;
799
800		hdmi_ddc: i2c@0 {
801			reg = <0>;
802			#address-cells = <1>;
803			#size-cells = <0>;
804		};
805
806		lvds_ddc: i2c@1 {
807			reg = <1>;
808			#address-cells = <1>;
809			#size-cells = <0>;
810
811			smart-battery@b {
812				compatible = "ti,bq20z75", "sbs,sbs-battery";
813				reg = <0xb>;
814				sbs,i2c-retry-count = <2>;
815				sbs,poll-retry-count = <10>;
816			};
817		};
818	};
819
820	panel: panel {
821		compatible = "chunghwa,claa101wa01a";
822
823		power-supply = <&vdd_pnl_reg>;
824		enable-gpios = <&gpio TEGRA_GPIO(B, 2) GPIO_ACTIVE_HIGH>;
825
826		backlight = <&backlight>;
827		ddc-i2c-bus = <&lvds_ddc>;
828	};
829
830	vdd_5v0_reg: regulator-5v0 {
831		compatible = "regulator-fixed";
832		regulator-name = "vdd_5v0";
833		regulator-min-microvolt = <5000000>;
834		regulator-max-microvolt = <5000000>;
835		regulator-always-on;
836	};
837
838	regulator-1v5 {
839		compatible = "regulator-fixed";
840		regulator-name = "vdd_1v5";
841		regulator-min-microvolt = <1500000>;
842		regulator-max-microvolt = <1500000>;
843		gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
844	};
845
846	regulator-1v2 {
847		compatible = "regulator-fixed";
848		regulator-name = "vdd_1v2";
849		regulator-min-microvolt = <1200000>;
850		regulator-max-microvolt = <1200000>;
851		gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
852		enable-active-high;
853	};
854
855	vbus_reg: regulator-vbus {
856		compatible = "regulator-fixed";
857		regulator-name = "vdd_vbus_wup1";
858		regulator-min-microvolt = <5000000>;
859		regulator-max-microvolt = <5000000>;
860		enable-active-high;
861		gpio = <&gpio TEGRA_GPIO(D, 0) 0>;
862		regulator-always-on;
863		regulator-boot-on;
864	};
865
866	vdd_pnl_reg: regulator-pnl {
867		compatible = "regulator-fixed";
868		regulator-name = "vdd_pnl";
869		regulator-min-microvolt = <2800000>;
870		regulator-max-microvolt = <2800000>;
871		gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
872		enable-active-high;
873	};
874
875	vdd_bl_reg: regulator-bl {
876		compatible = "regulator-fixed";
877		regulator-name = "vdd_bl";
878		regulator-min-microvolt = <2800000>;
879		regulator-max-microvolt = <2800000>;
880		gpio = <&gpio TEGRA_GPIO(W, 0) GPIO_ACTIVE_HIGH>;
881		enable-active-high;
882	};
883
884	vdd_hdmi: regulator-hdmi {
885		compatible = "regulator-fixed";
886		regulator-name = "VDDIO_HDMI";
887		regulator-min-microvolt = <5000000>;
888		regulator-max-microvolt = <5000000>;
889		gpio = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_HIGH>;
890		enable-active-high;
891		vin-supply = <&vdd_5v0_reg>;
892	};
893
894	sound {
895		compatible = "nvidia,tegra-audio-wm8903-seaboard",
896			     "nvidia,tegra-audio-wm8903";
897		nvidia,model = "NVIDIA Tegra Seaboard";
898
899		nvidia,audio-routing =
900			"Headphone Jack", "HPOUTR",
901			"Headphone Jack", "HPOUTL",
902			"Int Spk", "ROP",
903			"Int Spk", "RON",
904			"Int Spk", "LOP",
905			"Int Spk", "LON",
906			"Mic Jack", "MICBIAS",
907			"IN1R", "Mic Jack";
908
909		nvidia,i2s-controller = <&tegra_i2s1>;
910		nvidia,audio-codec = <&wm8903>;
911
912		nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
913		nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(X, 1) GPIO_ACTIVE_LOW>;
914
915		clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
916			 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
917			 <&tegra_car TEGRA20_CLK_CDEV1>;
918		clock-names = "pll_a", "pll_a_out0", "mclk";
919	};
920};
921