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