1 // SPDX-License-Identifier: GPL-2.0
2 #include "tegra30.dtsi"
5 * Toradex Apalis T30 Module Device Tree
6 * Compatible for Revisions 1GB: V1.0A, V1.1A; 1GB IT: V1.1A;
7 * 2GB: V1.0B, V1.0C, V1.0E, V1.1A
10 model = "Toradex Apalis T30";
11 compatible = "toradex,apalis_t30", "nvidia,tegra30";
14 reg = <0x80000000 0x40000000>;
18 avdd-pexa-supply = <&vdd2_reg>;
19 vdd-pexa-supply = <&vdd2_reg>;
20 avdd-pexb-supply = <&vdd2_reg>;
21 vdd-pexb-supply = <&vdd2_reg>;
22 avdd-pex-pll-supply = <&vdd2_reg>;
23 avdd-plle-supply = <&ldo6_reg>;
24 vddio-pex-ctl-supply = <&sys_3v3_reg>;
25 hvdd-pex-supply = <&sys_3v3_reg>;
28 nvidia,num-lanes = <4>;
32 nvidia,num-lanes = <1>;
36 nvidia,num-lanes = <1>;
42 vdd-supply = <&avdd_hdmi_3v3_reg>;
43 pll-supply = <&avdd_hdmi_pll_1v8_reg>;
46 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
47 nvidia,ddc-i2c-bus = <&hdmiddc>;
52 pinctrl-names = "default";
53 pinctrl-0 = <&state_default>;
55 state_default: pinmux {
56 /* Analogue Audio (On-module) */
58 nvidia,pins = "clk1_out_pw4";
59 nvidia,function = "extperiph1";
60 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
61 nvidia,tristate = <TEGRA_PIN_DISABLE>;
62 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
65 nvidia,pins = "dap3_fs_pp0",
69 nvidia,function = "i2s2";
70 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
71 nvidia,tristate = <TEGRA_PIN_DISABLE>;
77 nvidia,function = "rsvd4";
78 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
79 nvidia,tristate = <TEGRA_PIN_DISABLE>;
84 nvidia,pins = "uart3_rts_n_pc0";
85 nvidia,function = "pwm0";
86 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
87 nvidia,tristate = <TEGRA_PIN_DISABLE>;
89 /* BKL1_PWM_EN#, disable TPS65911 PMIC PWM backlight */
91 nvidia,pins = "uart3_cts_n_pa1";
92 nvidia,function = "rsvd2";
93 nvidia,pull = <TEGRA_PIN_PULL_UP>;
94 nvidia,tristate = <TEGRA_PIN_DISABLE>;
97 /* Apalis CAN1 on SPI6 */
99 nvidia,pins = "spi2_cs0_n_px3",
103 nvidia,function = "spi6";
104 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
105 nvidia,tristate = <TEGRA_PIN_DISABLE>;
109 nvidia,pins = "spi2_cs1_n_pw2";
110 nvidia,function = "spi3";
111 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
112 nvidia,tristate = <TEGRA_PIN_DISABLE>;
113 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
116 /* Apalis CAN2 on SPI4 */
118 nvidia,pins = "gmi_a16_pj7",
122 nvidia,function = "spi4";
123 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
124 nvidia,tristate = <TEGRA_PIN_DISABLE>;
125 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
129 nvidia,pins = "spi2_cs2_n_pw3";
130 nvidia,function = "spi3";
131 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
132 nvidia,tristate = <TEGRA_PIN_DISABLE>;
133 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
136 /* Apalis Digital Audio */
138 nvidia,pins = "clk1_req_pee2";
139 nvidia,function = "hda";
140 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
141 nvidia,tristate = <TEGRA_PIN_DISABLE>;
144 nvidia,pins = "clk2_out_pw5";
145 nvidia,function = "extperiph2";
146 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
147 nvidia,tristate = <TEGRA_PIN_DISABLE>;
148 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
151 nvidia,pins = "dap1_fs_pn0",
155 nvidia,function = "hda";
156 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
157 nvidia,tristate = <TEGRA_PIN_DISABLE>;
162 nvidia,pins = "cam_i2c_scl_pbb1",
164 nvidia,function = "i2c3";
165 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
166 nvidia,tristate = <TEGRA_PIN_DISABLE>;
167 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
168 nvidia,lock = <TEGRA_PIN_DISABLE>;
169 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
174 nvidia,pins = "sdmmc3_clk_pa6";
175 nvidia,function = "sdmmc3";
176 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
177 nvidia,tristate = <TEGRA_PIN_DISABLE>;
180 nvidia,pins = "sdmmc3_cmd_pa7",
189 nvidia,function = "sdmmc3";
190 nvidia,pull = <TEGRA_PIN_PULL_UP>;
191 nvidia,tristate = <TEGRA_PIN_DISABLE>;
193 /* Apalis MMC1_CD# */
196 nvidia,function = "rsvd2";
197 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
198 nvidia,tristate = <TEGRA_PIN_DISABLE>;
199 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
205 nvidia,function = "pwm3";
206 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
207 nvidia,tristate = <TEGRA_PIN_DISABLE>;
213 nvidia,function = "pwm2";
214 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
215 nvidia,tristate = <TEGRA_PIN_DISABLE>;
221 nvidia,function = "pwm1";
222 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
223 nvidia,tristate = <TEGRA_PIN_DISABLE>;
229 nvidia,function = "pwm0";
230 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
231 nvidia,tristate = <TEGRA_PIN_DISABLE>;
234 /* Apalis RESET_MOCI# */
236 nvidia,pins = "gmi_rst_n_pi4";
237 nvidia,function = "gmi";
238 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
239 nvidia,tristate = <TEGRA_PIN_DISABLE>;
244 nvidia,pins = "sdmmc1_clk_pz0";
245 nvidia,function = "sdmmc1";
246 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
247 nvidia,tristate = <TEGRA_PIN_DISABLE>;
250 nvidia,pins = "sdmmc1_cmd_pz1",
255 nvidia,function = "sdmmc1";
256 nvidia,pull = <TEGRA_PIN_PULL_UP>;
257 nvidia,tristate = <TEGRA_PIN_DISABLE>;
261 nvidia,pins = "clk2_req_pcc5";
262 nvidia,function = "rsvd2";
263 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
264 nvidia,tristate = <TEGRA_PIN_DISABLE>;
265 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
270 nvidia,pins = "spi1_sck_px5",
274 nvidia,function = "spi1";
275 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
276 nvidia,tristate = <TEGRA_PIN_DISABLE>;
281 nvidia,pins = "lcd_sck_pz4",
285 nvidia,function = "spi5";
286 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
287 nvidia,tristate = <TEGRA_PIN_DISABLE>;
292 nvidia,pins = "ulpi_data0_po1",
300 nvidia,function = "uarta";
301 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
302 nvidia,tristate = <TEGRA_PIN_DISABLE>;
307 nvidia,pins = "ulpi_clk_py0",
311 nvidia,function = "uartd";
312 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
313 nvidia,tristate = <TEGRA_PIN_DISABLE>;
318 nvidia,pins = "uart2_rxd_pc3",
320 nvidia,function = "uartb";
321 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
322 nvidia,tristate = <TEGRA_PIN_DISABLE>;
327 nvidia,pins = "uart3_rxd_pw7",
329 nvidia,function = "uartc";
330 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
331 nvidia,tristate = <TEGRA_PIN_DISABLE>;
334 /* Apalis USBO1_EN */
336 nvidia,pins = "gen2_i2c_scl_pt5";
337 nvidia,function = "rsvd4";
338 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
339 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
340 nvidia,tristate = <TEGRA_PIN_DISABLE>;
343 /* Apalis USBO1_OC# */
345 nvidia,pins = "gen2_i2c_sda_pt6";
346 nvidia,function = "rsvd4";
347 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
348 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
349 nvidia,tristate = <TEGRA_PIN_DISABLE>;
350 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
353 /* Apalis WAKE1_MICO */
356 nvidia,function = "rsvd1";
357 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
358 nvidia,tristate = <TEGRA_PIN_DISABLE>;
359 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
362 /* eMMC (On-module) */
364 nvidia,pins = "sdmmc4_clk_pcc4",
366 nvidia,function = "sdmmc4";
367 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
368 nvidia,tristate = <TEGRA_PIN_DISABLE>;
371 nvidia,pins = "sdmmc4_dat0_paa0",
379 nvidia,function = "sdmmc4";
380 nvidia,pull = <TEGRA_PIN_PULL_UP>;
381 nvidia,tristate = <TEGRA_PIN_DISABLE>;
384 /* LVDS Transceiver Configuration */
386 nvidia,pins = "pbb0",
390 nvidia,function = "rsvd2";
391 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
392 nvidia,tristate = <TEGRA_PIN_DISABLE>;
393 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
394 nvidia,lock = <TEGRA_PIN_DISABLE>;
397 nvidia,pins = "pbb3",
401 nvidia,function = "displayb";
402 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
403 nvidia,tristate = <TEGRA_PIN_DISABLE>;
404 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
405 nvidia,lock = <TEGRA_PIN_DISABLE>;
408 /* Power I2C (On-module) */
410 nvidia,pins = "pwr_i2c_scl_pz6",
412 nvidia,function = "i2cpwr";
413 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
414 nvidia,tristate = <TEGRA_PIN_DISABLE>;
415 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
416 nvidia,lock = <TEGRA_PIN_DISABLE>;
417 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
421 * THERMD_ALERT#, unlatched I2C address pin of LM95245
422 * temperature sensor therefore requires disabling for
426 nvidia,pins = "lcd_dc1_pd2";
427 nvidia,function = "rsvd3";
428 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
429 nvidia,tristate = <TEGRA_PIN_DISABLE>;
430 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
436 nvidia,function = "rsvd1";
437 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
438 nvidia,tristate = <TEGRA_PIN_DISABLE>;
439 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
444 hdmiddc: i2c@7000c700 {
445 clock-frequency = <10000>;
449 * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
450 * touch screen controller
454 clock-frequency = <100000>;
456 /* SGTL5000 audio codec */
458 compatible = "fsl,sgtl5000";
460 VDDA-supply = <&sys_3v3_reg>;
461 VDDIO-supply = <&sys_3v3_reg>;
462 clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
466 compatible = "ti,tps65911";
469 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
470 #interrupt-cells = <2>;
471 interrupt-controller;
473 ti,system-power-controller;
478 vcc1-supply = <&sys_3v3_reg>;
479 vcc2-supply = <&sys_3v3_reg>;
480 vcc3-supply = <&vio_reg>;
481 vcc4-supply = <&sys_3v3_reg>;
482 vcc5-supply = <&sys_3v3_reg>;
483 vcc6-supply = <&vio_reg>;
484 vcc7-supply = <&charge_pump_5v0_reg>;
485 vccio-supply = <&sys_3v3_reg>;
488 /* SW1: +V1.35_VDDIO_DDR */
490 regulator-name = "vddio_ddr_1v35";
491 regulator-min-microvolt = <1350000>;
492 regulator-max-microvolt = <1350000>;
499 "vdd_pexa,vdd_pexb,vdd_sata";
500 regulator-min-microvolt = <1050000>;
501 regulator-max-microvolt = <1050000>;
504 /* SW CTRL: +V1.0_VDD_CPU */
505 vddctrl_reg: vddctrl {
506 regulator-name = "vdd_cpu,vdd_sys";
507 regulator-min-microvolt = <1150000>;
508 regulator-max-microvolt = <1150000>;
514 regulator-name = "vdd_1v8_gen";
515 regulator-min-microvolt = <1800000>;
516 regulator-max-microvolt = <1800000>;
523 * EN_+V3.3 switching via FET:
524 * +V3.3_AUDIO_AVDD_S, +V3.3 and +V1.8_VDD_LAN
525 * see also v3_3 fixed supply
528 regulator-name = "en_3v3";
529 regulator-min-microvolt = <3300000>;
530 regulator-max-microvolt = <3300000>;
537 "avdd_dsi_csi,pwrdet_mipi";
538 regulator-min-microvolt = <1200000>;
539 regulator-max-microvolt = <1200000>;
544 regulator-name = "vdd_rtc";
545 regulator-min-microvolt = <1200000>;
546 regulator-max-microvolt = <1200000>;
552 * only required for analog RGB
555 regulator-name = "avdd_vdac";
556 regulator-min-microvolt = <2800000>;
557 regulator-max-microvolt = <2800000>;
562 * +V1.05_AVDD_PLLE: avdd_plle should be 1.05V
563 * but LDO6 can't set voltage in 50mV
567 regulator-name = "avdd_plle";
568 regulator-min-microvolt = <1100000>;
569 regulator-max-microvolt = <1100000>;
574 regulator-name = "avdd_pll";
575 regulator-min-microvolt = <1200000>;
576 regulator-max-microvolt = <1200000>;
580 /* +V1.0_VDD_DDR_HS */
582 regulator-name = "vdd_ddr_hs";
583 regulator-min-microvolt = <1000000>;
584 regulator-max-microvolt = <1000000>;
590 /* STMPE811 touch screen controller */
592 compatible = "st,stmpe811";
594 interrupts = <TEGRA_GPIO(V, 0) IRQ_TYPE_LEVEL_LOW>;
595 interrupt-parent = <&gpio>;
596 interrupt-controller;
602 compatible = "st,stmpe-ts";
603 /* 3.25 MHz ADC clock speed */
605 /* 8 sample average control */
607 /* 7 length fractional part in z */
610 * 50 mA typical 80 mA max touchscreen drivers
611 * current limit value
616 /* internal ADC reference */
618 /* ADC converstion time: 80 clocks */
619 st,sample-time = <4>;
620 /* 1 ms panel driver settling time */
622 /* 5 ms touch detect interrupt delay */
623 st,touch-det-delay = <5>;
628 * LM95245 temperature sensor
629 * Note: OVERT_N directly connected to PMIC PWRDN
632 compatible = "national,lm95245";
636 /* SW: +V1.2_VDD_CORE */
638 compatible = "ti,tps62362";
641 regulator-name = "tps62362-vout";
642 regulator-min-microvolt = <900000>;
643 regulator-max-microvolt = <1400000>;
647 /* VSEL1: EN_CORE_DVFS_N low for DVFS */
655 spi-max-frequency = <10000000>;
658 compatible = "microchip,mcp2515";
661 interrupt-parent = <&gpio>;
662 interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_EDGE_FALLING>;
663 spi-max-frequency = <10000000>;
670 spi-max-frequency = <10000000>;
673 compatible = "microchip,mcp2515";
676 interrupt-parent = <&gpio>;
677 interrupts = <TEGRA_GPIO(W, 2) IRQ_TYPE_EDGE_FALLING>;
678 spi-max-frequency = <10000000>;
683 nvidia,invert-interrupt;
684 nvidia,suspend-mode = <1>;
685 nvidia,cpu-pwr-good-time = <5000>;
686 nvidia,cpu-pwr-off-time = <5000>;
687 nvidia,core-pwr-good-time = <3845 3845>;
688 nvidia,core-pwr-off-time = <0>;
689 nvidia,core-power-req-active-high;
690 nvidia,sys-clock-req-active-high;
707 compatible = "simple-bus";
708 #address-cells = <1>;
712 compatible = "fixed-clock";
715 clock-frequency = <32768>;
719 compatible = "fixed-clock";
722 clock-frequency = <16000000>;
723 clock-output-names = "clk16m";
728 compatible = "simple-bus";
729 #address-cells = <1>;
732 avdd_hdmi_pll_1v8_reg: regulator@100 {
733 compatible = "regulator-fixed";
735 regulator-name = "+V1.8_AVDD_HDMI_PLL";
736 regulator-min-microvolt = <1800000>;
737 regulator-max-microvolt = <1800000>;
739 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
740 vin-supply = <&vio_reg>;
743 sys_3v3_reg: regulator@101 {
744 compatible = "regulator-fixed";
746 regulator-name = "3v3";
747 regulator-min-microvolt = <3300000>;
748 regulator-max-microvolt = <3300000>;
752 avdd_hdmi_3v3_reg: regulator@102 {
753 compatible = "regulator-fixed";
755 regulator-name = "+V3.3_AVDD_HDMI";
756 regulator-min-microvolt = <3300000>;
757 regulator-max-microvolt = <3300000>;
759 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
760 vin-supply = <&sys_3v3_reg>;
763 charge_pump_5v0_reg: regulator@103 {
764 compatible = "regulator-fixed";
766 regulator-name = "5v0";
767 regulator-min-microvolt = <5000000>;
768 regulator-max-microvolt = <5000000>;
774 compatible = "toradex,tegra-audio-sgtl5000-apalis_t30",
775 "nvidia,tegra-audio-sgtl5000";
776 nvidia,model = "Toradex Apalis T30";
777 nvidia,audio-routing =
778 "Headphone Jack", "HP_OUT",
779 "LINE_IN", "Line In Jack",
780 "MIC_IN", "Mic Jack";
781 nvidia,i2s-controller = <&tegra_i2s2>;
782 nvidia,audio-codec = <&sgtl5000>;
783 clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
784 <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
785 <&tegra_car TEGRA30_CLK_EXTERN1>;
786 clock-names = "pll_a", "pll_a_out0", "mclk";