1 // SPDX-License-Identifier: GPL-2.0
2 #include "tegra20.dtsi"
5 * Toradex Colibri T20 Module Device Tree
6 * Compatible for Revisions Colibri T20 256MB V1.1B, V1.2A;
7 * Colibri T20 256MB IT V1.2A; Colibri T20 512MB V1.1C, V1.2A;
8 * Colibri T20 512MB IT V1.2A
13 * Set memory to 256 MB to be safe as this could be used on
14 * 256 or 512 MB module. It is expected from bootloader
15 * to fix this up for 512 MB version.
17 reg = <0x00000000 0x10000000>;
22 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
24 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
25 pll-supply = <®_1v8_avdd_hdmi_pll>;
26 vdd-supply = <®_3v3_avdd_hdmi>;
33 gpios = <TEGRA_GPIO(V, 4) GPIO_ACTIVE_HIGH>;
35 line-name = "LAN_RESET#";
38 /* Tri-stating GMI_WR_N on SODIMM pin 99 nPWE */
41 gpios = <TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
43 line-name = "Tri-state nPWE";
46 /* Not tri-stating GMI_WR_N on SODIMM pin 93 RDnWR */
49 gpios = <TEGRA_GPIO(T, 6) GPIO_ACTIVE_HIGH>;
51 line-name = "Not tri-state RDnWR";
56 pinctrl-names = "default";
57 pinctrl-0 = <&state_default>;
59 state_default: pinmux {
60 /* Analogue Audio AC97 to WM9712 (On-module) */
62 nvidia,pins = "cdev1";
63 nvidia,function = "plla_out";
64 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
65 nvidia,tristate = <TEGRA_PIN_DISABLE>;
69 nvidia,function = "dap3";
70 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
71 nvidia,tristate = <TEGRA_PIN_DISABLE>;
75 * AC97_RESET, ULPI_RESET, AC97_INT aka WM9712 GENIRQ
76 * (All on-module), SODIMM Pin 45 Wakeup
80 nvidia,function = "rsvd2";
81 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
82 nvidia,tristate = <TEGRA_PIN_DISABLE>;
86 * Buffer Enables for nPWE and RDnWR (On-module,
87 * see GPIO hogging further down below)
91 nvidia,function = "rsvd4";
92 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
93 nvidia,tristate = <TEGRA_PIN_DISABLE>;
97 * CLK_32K_OUT, CORE_PWR_REQ, CPU_PWR_REQ, PWR_INT_N,
98 * SYS_CLK_REQ (All on-module)
102 nvidia,function = "pwr_on";
103 nvidia,tristate = <TEGRA_PIN_DISABLE>;
107 * Colibri Address/Data Bus (GMI)
108 * Note: spid and spie optionally used for SPI1
111 nvidia,pins = "atc", "atd", "ate", "dap1",
112 "dap2", "dap4", "gmd", "gpu",
113 "irrx", "irtx", "spia", "spib",
114 "spic", "spid", "spie", "uca",
116 nvidia,function = "gmi";
117 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
118 nvidia,tristate = <TEGRA_PIN_ENABLE>;
120 /* Further pins may be used as GPIOs */
122 nvidia,pins = "lpw0", "lsc1", "lsck", "lsda";
123 nvidia,function = "hdmi";
124 nvidia,tristate = <TEGRA_PIN_ENABLE>;
127 nvidia,pins = "lcsn", "ldc", "lm0", "lsdi";
128 nvidia,function = "rsvd4";
129 nvidia,tristate = <TEGRA_PIN_ENABLE>;
135 nvidia,function = "rsvd1";
136 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
137 nvidia,tristate = <TEGRA_PIN_ENABLE>;
140 /* Colibri Backlight PWM<A>, PWM<B> */
143 nvidia,function = "pwm";
144 nvidia,tristate = <TEGRA_PIN_ENABLE>;
150 nvidia,function = "i2c2";
151 nvidia,pull = <TEGRA_PIN_PULL_UP>;
152 nvidia,tristate = <TEGRA_PIN_ENABLE>;
157 * Note: dtf optionally used for I2C3
160 nvidia,pins = "dtf", "spdi";
161 nvidia,function = "rsvd2";
162 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
163 nvidia,tristate = <TEGRA_PIN_ENABLE>;
167 * Colibri Ethernet (On-module)
168 * ULPI EHCI instance 1 USB2_DP/N -> AX88772B
171 nvidia,pins = "uaa", "uab", "uda";
172 nvidia,function = "ulpi";
173 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
174 nvidia,tristate = <TEGRA_PIN_DISABLE>;
177 nvidia,pins = "cdev2";
178 nvidia,function = "pllp_out4";
179 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
180 nvidia,tristate = <TEGRA_PIN_DISABLE>;
183 /* Colibri HOTPLUG_DETECT (HDMI) */
185 nvidia,pins = "hdint";
186 nvidia,function = "hdmi";
187 nvidia,tristate = <TEGRA_PIN_ENABLE>;
193 nvidia,function = "i2c1";
194 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
195 nvidia,tristate = <TEGRA_PIN_ENABLE>;
199 * Colibri L_BIAS, LCD_M1 is muxed with LCD_DE
200 * today's display need DE, disable LCD_M1
204 nvidia,function = "rsvd3";
205 nvidia,tristate = <TEGRA_PIN_ENABLE>;
208 /* Colibri LCD (L_* resp. LDD<*>) */
210 nvidia,pins = "ld0", "ld1", "ld2", "ld3",
211 "ld4", "ld5", "ld6", "ld7",
212 "ld8", "ld9", "ld10", "ld11",
213 "ld12", "ld13", "ld14", "ld15",
214 "ld16", "ld17", "lhs", "lsc0",
216 nvidia,function = "displaya";
217 nvidia,tristate = <TEGRA_PIN_ENABLE>;
219 /* Colibri LCD (Optional 24 BPP Support) */
221 nvidia,pins = "ldi", "lhp0", "lhp1", "lhp2",
223 nvidia,function = "displaya";
224 nvidia,tristate = <TEGRA_PIN_ENABLE>;
229 nvidia,pins = "atb", "gma";
230 nvidia,function = "sdio4";
231 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
232 nvidia,tristate = <TEGRA_PIN_ENABLE>;
238 nvidia,function = "gmi_int";
239 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
240 nvidia,tristate = <TEGRA_PIN_ENABLE>;
243 /* Colibri MMC (Optional 8-bit) */
246 nvidia,function = "sdio4";
247 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
248 nvidia,tristate = <TEGRA_PIN_ENABLE>;
252 * Colibri Parallel Camera (Optional)
253 * pins multiplexed with others and therefore disabled
254 * Note: dta used for BL_ON by default
257 nvidia,pins = "csus";
258 nvidia,function = "vi_sensor_clk";
259 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
260 nvidia,tristate = <TEGRA_PIN_ENABLE>;
263 nvidia,pins = "dtb", "dtc", "dtd";
264 nvidia,function = "vi";
265 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
266 nvidia,tristate = <TEGRA_PIN_ENABLE>;
269 /* Colibri PWM<C>, PWM<D> */
271 nvidia,pins = "sdb", "sdd";
272 nvidia,function = "pwm";
273 nvidia,tristate = <TEGRA_PIN_ENABLE>;
278 nvidia,pins = "slxa", "slxc", "slxd", "slxk";
279 nvidia,function = "spi4";
280 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
281 nvidia,tristate = <TEGRA_PIN_ENABLE>;
286 nvidia,pins = "sdio1";
287 nvidia,function = "uarta";
288 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
289 nvidia,tristate = <TEGRA_PIN_ENABLE>;
292 nvidia,pins = "lpw1";
293 nvidia,function = "rsvd3";
294 nvidia,tristate = <TEGRA_PIN_ENABLE>;
297 nvidia,pins = "lpw2";
298 nvidia,function = "hdmi";
299 nvidia,tristate = <TEGRA_PIN_ENABLE>;
305 nvidia,function = "uartd";
306 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
307 nvidia,tristate = <TEGRA_PIN_ENABLE>;
313 nvidia,function = "irda";
314 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
315 nvidia,tristate = <TEGRA_PIN_ENABLE>;
318 /* Colibri USB_CDET */
320 nvidia,pins = "spdo";
321 nvidia,function = "rsvd2";
322 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
323 nvidia,tristate = <TEGRA_PIN_ENABLE>;
326 /* Colibri USBH_OC */
328 nvidia,pins = "spih";
329 nvidia,function = "spi2_alt";
330 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
331 nvidia,tristate = <TEGRA_PIN_ENABLE>;
334 /* Colibri USBH_PEN */
336 nvidia,pins = "spig";
337 nvidia,function = "spi2_alt";
338 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
339 nvidia,tristate = <TEGRA_PIN_ENABLE>;
342 /* Colibri VGA not supported */
344 nvidia,pins = "crtp";
345 nvidia,function = "crt";
346 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
347 nvidia,tristate = <TEGRA_PIN_ENABLE>;
350 /* I2C3 (Optional) */
353 nvidia,function = "i2c3";
354 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
355 nvidia,tristate = <TEGRA_PIN_ENABLE>;
360 nvidia,pins = "gpu7";
361 nvidia,function = "rtck";
362 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
363 nvidia,tristate = <TEGRA_PIN_ENABLE>;
367 * LAN_RESET, LAN_EXT_WAKEUP and LAN_PME
372 nvidia,function = "rsvd2";
373 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
374 nvidia,tristate = <TEGRA_PIN_DISABLE>;
378 * LAN_V_BUS, VDD_FAULT, BATT_FAULT, WM9712 PENDOWN
379 * (All On-module); Colibri CAN_INT
383 nvidia,function = "rsvd1";
384 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
385 nvidia,tristate = <TEGRA_PIN_DISABLE>;
388 /* NAND (On-module) */
390 nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
392 nvidia,function = "nand";
393 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
394 nvidia,tristate = <TEGRA_PIN_DISABLE>;
397 /* Onewire (Optional) */
400 nvidia,function = "owr";
401 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
402 nvidia,tristate = <TEGRA_PIN_ENABLE>;
405 /* Power I2C (On-module) */
407 nvidia,pins = "i2cp";
408 nvidia,function = "i2cp";
409 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
410 nvidia,tristate = <TEGRA_PIN_DISABLE>;
416 nvidia,function = "gmi";
417 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
418 nvidia,tristate = <TEGRA_PIN_DISABLE>;
423 * Note: spid and spie used for Colibri Address/Data
427 nvidia,pins = "spid", "spie", "spif";
428 nvidia,function = "spi1";
429 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
430 nvidia,tristate = <TEGRA_PIN_ENABLE>;
434 * THERMD_ALERT# (On-module), unlatched I2C address pin
435 * of LM95245 temperature sensor therefore requires
439 nvidia,pins = "lvp0";
440 nvidia,function = "rsvd3";
441 nvidia,tristate = <TEGRA_PIN_ENABLE>;
446 tegra_ac97: ac97@70002000 {
448 nvidia,codec-reset-gpios =
449 <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
450 nvidia,codec-sync-gpios =
451 <&gpio TEGRA_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
455 compatible = "nvidia,tegra20-hsuart";
456 reset-names = "serial";
457 /delete-property/ reg-shift;
461 compatible = "nvidia,tegra20-hsuart";
462 reset-names = "serial";
463 /delete-property/ reg-shift;
466 nand-controller@70008000 {
471 #address-cells = <1>;
473 nand-bus-width = <8>;
475 nand-ecc-algo = "bch";
478 wp-gpios = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_LOW>;
483 * GEN1_I2C: I2C_SDA/SCL on SODIMM pin 194/196 (e.g. RTC on carrier
487 clock-frequency = <400000>;
490 /* DDC_SCL/SDA on X3 pin 15/16 (e.g. display EDID) */
491 hdmi_ddc: i2c@7000c400 {
492 clock-frequency = <10000>;
495 /* GEN2_I2C: unused */
497 /* CAM/GEN3_I2C: used as EXT_IO1/2 GPIOs on SODIMM pin 133/127 */
499 /* PWR_I2C: power I2C to PMIC and temperature sensor (On-module) */
502 clock-frequency = <100000>;
505 compatible = "ti,tps6586x";
507 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
508 ti,system-power-controller;
511 sys-supply = <®_module_3v3>;
512 vin-sm0-supply = <®_3v3_vsys>;
513 vin-sm1-supply = <®_3v3_vsys>;
514 vin-sm2-supply = <®_3v3_vsys>;
515 vinldo01-supply = <®_1v8_vdd_ddr2>;
516 vinldo23-supply = <®_module_3v3>;
517 vinldo4-supply = <®_module_3v3>;
518 vinldo678-supply = <®_module_3v3>;
519 vinldo9-supply = <®_module_3v3>;
523 regulator-name = "VSYS_3.3V";
528 regulator-name = "VDD_CORE_1.2V";
529 regulator-min-microvolt = <1200000>;
530 regulator-max-microvolt = <1200000>;
535 regulator-name = "VDD_CPU_1.0V";
536 regulator-min-microvolt = <1000000>;
537 regulator-max-microvolt = <1000000>;
541 reg_1v8_vdd_ddr2: sm2 {
542 regulator-name = "VDD_DDR2_1.8V";
543 regulator-min-microvolt = <1800000>;
544 regulator-max-microvolt = <1800000>;
548 /* LDO0 is not connected to anything */
551 * +3.3V_ENABLE_N switching via FET:
552 * AVDD_AUDIO_S and +3.3V
553 * see also +3.3V fixed supply
556 regulator-name = "AVDD_PLL_1.1V";
557 regulator-min-microvolt = <1100000>;
558 regulator-max-microvolt = <1100000>;
563 regulator-name = "VDD_RTC_1.2V";
564 regulator-min-microvolt = <1200000>;
565 regulator-max-microvolt = <1200000>;
568 /* LDO3 is not connected to anything */
571 regulator-name = "VDDIO_SYS_1.8V";
572 regulator-min-microvolt = <1800000>;
573 regulator-max-microvolt = <1800000>;
577 /* Switched via FET from regular +3.3V */
579 regulator-name = "+3.3V_USB";
580 regulator-min-microvolt = <3300000>;
581 regulator-max-microvolt = <3300000>;
586 regulator-name = "AVDD_VDAC_2.85V";
587 regulator-min-microvolt = <2850000>;
588 regulator-max-microvolt = <2850000>;
591 reg_3v3_avdd_hdmi: ldo7 {
592 regulator-name = "AVDD_HDMI_3.3V";
593 regulator-min-microvolt = <3300000>;
594 regulator-max-microvolt = <3300000>;
597 reg_1v8_avdd_hdmi_pll: ldo8 {
598 regulator-name = "AVDD_HDMI_PLL_1.8V";
599 regulator-min-microvolt = <1800000>;
600 regulator-max-microvolt = <1800000>;
604 regulator-name = "VDDIO_RX_DDR_2.85V";
605 regulator-min-microvolt = <2850000>;
606 regulator-max-microvolt = <2850000>;
611 regulator-name = "VCC_BATT";
612 regulator-min-microvolt = <3300000>;
613 regulator-max-microvolt = <3300000>;
619 /* LM95245 temperature sensor */
621 compatible = "national,lm95245";
627 nvidia,suspend-mode = <1>;
628 nvidia,cpu-pwr-good-time = <5000>;
629 nvidia,cpu-pwr-off-time = <5000>;
630 nvidia,core-pwr-good-time = <3845 3845>;
631 nvidia,core-pwr-off-time = <3875>;
632 nvidia,sys-clock-req-active-high;
633 core-supply = <&vdd_core>;
635 /* Set SLEEP MODE bit in SUPPLYENE register of TPS658643 PMIC */
637 nvidia,i2c-controller-id = <3>;
638 nvidia,bus-addr = <0x34>;
639 nvidia,reg-addr = <0x14>;
640 nvidia,reg-data = <0x8>;
644 memory-controller@7000f400 {
647 compatible = "nvidia,tegra20-emc-table";
648 clock-frequency = <83250>;
649 nvidia,emc-registers = <0x00000005 0x00000011
650 0x00000004 0x00000002 0x00000004 0x00000004
651 0x00000001 0x0000000a 0x00000002 0x00000002
652 0x00000001 0x00000001 0x00000003 0x00000004
653 0x00000003 0x00000009 0x0000000c 0x0000025f
654 0x00000000 0x00000003 0x00000003 0x00000002
655 0x00000002 0x00000001 0x00000008 0x000000c8
656 0x00000003 0x00000005 0x00000003 0x0000000c
657 0x00000002 0x00000000 0x00000000 0x00000002
658 0x00000000 0x00000000 0x00000083 0x00520006
659 0x00000010 0x00000008 0x00000000 0x00000000
660 0x00000000 0x00000000 0x00000000 0x00000000>;
664 compatible = "nvidia,tegra20-emc-table";
665 clock-frequency = <133200>;
666 nvidia,emc-registers = <0x00000008 0x00000019
667 0x00000006 0x00000002 0x00000004 0x00000004
668 0x00000001 0x0000000a 0x00000002 0x00000002
669 0x00000002 0x00000001 0x00000003 0x00000004
670 0x00000003 0x00000009 0x0000000c 0x0000039f
671 0x00000000 0x00000003 0x00000003 0x00000002
672 0x00000002 0x00000001 0x00000008 0x000000c8
673 0x00000003 0x00000007 0x00000003 0x0000000c
674 0x00000002 0x00000000 0x00000000 0x00000002
675 0x00000000 0x00000000 0x00000083 0x00510006
676 0x00000010 0x00000008 0x00000000 0x00000000
677 0x00000000 0x00000000 0x00000000 0x00000000>;
681 compatible = "nvidia,tegra20-emc-table";
682 clock-frequency = <166500>;
683 nvidia,emc-registers = <0x0000000a 0x00000021
684 0x00000008 0x00000003 0x00000004 0x00000004
685 0x00000002 0x0000000a 0x00000003 0x00000003
686 0x00000002 0x00000001 0x00000003 0x00000004
687 0x00000003 0x00000009 0x0000000c 0x000004df
688 0x00000000 0x00000003 0x00000003 0x00000003
689 0x00000003 0x00000001 0x00000009 0x000000c8
690 0x00000003 0x00000009 0x00000004 0x0000000c
691 0x00000002 0x00000000 0x00000000 0x00000002
692 0x00000000 0x00000000 0x00000083 0x004f0006
693 0x00000010 0x00000008 0x00000000 0x00000000
694 0x00000000 0x00000000 0x00000000 0x00000000>;
698 compatible = "nvidia,tegra20-emc-table";
699 clock-frequency = <333000>;
700 nvidia,emc-registers = <0x00000014 0x00000041
701 0x0000000f 0x00000005 0x00000004 0x00000005
702 0x00000003 0x0000000a 0x00000005 0x00000005
703 0x00000004 0x00000001 0x00000003 0x00000004
704 0x00000003 0x00000009 0x0000000c 0x000009ff
705 0x00000000 0x00000003 0x00000003 0x00000005
706 0x00000005 0x00000001 0x0000000e 0x000000c8
707 0x00000003 0x00000011 0x00000006 0x0000000c
708 0x00000002 0x00000000 0x00000000 0x00000002
709 0x00000000 0x00000000 0x00000083 0x00380006
710 0x00000010 0x00000008 0x00000000 0x00000000
711 0x00000000 0x00000000 0x00000000 0x00000000>;
715 /* EHCI instance 1: ULPI PHY -> AX88772B (On-module) */
718 #address-cells = <1>;
722 compatible = "usbb95,772b";
724 local-mac-address = [00 00 00 00 00 00];
730 nvidia,phy-reset-gpio =
731 <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_LOW>;
732 vbus-supply = <®_lan_v_bus>;
735 clk32k_in: clock-xtal3 {
736 compatible = "fixed-clock";
738 clock-frequency = <32768>;
742 /delete-node/ opp-760000000;
745 reg_lan_v_bus: regulator-lan-v-bus {
746 compatible = "regulator-fixed";
747 regulator-name = "LAN_V_BUS";
748 regulator-min-microvolt = <5000000>;
749 regulator-max-microvolt = <5000000>;
751 gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>;
754 reg_module_3v3: regulator-module-3v3 {
755 compatible = "regulator-fixed";
756 regulator-name = "+V3.3";
757 regulator-min-microvolt = <3300000>;
758 regulator-max-microvolt = <3300000>;
763 compatible = "nvidia,tegra-audio-wm9712-colibri_t20",
764 "nvidia,tegra-audio-wm9712";
765 nvidia,model = "Toradex Colibri T20";
766 nvidia,audio-routing =
767 "Headphone", "HPOUTL",
768 "Headphone", "HPOUTR",
772 nvidia,ac97-controller = <&tegra_ac97>;
773 clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
774 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
775 <&tegra_car TEGRA20_CLK_CDEV1>;
776 clock-names = "pll_a", "pll_a_out0", "mclk";