Loading...
Note: File does not exist in v6.8.
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@80000000 {
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 reset-gpio = <&gpio TEGRA_GPIO(BB, 0) GPIO_ACTIVE_LOW>;
210 };
211 };
212
213 i2c@7000c700 {
214 status = "okay";
215 clock-frequency = <100000>;
216 };
217
218 i2c@7000d000 {
219 status = "okay";
220 clock-frequency = <100000>;
221
222 wm8903: wm8903@1a {
223 compatible = "wlf,wm8903";
224 reg = <0x1a>;
225 interrupt-parent = <&gpio>;
226 interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_HIGH>;
227
228 gpio-controller;
229 #gpio-cells = <2>;
230
231 micdet-cfg = <0>;
232 micdet-delay = <100>;
233 gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
234 };
235
236 pmic: tps65911@2d {
237 compatible = "ti,tps65911";
238 reg = <0x2d>;
239
240 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
241 #interrupt-cells = <2>;
242 interrupt-controller;
243
244 ti,system-power-controller;
245
246 #gpio-cells = <2>;
247 gpio-controller;
248
249 vcc1-supply = <&vdd_ac_bat_reg>;
250 vcc2-supply = <&vdd_ac_bat_reg>;
251 vcc3-supply = <&vio_reg>;
252 vcc4-supply = <&vdd_5v0_reg>;
253 vcc5-supply = <&vdd_ac_bat_reg>;
254 vcc6-supply = <&vdd2_reg>;
255 vcc7-supply = <&vdd_ac_bat_reg>;
256 vccio-supply = <&vdd_ac_bat_reg>;
257
258 regulators {
259 vdd1_reg: vdd1 {
260 regulator-name = "vddio_ddr_1v2";
261 regulator-min-microvolt = <1200000>;
262 regulator-max-microvolt = <1200000>;
263 regulator-always-on;
264 };
265
266 vdd2_reg: vdd2 {
267 regulator-name = "vdd_1v5_gen";
268 regulator-min-microvolt = <1500000>;
269 regulator-max-microvolt = <1500000>;
270 regulator-always-on;
271 };
272
273 vddctrl_reg: vddctrl {
274 regulator-name = "vdd_cpu,vdd_sys";
275 regulator-min-microvolt = <1000000>;
276 regulator-max-microvolt = <1000000>;
277 regulator-always-on;
278 };
279
280 vio_reg: vio {
281 regulator-name = "vdd_1v8_gen";
282 regulator-min-microvolt = <1800000>;
283 regulator-max-microvolt = <1800000>;
284 regulator-always-on;
285 };
286
287 ldo1_reg: ldo1 {
288 regulator-name = "vdd_pexa,vdd_pexb";
289 regulator-min-microvolt = <1050000>;
290 regulator-max-microvolt = <1050000>;
291 };
292
293 ldo2_reg: ldo2 {
294 regulator-name = "vdd_sata,avdd_plle";
295 regulator-min-microvolt = <1050000>;
296 regulator-max-microvolt = <1050000>;
297 };
298
299 /* LDO3 is not connected to anything */
300
301 ldo4_reg: ldo4 {
302 regulator-name = "vdd_rtc";
303 regulator-min-microvolt = <1200000>;
304 regulator-max-microvolt = <1200000>;
305 regulator-always-on;
306 };
307
308 ldo5_reg: ldo5 {
309 regulator-name = "vddio_sdmmc,avdd_vdac";
310 regulator-min-microvolt = <3300000>;
311 regulator-max-microvolt = <3300000>;
312 regulator-always-on;
313 };
314
315 ldo6_reg: ldo6 {
316 regulator-name = "avdd_dsi_csi,pwrdet_mipi";
317 regulator-min-microvolt = <1200000>;
318 regulator-max-microvolt = <1200000>;
319 };
320
321 ldo7_reg: ldo7 {
322 regulator-name = "vdd_pllm,x,u,a_p_c_s";
323 regulator-min-microvolt = <1200000>;
324 regulator-max-microvolt = <1200000>;
325 regulator-always-on;
326 };
327
328 ldo8_reg: ldo8 {
329 regulator-name = "vdd_ddr_hs";
330 regulator-min-microvolt = <1000000>;
331 regulator-max-microvolt = <1000000>;
332 regulator-always-on;
333 };
334 };
335 };
336
337 temperature-sensor@4c {
338 compatible = "onnn,nct1008";
339 reg = <0x4c>;
340 vcc-supply = <&sys_3v3_reg>;
341 interrupt-parent = <&gpio>;
342 interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_LEVEL_LOW>;
343 };
344
345 tps62361@60 {
346 compatible = "ti,tps62361";
347 reg = <0x60>;
348
349 regulator-name = "tps62361-vout";
350 regulator-min-microvolt = <500000>;
351 regulator-max-microvolt = <1500000>;
352 regulator-boot-on;
353 regulator-always-on;
354 ti,vsel0-state-high;
355 ti,vsel1-state-high;
356 };
357 };
358
359 spi@7000da00 {
360 status = "okay";
361 spi-max-frequency = <25000000>;
362 spi-flash@1 {
363 compatible = "winbond,w25q32", "jedec,spi-nor";
364 reg = <1>;
365 spi-max-frequency = <20000000>;
366 };
367 };
368
369 pmc@7000e400 {
370 status = "okay";
371 nvidia,invert-interrupt;
372 nvidia,suspend-mode = <1>;
373 nvidia,cpu-pwr-good-time = <2000>;
374 nvidia,cpu-pwr-off-time = <200>;
375 nvidia,core-pwr-good-time = <3845 3845>;
376 nvidia,core-pwr-off-time = <0>;
377 nvidia,core-power-req-active-high;
378 nvidia,sys-clock-req-active-high;
379 };
380
381 ahub@70080000 {
382 i2s@70080400 {
383 status = "okay";
384 };
385 };
386
387 sdhci@78000000 {
388 status = "okay";
389 cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
390 wp-gpios = <&gpio TEGRA_GPIO(T, 3) GPIO_ACTIVE_HIGH>;
391 power-gpios = <&gpio TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH>;
392 bus-width = <4>;
393 };
394
395 sdhci@78000600 {
396 status = "okay";
397 bus-width = <8>;
398 non-removable;
399 };
400
401 usb@7d008000 {
402 status = "okay";
403 };
404
405 usb-phy@7d008000 {
406 vbus-supply = <&usb3_vbus_reg>;
407 status = "okay";
408 };
409
410 backlight: backlight {
411 compatible = "pwm-backlight";
412
413 enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
414 power-supply = <&vdd_bl_reg>;
415 pwms = <&pwm 0 5000000>;
416
417 brightness-levels = <0 4 8 16 32 64 128 255>;
418 default-brightness-level = <6>;
419 };
420
421 clocks {
422 compatible = "simple-bus";
423 #address-cells = <1>;
424 #size-cells = <0>;
425
426 clk32k_in: clock@0 {
427 compatible = "fixed-clock";
428 reg = <0>;
429 #clock-cells = <0>;
430 clock-frequency = <32768>;
431 };
432 };
433
434 panel: panel {
435 compatible = "chunghwa,claa101wb01", "simple-panel";
436 ddc-i2c-bus = <&panelddc>;
437
438 power-supply = <&vdd_pnl1_reg>;
439 enable-gpios = <&gpio TEGRA_GPIO(L, 2) GPIO_ACTIVE_HIGH>;
440
441 backlight = <&backlight>;
442 };
443
444 regulators {
445 compatible = "simple-bus";
446 #address-cells = <1>;
447 #size-cells = <0>;
448
449 vdd_ac_bat_reg: regulator@0 {
450 compatible = "regulator-fixed";
451 reg = <0>;
452 regulator-name = "vdd_ac_bat";
453 regulator-min-microvolt = <5000000>;
454 regulator-max-microvolt = <5000000>;
455 regulator-always-on;
456 };
457
458 cam_1v8_reg: regulator@1 {
459 compatible = "regulator-fixed";
460 reg = <1>;
461 regulator-name = "cam_1v8";
462 regulator-min-microvolt = <1800000>;
463 regulator-max-microvolt = <1800000>;
464 enable-active-high;
465 gpio = <&gpio TEGRA_GPIO(BB, 4) GPIO_ACTIVE_HIGH>;
466 vin-supply = <&vio_reg>;
467 };
468
469 cp_5v_reg: regulator@2 {
470 compatible = "regulator-fixed";
471 reg = <2>;
472 regulator-name = "cp_5v";
473 regulator-min-microvolt = <5000000>;
474 regulator-max-microvolt = <5000000>;
475 regulator-boot-on;
476 regulator-always-on;
477 enable-active-high;
478 gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
479 };
480
481 emmc_3v3_reg: regulator@3 {
482 compatible = "regulator-fixed";
483 reg = <3>;
484 regulator-name = "emmc_3v3";
485 regulator-min-microvolt = <3300000>;
486 regulator-max-microvolt = <3300000>;
487 regulator-always-on;
488 regulator-boot-on;
489 enable-active-high;
490 gpio = <&gpio TEGRA_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
491 vin-supply = <&sys_3v3_reg>;
492 };
493
494 modem_3v3_reg: regulator@4 {
495 compatible = "regulator-fixed";
496 reg = <4>;
497 regulator-name = "modem_3v3";
498 regulator-min-microvolt = <3300000>;
499 regulator-max-microvolt = <3300000>;
500 enable-active-high;
501 gpio = <&gpio TEGRA_GPIO(D, 6) GPIO_ACTIVE_HIGH>;
502 };
503
504 pex_hvdd_3v3_reg: regulator@5 {
505 compatible = "regulator-fixed";
506 reg = <5>;
507 regulator-name = "pex_hvdd_3v3";
508 regulator-min-microvolt = <3300000>;
509 regulator-max-microvolt = <3300000>;
510 enable-active-high;
511 gpio = <&gpio TEGRA_GPIO(L, 7) GPIO_ACTIVE_HIGH>;
512 vin-supply = <&sys_3v3_reg>;
513 };
514
515 vdd_cam1_ldo_reg: regulator@6 {
516 compatible = "regulator-fixed";
517 reg = <6>;
518 regulator-name = "vdd_cam1_ldo";
519 regulator-min-microvolt = <2800000>;
520 regulator-max-microvolt = <2800000>;
521 enable-active-high;
522 gpio = <&gpio TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
523 vin-supply = <&sys_3v3_reg>;
524 };
525
526 vdd_cam2_ldo_reg: regulator@7 {
527 compatible = "regulator-fixed";
528 reg = <7>;
529 regulator-name = "vdd_cam2_ldo";
530 regulator-min-microvolt = <2800000>;
531 regulator-max-microvolt = <2800000>;
532 enable-active-high;
533 gpio = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_HIGH>;
534 vin-supply = <&sys_3v3_reg>;
535 };
536
537 vdd_cam3_ldo_reg: regulator@8 {
538 compatible = "regulator-fixed";
539 reg = <8>;
540 regulator-name = "vdd_cam3_ldo";
541 regulator-min-microvolt = <3300000>;
542 regulator-max-microvolt = <3300000>;
543 enable-active-high;
544 gpio = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_HIGH>;
545 vin-supply = <&sys_3v3_reg>;
546 };
547
548 vdd_com_reg: regulator@9 {
549 compatible = "regulator-fixed";
550 reg = <9>;
551 regulator-name = "vdd_com";
552 regulator-min-microvolt = <3300000>;
553 regulator-max-microvolt = <3300000>;
554 regulator-always-on;
555 regulator-boot-on;
556 enable-active-high;
557 gpio = <&gpio TEGRA_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
558 vin-supply = <&sys_3v3_reg>;
559 };
560
561 vdd_fuse_3v3_reg: regulator@10 {
562 compatible = "regulator-fixed";
563 reg = <10>;
564 regulator-name = "vdd_fuse_3v3";
565 regulator-min-microvolt = <3300000>;
566 regulator-max-microvolt = <3300000>;
567 enable-active-high;
568 gpio = <&gpio TEGRA_GPIO(L, 6) GPIO_ACTIVE_HIGH>;
569 vin-supply = <&sys_3v3_reg>;
570 };
571
572 vdd_pnl1_reg: regulator@11 {
573 compatible = "regulator-fixed";
574 reg = <11>;
575 regulator-name = "vdd_pnl1";
576 regulator-min-microvolt = <3300000>;
577 regulator-max-microvolt = <3300000>;
578 regulator-always-on;
579 regulator-boot-on;
580 enable-active-high;
581 gpio = <&gpio TEGRA_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
582 vin-supply = <&sys_3v3_reg>;
583 };
584
585 vdd_vid_reg: regulator@12 {
586 compatible = "regulator-fixed";
587 reg = <12>;
588 regulator-name = "vddio_vid";
589 regulator-min-microvolt = <5000000>;
590 regulator-max-microvolt = <5000000>;
591 enable-active-high;
592 gpio = <&gpio TEGRA_GPIO(T, 0) GPIO_ACTIVE_HIGH>;
593 gpio-open-drain;
594 vin-supply = <&vdd_5v0_reg>;
595 };
596 };
597
598 sound {
599 compatible = "nvidia,tegra-audio-wm8903-cardhu",
600 "nvidia,tegra-audio-wm8903";
601 nvidia,model = "NVIDIA Tegra Cardhu";
602
603 nvidia,audio-routing =
604 "Headphone Jack", "HPOUTR",
605 "Headphone Jack", "HPOUTL",
606 "Int Spk", "ROP",
607 "Int Spk", "RON",
608 "Int Spk", "LOP",
609 "Int Spk", "LON",
610 "Mic Jack", "MICBIAS",
611 "IN1L", "Mic Jack";
612
613 nvidia,i2s-controller = <&tegra_i2s1>;
614 nvidia,audio-codec = <&wm8903>;
615
616 nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
617 nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2)
618 GPIO_ACTIVE_HIGH>;
619
620 clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
621 <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
622 <&tegra_car TEGRA30_CLK_EXTERN1>;
623 clock-names = "pll_a", "pll_a_out0", "mclk";
624 };
625
626 gpio-keys {
627 compatible = "gpio-keys";
628
629 power {
630 label = "Power";
631 interrupt-parent = <&pmic>;
632 interrupts = <2 0>;
633 linux,code = <KEY_POWER>;
634 debounce-interval = <100>;
635 wakeup-source;
636 };
637
638 volume-down {
639 label = "Volume Down";
640 gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_LOW>;
641 linux,code = <KEY_VOLUMEDOWN>;
642 debounce-interval = <10>;
643 };
644
645 volume-up {
646 label = "Volume Up";
647 gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>;
648 linux,code = <KEY_VOLUMEUP>;
649 debounce-interval = <10>;
650 };
651 };
652};