Loading...
Note: File does not exist in v6.13.7.
1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/input/input.h>
3#include "tegra30.dtsi"
4
5/**
6 * This file contains common DT entry for all fab version of Cardhu.
7 * There is multiple fab version of Cardhu starting from A01 to A07.
8 * Cardhu fab version A01 and A03 are not supported. Cardhu fab version
9 * A02 will have different sets of GPIOs for fixed regulator compare to
10 * Cardhu fab version A04. The Cardhu fab version A05, A06, A07 are
11 * compatible with fab version A04. Based on Cardhu fab version, the
12 * related dts file need to be chosen like for Cardhu fab version A02,
13 * use tegra30-cardhu-a02.dts, Cardhu fab version A04 and later, use
14 * tegra30-cardhu-a04.dts.
15 * The identification of board is done in two ways, by looking the sticker
16 * on PCB and by reading board id eeprom.
17 * The sticker will have number like 600-81291-1000-002 C.3. In this 4th
18 * number is the fab version like here it is 002 and hence fab version A02.
19 * The (downstream internal) U-Boot of Cardhu display the board-id as
20 * follows:
21 * BoardID: 0C5B, SKU: 0A01, Fab: 02, Rev: 45.00
22 * In this Fab version is 02 i.e. A02.
23 * The BoardID I2C eeprom is interfaced through i2c5 (pwr_i2c address 0x56).
24 * The location 0x8 of this eeprom contains the Fab version. It is 1 byte
25 * wide.
26 */
27
28/ {
29 model = "NVIDIA Tegra30 Cardhu evaluation board";
30 compatible = "nvidia,cardhu", "nvidia,tegra30";
31
32 aliases {
33 rtc0 = "/i2c@7000d000/tps65911@2d";
34 rtc1 = "/rtc@7000e000";
35 serial0 = &uarta;
36 serial1 = &uartc;
37 };
38
39 chosen {
40 stdout-path = "serial0:115200n8";
41 };
42
43 memory {
44 reg = <0x80000000 0x40000000>;
45 };
46
47 pcie@3000 {
48 status = "okay";
49
50 /* AVDD_PEXA and VDD_PEXA inputs are grounded on Cardhu. */
51 avdd-pexb-supply = <&ldo1_reg>;
52 vdd-pexb-supply = <&ldo1_reg>;
53 avdd-pex-pll-supply = <&ldo1_reg>;
54 hvdd-pex-supply = <&pex_hvdd_3v3_reg>;
55 vddio-pex-ctl-supply = <&sys_3v3_reg>;
56 avdd-plle-supply = <&ldo2_reg>;
57
58 pci@1,0 {
59 nvidia,num-lanes = <4>;
60 };
61
62 pci@2,0 {
63 nvidia,num-lanes = <1>;
64 };
65
66 pci@3,0 {
67 status = "okay";
68 nvidia,num-lanes = <1>;
69 };
70 };
71
72 host1x@50000000 {
73 dc@54200000 {
74 rgb {
75 status = "okay";
76
77 nvidia,panel = <&panel>;
78 };
79 };
80 };
81
82 pinmux@70000868 {
83 pinctrl-names = "default";
84 pinctrl-0 = <&state_default>;
85
86 state_default: pinmux {
87 sdmmc1_clk_pz0 {
88 nvidia,pins = "sdmmc1_clk_pz0";
89 nvidia,function = "sdmmc1";
90 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
91 nvidia,tristate = <TEGRA_PIN_DISABLE>;
92 };
93 sdmmc1_cmd_pz1 {
94 nvidia,pins = "sdmmc1_cmd_pz1",
95 "sdmmc1_dat0_py7",
96 "sdmmc1_dat1_py6",
97 "sdmmc1_dat2_py5",
98 "sdmmc1_dat3_py4";
99 nvidia,function = "sdmmc1";
100 nvidia,pull = <TEGRA_PIN_PULL_UP>;
101 nvidia,tristate = <TEGRA_PIN_DISABLE>;
102 };
103 sdmmc3_clk_pa6 {
104 nvidia,pins = "sdmmc3_clk_pa6";
105 nvidia,function = "sdmmc3";
106 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
107 nvidia,tristate = <TEGRA_PIN_DISABLE>;
108 };
109 sdmmc3_cmd_pa7 {
110 nvidia,pins = "sdmmc3_cmd_pa7",
111 "sdmmc3_dat0_pb7",
112 "sdmmc3_dat1_pb6",
113 "sdmmc3_dat2_pb5",
114 "sdmmc3_dat3_pb4";
115 nvidia,function = "sdmmc3";
116 nvidia,pull = <TEGRA_PIN_PULL_UP>;
117 nvidia,tristate = <TEGRA_PIN_DISABLE>;
118 };
119 sdmmc4_clk_pcc4 {
120 nvidia,pins = "sdmmc4_clk_pcc4",
121 "sdmmc4_rst_n_pcc3";
122 nvidia,function = "sdmmc4";
123 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
124 nvidia,tristate = <TEGRA_PIN_DISABLE>;
125 };
126 sdmmc4_dat0_paa0 {
127 nvidia,pins = "sdmmc4_dat0_paa0",
128 "sdmmc4_dat1_paa1",
129 "sdmmc4_dat2_paa2",
130 "sdmmc4_dat3_paa3",
131 "sdmmc4_dat4_paa4",
132 "sdmmc4_dat5_paa5",
133 "sdmmc4_dat6_paa6",
134 "sdmmc4_dat7_paa7";
135 nvidia,function = "sdmmc4";
136 nvidia,pull = <TEGRA_PIN_PULL_UP>;
137 nvidia,tristate = <TEGRA_PIN_DISABLE>;
138 };
139 dap2_fs_pa2 {
140 nvidia,pins = "dap2_fs_pa2",
141 "dap2_sclk_pa3",
142 "dap2_din_pa4",
143 "dap2_dout_pa5";
144 nvidia,function = "i2s1";
145 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
146 nvidia,tristate = <TEGRA_PIN_DISABLE>;
147 };
148 sdio3 {
149 nvidia,pins = "drive_sdio3";
150 nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
151 nvidia,schmitt = <TEGRA_PIN_DISABLE>;
152 nvidia,pull-down-strength = <46>;
153 nvidia,pull-up-strength = <42>;
154 nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FAST>;
155 nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FAST>;
156 };
157 uart3_txd_pw6 {
158 nvidia,pins = "uart3_txd_pw6",
159 "uart3_cts_n_pa1",
160 "uart3_rts_n_pc0",
161 "uart3_rxd_pw7";
162 nvidia,function = "uartc";
163 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
164 nvidia,tristate = <TEGRA_PIN_DISABLE>;
165 };
166 };
167 };
168
169 serial@70006000 {
170 status = "okay";
171 };
172
173 serial@70006200 {
174 compatible = "nvidia,tegra30-hsuart";
175 status = "okay";
176 };
177
178 pwm@7000a000 {
179 status = "okay";
180 };
181
182 panelddc: i2c@7000c000 {
183 status = "okay";
184 clock-frequency = <100000>;
185 };
186
187 i2c@7000c400 {
188 status = "okay";
189 clock-frequency = <100000>;
190 };
191
192 i2c@7000c500 {
193 status = "okay";
194 clock-frequency = <100000>;
195
196 /* ALS and Proximity sensor */
197 isl29028@44 {
198 compatible = "isil,isl29028";
199 reg = <0x44>;
200 interrupt-parent = <&gpio>;
201 interrupts = <TEGRA_GPIO(L, 0) IRQ_TYPE_LEVEL_HIGH>;
202 };
203
204 i2cmux@70 {
205 compatible = "nxp,pca9546";
206 #address-cells = <1>;
207 #size-cells = <0>;
208 reg = <0x70>;
209 };
210 };
211
212 i2c@7000c700 {
213 status = "okay";
214 clock-frequency = <100000>;
215 };
216
217 i2c@7000d000 {
218 status = "okay";
219 clock-frequency = <100000>;
220
221 wm8903: wm8903@1a {
222 compatible = "wlf,wm8903";
223 reg = <0x1a>;
224 interrupt-parent = <&gpio>;
225 interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_HIGH>;
226
227 gpio-controller;
228 #gpio-cells = <2>;
229
230 micdet-cfg = <0>;
231 micdet-delay = <100>;
232 gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
233 };
234
235 pmic: tps65911@2d {
236 compatible = "ti,tps65911";
237 reg = <0x2d>;
238
239 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
240 #interrupt-cells = <2>;
241 interrupt-controller;
242
243 ti,system-power-controller;
244
245 #gpio-cells = <2>;
246 gpio-controller;
247
248 vcc1-supply = <&vdd_ac_bat_reg>;
249 vcc2-supply = <&vdd_ac_bat_reg>;
250 vcc3-supply = <&vio_reg>;
251 vcc4-supply = <&vdd_5v0_reg>;
252 vcc5-supply = <&vdd_ac_bat_reg>;
253 vcc6-supply = <&vdd2_reg>;
254 vcc7-supply = <&vdd_ac_bat_reg>;
255 vccio-supply = <&vdd_ac_bat_reg>;
256
257 regulators {
258 vdd1_reg: vdd1 {
259 regulator-name = "vddio_ddr_1v2";
260 regulator-min-microvolt = <1200000>;
261 regulator-max-microvolt = <1200000>;
262 regulator-always-on;
263 };
264
265 vdd2_reg: vdd2 {
266 regulator-name = "vdd_1v5_gen";
267 regulator-min-microvolt = <1500000>;
268 regulator-max-microvolt = <1500000>;
269 regulator-always-on;
270 };
271
272 vddctrl_reg: vddctrl {
273 regulator-name = "vdd_cpu,vdd_sys";
274 regulator-min-microvolt = <1000000>;
275 regulator-max-microvolt = <1000000>;
276 regulator-always-on;
277 };
278
279 vio_reg: vio {
280 regulator-name = "vdd_1v8_gen";
281 regulator-min-microvolt = <1800000>;
282 regulator-max-microvolt = <1800000>;
283 regulator-always-on;
284 };
285
286 ldo1_reg: ldo1 {
287 regulator-name = "vdd_pexa,vdd_pexb";
288 regulator-min-microvolt = <1050000>;
289 regulator-max-microvolt = <1050000>;
290 };
291
292 ldo2_reg: ldo2 {
293 regulator-name = "vdd_sata,avdd_plle";
294 regulator-min-microvolt = <1050000>;
295 regulator-max-microvolt = <1050000>;
296 };
297
298 /* LDO3 is not connected to anything */
299
300 ldo4_reg: ldo4 {
301 regulator-name = "vdd_rtc";
302 regulator-min-microvolt = <1200000>;
303 regulator-max-microvolt = <1200000>;
304 regulator-always-on;
305 };
306
307 ldo5_reg: ldo5 {
308 regulator-name = "vddio_sdmmc,avdd_vdac";
309 regulator-min-microvolt = <3300000>;
310 regulator-max-microvolt = <3300000>;
311 regulator-always-on;
312 };
313
314 ldo6_reg: ldo6 {
315 regulator-name = "avdd_dsi_csi,pwrdet_mipi";
316 regulator-min-microvolt = <1200000>;
317 regulator-max-microvolt = <1200000>;
318 };
319
320 ldo7_reg: ldo7 {
321 regulator-name = "vdd_pllm,x,u,a_p_c_s";
322 regulator-min-microvolt = <1200000>;
323 regulator-max-microvolt = <1200000>;
324 regulator-always-on;
325 };
326
327 ldo8_reg: ldo8 {
328 regulator-name = "vdd_ddr_hs";
329 regulator-min-microvolt = <1000000>;
330 regulator-max-microvolt = <1000000>;
331 regulator-always-on;
332 };
333 };
334 };
335
336 temperature-sensor@4c {
337 compatible = "onnn,nct1008";
338 reg = <0x4c>;
339 vcc-supply = <&sys_3v3_reg>;
340 interrupt-parent = <&gpio>;
341 interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_LEVEL_LOW>;
342 };
343
344 tps62361@60 {
345 compatible = "ti,tps62361";
346 reg = <0x60>;
347
348 regulator-name = "tps62361-vout";
349 regulator-min-microvolt = <500000>;
350 regulator-max-microvolt = <1500000>;
351 regulator-boot-on;
352 regulator-always-on;
353 ti,vsel0-state-high;
354 ti,vsel1-state-high;
355 };
356 };
357
358 spi@7000da00 {
359 status = "okay";
360 spi-max-frequency = <25000000>;
361 spi-flash@1 {
362 compatible = "winbond,w25q32";
363 reg = <1>;
364 spi-max-frequency = <20000000>;
365 };
366 };
367
368 pmc@7000e400 {
369 status = "okay";
370 nvidia,invert-interrupt;
371 nvidia,suspend-mode = <1>;
372 nvidia,cpu-pwr-good-time = <2000>;
373 nvidia,cpu-pwr-off-time = <200>;
374 nvidia,core-pwr-good-time = <3845 3845>;
375 nvidia,core-pwr-off-time = <0>;
376 nvidia,core-power-req-active-high;
377 nvidia,sys-clock-req-active-high;
378 };
379
380 ahub@70080000 {
381 i2s@70080400 {
382 status = "okay";
383 };
384 };
385
386 sdhci@78000000 {
387 status = "okay";
388 cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
389 wp-gpios = <&gpio TEGRA_GPIO(T, 3) GPIO_ACTIVE_HIGH>;
390 power-gpios = <&gpio TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH>;
391 bus-width = <4>;
392 };
393
394 sdhci@78000600 {
395 status = "okay";
396 bus-width = <8>;
397 non-removable;
398 };
399
400 usb@7d008000 {
401 status = "okay";
402 };
403
404 usb-phy@7d008000 {
405 vbus-supply = <&usb3_vbus_reg>;
406 status = "okay";
407 };
408
409 backlight: backlight {
410 compatible = "pwm-backlight";
411
412 enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
413 power-supply = <&vdd_bl_reg>;
414 pwms = <&pwm 0 5000000>;
415
416 brightness-levels = <0 4 8 16 32 64 128 255>;
417 default-brightness-level = <6>;
418 };
419
420 clocks {
421 compatible = "simple-bus";
422 #address-cells = <1>;
423 #size-cells = <0>;
424
425 clk32k_in: clock@0 {
426 compatible = "fixed-clock";
427 reg = <0>;
428 #clock-cells = <0>;
429 clock-frequency = <32768>;
430 };
431 };
432
433 panel: panel {
434 compatible = "chunghwa,claa101wb01", "simple-panel";
435 ddc-i2c-bus = <&panelddc>;
436
437 power-supply = <&vdd_pnl1_reg>;
438 enable-gpios = <&gpio TEGRA_GPIO(L, 2) GPIO_ACTIVE_HIGH>;
439
440 backlight = <&backlight>;
441 };
442
443 regulators {
444 compatible = "simple-bus";
445 #address-cells = <1>;
446 #size-cells = <0>;
447
448 vdd_ac_bat_reg: regulator@0 {
449 compatible = "regulator-fixed";
450 reg = <0>;
451 regulator-name = "vdd_ac_bat";
452 regulator-min-microvolt = <5000000>;
453 regulator-max-microvolt = <5000000>;
454 regulator-always-on;
455 };
456
457 cam_1v8_reg: regulator@1 {
458 compatible = "regulator-fixed";
459 reg = <1>;
460 regulator-name = "cam_1v8";
461 regulator-min-microvolt = <1800000>;
462 regulator-max-microvolt = <1800000>;
463 enable-active-high;
464 gpio = <&gpio TEGRA_GPIO(BB, 4) GPIO_ACTIVE_HIGH>;
465 vin-supply = <&vio_reg>;
466 };
467
468 cp_5v_reg: regulator@2 {
469 compatible = "regulator-fixed";
470 reg = <2>;
471 regulator-name = "cp_5v";
472 regulator-min-microvolt = <5000000>;
473 regulator-max-microvolt = <5000000>;
474 regulator-boot-on;
475 regulator-always-on;
476 enable-active-high;
477 gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
478 };
479
480 emmc_3v3_reg: regulator@3 {
481 compatible = "regulator-fixed";
482 reg = <3>;
483 regulator-name = "emmc_3v3";
484 regulator-min-microvolt = <3300000>;
485 regulator-max-microvolt = <3300000>;
486 regulator-always-on;
487 regulator-boot-on;
488 enable-active-high;
489 gpio = <&gpio TEGRA_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
490 vin-supply = <&sys_3v3_reg>;
491 };
492
493 modem_3v3_reg: regulator@4 {
494 compatible = "regulator-fixed";
495 reg = <4>;
496 regulator-name = "modem_3v3";
497 regulator-min-microvolt = <3300000>;
498 regulator-max-microvolt = <3300000>;
499 enable-active-high;
500 gpio = <&gpio TEGRA_GPIO(D, 6) GPIO_ACTIVE_HIGH>;
501 };
502
503 pex_hvdd_3v3_reg: regulator@5 {
504 compatible = "regulator-fixed";
505 reg = <5>;
506 regulator-name = "pex_hvdd_3v3";
507 regulator-min-microvolt = <3300000>;
508 regulator-max-microvolt = <3300000>;
509 enable-active-high;
510 gpio = <&gpio TEGRA_GPIO(L, 7) GPIO_ACTIVE_HIGH>;
511 vin-supply = <&sys_3v3_reg>;
512 };
513
514 vdd_cam1_ldo_reg: regulator@6 {
515 compatible = "regulator-fixed";
516 reg = <6>;
517 regulator-name = "vdd_cam1_ldo";
518 regulator-min-microvolt = <2800000>;
519 regulator-max-microvolt = <2800000>;
520 enable-active-high;
521 gpio = <&gpio TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
522 vin-supply = <&sys_3v3_reg>;
523 };
524
525 vdd_cam2_ldo_reg: regulator@7 {
526 compatible = "regulator-fixed";
527 reg = <7>;
528 regulator-name = "vdd_cam2_ldo";
529 regulator-min-microvolt = <2800000>;
530 regulator-max-microvolt = <2800000>;
531 enable-active-high;
532 gpio = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_HIGH>;
533 vin-supply = <&sys_3v3_reg>;
534 };
535
536 vdd_cam3_ldo_reg: regulator@8 {
537 compatible = "regulator-fixed";
538 reg = <8>;
539 regulator-name = "vdd_cam3_ldo";
540 regulator-min-microvolt = <3300000>;
541 regulator-max-microvolt = <3300000>;
542 enable-active-high;
543 gpio = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_HIGH>;
544 vin-supply = <&sys_3v3_reg>;
545 };
546
547 vdd_com_reg: regulator@9 {
548 compatible = "regulator-fixed";
549 reg = <9>;
550 regulator-name = "vdd_com";
551 regulator-min-microvolt = <3300000>;
552 regulator-max-microvolt = <3300000>;
553 regulator-always-on;
554 regulator-boot-on;
555 enable-active-high;
556 gpio = <&gpio TEGRA_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
557 vin-supply = <&sys_3v3_reg>;
558 };
559
560 vdd_fuse_3v3_reg: regulator@10 {
561 compatible = "regulator-fixed";
562 reg = <10>;
563 regulator-name = "vdd_fuse_3v3";
564 regulator-min-microvolt = <3300000>;
565 regulator-max-microvolt = <3300000>;
566 enable-active-high;
567 gpio = <&gpio TEGRA_GPIO(L, 6) GPIO_ACTIVE_HIGH>;
568 vin-supply = <&sys_3v3_reg>;
569 };
570
571 vdd_pnl1_reg: regulator@11 {
572 compatible = "regulator-fixed";
573 reg = <11>;
574 regulator-name = "vdd_pnl1";
575 regulator-min-microvolt = <3300000>;
576 regulator-max-microvolt = <3300000>;
577 regulator-always-on;
578 regulator-boot-on;
579 enable-active-high;
580 gpio = <&gpio TEGRA_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
581 vin-supply = <&sys_3v3_reg>;
582 };
583
584 vdd_vid_reg: regulator@12 {
585 compatible = "regulator-fixed";
586 reg = <12>;
587 regulator-name = "vddio_vid";
588 regulator-min-microvolt = <5000000>;
589 regulator-max-microvolt = <5000000>;
590 enable-active-high;
591 gpio = <&gpio TEGRA_GPIO(T, 0) GPIO_ACTIVE_HIGH>;
592 gpio-open-drain;
593 vin-supply = <&vdd_5v0_reg>;
594 };
595 };
596
597 sound {
598 compatible = "nvidia,tegra-audio-wm8903-cardhu",
599 "nvidia,tegra-audio-wm8903";
600 nvidia,model = "NVIDIA Tegra Cardhu";
601
602 nvidia,audio-routing =
603 "Headphone Jack", "HPOUTR",
604 "Headphone Jack", "HPOUTL",
605 "Int Spk", "ROP",
606 "Int Spk", "RON",
607 "Int Spk", "LOP",
608 "Int Spk", "LON",
609 "Mic Jack", "MICBIAS",
610 "IN1L", "Mic Jack";
611
612 nvidia,i2s-controller = <&tegra_i2s1>;
613 nvidia,audio-codec = <&wm8903>;
614
615 nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
616 nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2)
617 GPIO_ACTIVE_HIGH>;
618
619 clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
620 <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
621 <&tegra_car TEGRA30_CLK_EXTERN1>;
622 clock-names = "pll_a", "pll_a_out0", "mclk";
623 };
624
625 gpio-keys {
626 compatible = "gpio-keys";
627
628 power {
629 label = "Power";
630 interrupt-parent = <&pmic>;
631 interrupts = <2 0>;
632 linux,code = <KEY_POWER>;
633 debounce-interval = <100>;
634 wakeup-source;
635 };
636
637 volume-down {
638 label = "Volume Down";
639 gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_LOW>;
640 linux,code = <KEY_VOLUMEDOWN>;
641 debounce-interval = <10>;
642 };
643
644 volume-up {
645 label = "Volume Up";
646 gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>;
647 linux,code = <KEY_VOLUMEUP>;
648 debounce-interval = <10>;
649 };
650 };
651};