blob: 2d8c58fd9357996422b449c9effb9192433df25c [file] [log] [blame]
Kyle Swenson8d8f6542021-03-15 11:02:55 -06001#include <dt-bindings/input/input.h>
2#include "tegra30.dtsi"
3
4/*
5 * Toradex Colibri T30 Module Device Tree
6 * Compatible for Revisions V1.1B, V1.1C, V1.1D, V1.1E; IT: V1.1A
7 */
8/ {
9 model = "Toradex Colibri T30";
10 compatible = "toradex,colibri_t30", "nvidia,tegra30";
11
12 memory {
13 reg = <0x80000000 0x40000000>;
14 };
15
16 host1x@50000000 {
17 hdmi@54280000 {
18 vdd-supply = <&avdd_hdmi_3v3_reg>;
19 pll-supply = <&avdd_hdmi_pll_1v8_reg>;
20
21 nvidia,hpd-gpio =
22 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
23 nvidia,ddc-i2c-bus = <&hdmiddc>;
24 };
25 };
26
27 pinmux@70000868 {
28 pinctrl-names = "default";
29 pinctrl-0 = <&state_default>;
30
31 state_default: pinmux {
32 /* Colibri BL_ON */
33 pv2 {
34 nvidia,pins = "pv2";
35 nvidia,function = "rsvd4";
36 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
37 nvidia,tristate = <TEGRA_PIN_DISABLE>;
38 };
39
40 /* Colibri Backlight PWM<A> */
41 sdmmc3_dat3_pb4 {
42 nvidia,pins = "sdmmc3_dat3_pb4";
43 nvidia,function = "pwm0";
44 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
45 nvidia,tristate = <TEGRA_PIN_DISABLE>;
46 };
47
48 /* Colibri CAN_INT */
49 kb_row8_ps0 {
50 nvidia,pins = "kb_row8_ps0";
51 nvidia,function = "kbc";
52 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
53 nvidia,tristate = <TEGRA_PIN_DISABLE>;
54 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
55 };
56
57 /*
58 * Colibri L_BIAS, LCD_M1 is muxed with LCD_DE
59 * todays display need DE, disable LCD_M1
60 */
61 lcd_m1_pw1 {
62 nvidia,pins = "lcd_m1_pw1";
63 nvidia,function = "rsvd3";
64 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
65 nvidia,tristate = <TEGRA_PIN_DISABLE>;
66 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
67 };
68
69 /* Colibri MMC */
70 kb_row10_ps2 {
71 nvidia,pins = "kb_row10_ps2";
72 nvidia,function = "sdmmc2";
73 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
74 nvidia,tristate = <TEGRA_PIN_DISABLE>;
75 };
76 kb_row11_ps3 {
77 nvidia,pins = "kb_row11_ps3",
78 "kb_row12_ps4",
79 "kb_row13_ps5",
80 "kb_row14_ps6",
81 "kb_row15_ps7";
82 nvidia,function = "sdmmc2";
83 nvidia,pull = <TEGRA_PIN_PULL_UP>;
84 nvidia,tristate = <TEGRA_PIN_DISABLE>;
85 };
86
87 /* Colibri SSP */
88 ulpi_clk_py0 {
89 nvidia,pins = "ulpi_clk_py0",
90 "ulpi_dir_py1",
91 "ulpi_nxt_py2",
92 "ulpi_stp_py3";
93 nvidia,function = "spi1";
94 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
95 nvidia,tristate = <TEGRA_PIN_DISABLE>;
96 };
97 sdmmc3_dat6_pd3 {
98 nvidia,pins = "sdmmc3_dat6_pd3",
99 "sdmmc3_dat7_pd4";
100 nvidia,function = "spdif";
101 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
102 nvidia,tristate = <TEGRA_PIN_ENABLE>;
103 };
104
105 /* Colibri UART_A */
106 ulpi_data0 {
107 nvidia,pins = "ulpi_data0_po1",
108 "ulpi_data1_po2",
109 "ulpi_data2_po3",
110 "ulpi_data3_po4",
111 "ulpi_data4_po5",
112 "ulpi_data5_po6",
113 "ulpi_data6_po7",
114 "ulpi_data7_po0";
115 nvidia,function = "uarta";
116 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
117 nvidia,tristate = <TEGRA_PIN_DISABLE>;
118 };
119
120 /* Colibri UART_B */
121 gmi_a16_pj7 {
122 nvidia,pins = "gmi_a16_pj7",
123 "gmi_a17_pb0",
124 "gmi_a18_pb1",
125 "gmi_a19_pk7";
126 nvidia,function = "uartd";
127 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
128 nvidia,tristate = <TEGRA_PIN_DISABLE>;
129 };
130
131 /* Colibri UART_C */
132 uart2_rxd {
133 nvidia,pins = "uart2_rxd_pc3",
134 "uart2_txd_pc2";
135 nvidia,function = "uartb";
136 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
137 nvidia,tristate = <TEGRA_PIN_DISABLE>;
138 };
139
140 /* eMMC */
141 sdmmc4_clk_pcc4 {
142 nvidia,pins = "sdmmc4_clk_pcc4",
143 "sdmmc4_rst_n_pcc3";
144 nvidia,function = "sdmmc4";
145 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
146 nvidia,tristate = <TEGRA_PIN_DISABLE>;
147 };
148 sdmmc4_dat0_paa0 {
149 nvidia,pins = "sdmmc4_dat0_paa0",
150 "sdmmc4_dat1_paa1",
151 "sdmmc4_dat2_paa2",
152 "sdmmc4_dat3_paa3",
153 "sdmmc4_dat4_paa4",
154 "sdmmc4_dat5_paa5",
155 "sdmmc4_dat6_paa6",
156 "sdmmc4_dat7_paa7";
157 nvidia,function = "sdmmc4";
158 nvidia,pull = <TEGRA_PIN_PULL_UP>;
159 nvidia,tristate = <TEGRA_PIN_DISABLE>;
160 };
161
162 /* Power I2C (On-module) */
163 pwr_i2c_scl_pz6 {
164 nvidia,pins = "pwr_i2c_scl_pz6",
165 "pwr_i2c_sda_pz7";
166 nvidia,function = "i2cpwr";
167 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
168 nvidia,tristate = <TEGRA_PIN_DISABLE>;
169 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
170 nvidia,lock = <TEGRA_PIN_DISABLE>;
171 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
172 };
173
174 /*
175 * THERMD_ALERT#, unlatched I2C address pin of LM95245
176 * temperature sensor therefore requires disabling for
177 * now
178 */
179 lcd_dc1_pd2 {
180 nvidia,pins = "lcd_dc1_pd2";
181 nvidia,function = "rsvd3";
182 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
183 nvidia,tristate = <TEGRA_PIN_DISABLE>;
184 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
185 };
186
187 /* TOUCH_PEN_INT# */
188 pv0 {
189 nvidia,pins = "pv0";
190 nvidia,function = "rsvd1";
191 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
192 nvidia,tristate = <TEGRA_PIN_DISABLE>;
193 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
194 };
195 };
196 };
197
198 hdmiddc: i2c@7000c700 {
199 clock-frequency = <100000>;
200 };
201
202 /*
203 * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
204 * touch screen controller
205 */
206 i2c@7000d000 {
207 status = "okay";
208 clock-frequency = <100000>;
209
210 pmic: tps65911@2d {
211 compatible = "ti,tps65911";
212 reg = <0x2d>;
213
214 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
215 #interrupt-cells = <2>;
216 interrupt-controller;
217
218 ti,system-power-controller;
219
220 #gpio-cells = <2>;
221 gpio-controller;
222
223 vcc1-supply = <&sys_3v3_reg>;
224 vcc2-supply = <&sys_3v3_reg>;
225 vcc3-supply = <&vio_reg>;
226 vcc4-supply = <&sys_3v3_reg>;
227 vcc5-supply = <&sys_3v3_reg>;
228 vcc6-supply = <&vio_reg>;
229 vcc7-supply = <&charge_pump_5v0_reg>;
230 vccio-supply = <&sys_3v3_reg>;
231
232 regulators {
233 /* SW1: +V1.35_VDDIO_DDR */
234 vdd1_reg: vdd1 {
235 regulator-name = "vddio_ddr_1v35";
236 regulator-min-microvolt = <1350000>;
237 regulator-max-microvolt = <1350000>;
238 regulator-always-on;
239 };
240
241 /* SW2: unused */
242
243 /* SW CTRL: +V1.0_VDD_CPU */
244 vddctrl_reg: vddctrl {
245 regulator-name = "vdd_cpu,vdd_sys";
246 regulator-min-microvolt = <1150000>;
247 regulator-max-microvolt = <1150000>;
248 regulator-always-on;
249 };
250
251 /* SWIO: +V1.8 */
252 vio_reg: vio {
253 regulator-name = "vdd_1v8_gen";
254 regulator-min-microvolt = <1800000>;
255 regulator-max-microvolt = <1800000>;
256 regulator-always-on;
257 };
258
259 /* LDO1: unused */
260
261 /*
262 * EN_+V3.3 switching via FET:
263 * +V3.3_AUDIO_AVDD_S, +V3.3 and +V1.8_VDD_LAN
264 * see also 3v3 fixed supply
265 */
266 ldo2_reg: ldo2 {
267 regulator-name = "en_3v3";
268 regulator-min-microvolt = <3300000>;
269 regulator-max-microvolt = <3300000>;
270 regulator-always-on;
271 };
272
273 /* LDO3: unused */
274
275 /* +V1.2_VDD_RTC */
276 ldo4_reg: ldo4 {
277 regulator-name = "vdd_rtc";
278 regulator-min-microvolt = <1200000>;
279 regulator-max-microvolt = <1200000>;
280 regulator-always-on;
281 };
282
283 /*
284 * +V2.8_AVDD_VDAC:
285 * only required for analog RGB
286 */
287 ldo5_reg: ldo5 {
288 regulator-name = "avdd_vdac";
289 regulator-min-microvolt = <2800000>;
290 regulator-max-microvolt = <2800000>;
291 regulator-always-on;
292 };
293
294 /*
295 * +V1.05_AVDD_PLLE: avdd_plle should be 1.05V
296 * but LDO6 can't set voltage in 50mV
297 * granularity
298 */
299 ldo6_reg: ldo6 {
300 regulator-name = "avdd_plle";
301 regulator-min-microvolt = <1100000>;
302 regulator-max-microvolt = <1100000>;
303 };
304
305 /* +V1.2_AVDD_PLL */
306 ldo7_reg: ldo7 {
307 regulator-name = "avdd_pll";
308 regulator-min-microvolt = <1200000>;
309 regulator-max-microvolt = <1200000>;
310 regulator-always-on;
311 };
312
313 /* +V1.0_VDD_DDR_HS */
314 ldo8_reg: ldo8 {
315 regulator-name = "vdd_ddr_hs";
316 regulator-min-microvolt = <1000000>;
317 regulator-max-microvolt = <1000000>;
318 regulator-always-on;
319 };
320 };
321 };
322
323 /* STMPE811 touch screen controller */
324 stmpe811@41 {
325 compatible = "st,stmpe811";
326 #address-cells = <1>;
327 #size-cells = <0>;
328 reg = <0x41>;
329 interrupts = <TEGRA_GPIO(V, 0) IRQ_TYPE_LEVEL_LOW>;
330 interrupt-parent = <&gpio>;
331 interrupt-controller;
332 id = <0>;
333 blocks = <0x5>;
334 irq-trigger = <0x1>;
335
336 stmpe_touchscreen {
337 compatible = "st,stmpe-ts";
338 reg = <0>;
339 /* 3.25 MHz ADC clock speed */
340 st,adc-freq = <1>;
341 /* 8 sample average control */
342 st,ave-ctrl = <3>;
343 /* 7 length fractional part in z */
344 st,fraction-z = <7>;
345 /*
346 * 50 mA typical 80 mA max touchscreen drivers
347 * current limit value
348 */
349 st,i-drive = <1>;
350 /* 12-bit ADC */
351 st,mod-12b = <1>;
352 /* internal ADC reference */
353 st,ref-sel = <0>;
354 /* ADC converstion time: 80 clocks */
355 st,sample-time = <4>;
356 /* 1 ms panel driver settling time */
357 st,settling = <3>;
358 /* 5 ms touch detect interrupt delay */
359 st,touch-det-delay = <5>;
360 };
361 };
362
363 /*
364 * LM95245 temperature sensor
365 * Note: OVERT_N directly connected to PMIC PWRDN
366 */
367 temp-sensor@4c {
368 compatible = "national,lm95245";
369 reg = <0x4c>;
370 };
371
372 /* SW: +V1.2_VDD_CORE */
373 tps62362@60 {
374 compatible = "ti,tps62362";
375 reg = <0x60>;
376
377 regulator-name = "tps62362-vout";
378 regulator-min-microvolt = <900000>;
379 regulator-max-microvolt = <1400000>;
380 regulator-boot-on;
381 regulator-always-on;
382 ti,vsel0-state-low;
383 /* VSEL1: EN_CORE_DVFS_N low for DVFS */
384 ti,vsel1-state-low;
385 };
386 };
387
388 pmc@7000e400 {
389 nvidia,invert-interrupt;
390 nvidia,suspend-mode = <1>;
391 nvidia,cpu-pwr-good-time = <5000>;
392 nvidia,cpu-pwr-off-time = <5000>;
393 nvidia,core-pwr-good-time = <3845 3845>;
394 nvidia,core-pwr-off-time = <0>;
395 nvidia,core-power-req-active-high;
396 nvidia,sys-clock-req-active-high;
397 };
398
399 /* eMMC */
400 sdhci@78000600 {
401 status = "okay";
402 bus-width = <8>;
403 non-removable;
404 };
405
406 /* EHCI instance 1: USB2_DP/N -> AX88772B */
407 usb@7d004000 {
408 status = "okay";
409 };
410
411 usb-phy@7d004000 {
412 status = "okay";
413 nvidia,is-wired = <1>;
414 };
415
416 clocks {
417 compatible = "simple-bus";
418 #address-cells = <1>;
419 #size-cells = <0>;
420
421 clk32k_in: clk@0 {
422 compatible = "fixed-clock";
423 reg=<0>;
424 #clock-cells = <0>;
425 clock-frequency = <32768>;
426 };
427 };
428
429 regulators {
430 compatible = "simple-bus";
431 #address-cells = <1>;
432 #size-cells = <0>;
433
434 avdd_hdmi_pll_1v8_reg: regulator@100 {
435 compatible = "regulator-fixed";
436 reg = <100>;
437 regulator-name = "+V1.8_AVDD_HDMI_PLL";
438 regulator-min-microvolt = <1800000>;
439 regulator-max-microvolt = <1800000>;
440 enable-active-high;
441 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
442 vin-supply = <&vio_reg>;
443 };
444
445 sys_3v3_reg: regulator@101 {
446 compatible = "regulator-fixed";
447 reg = <101>;
448 regulator-name = "3v3";
449 regulator-min-microvolt = <3300000>;
450 regulator-max-microvolt = <3300000>;
451 regulator-always-on;
452 };
453
454 avdd_hdmi_3v3_reg: regulator@102 {
455 compatible = "regulator-fixed";
456 reg = <102>;
457 regulator-name = "+V3.3_AVDD_HDMI";
458 regulator-min-microvolt = <3300000>;
459 regulator-max-microvolt = <3300000>;
460 enable-active-high;
461 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
462 vin-supply = <&sys_3v3_reg>;
463 };
464
465 charge_pump_5v0_reg: regulator@103 {
466 compatible = "regulator-fixed";
467 reg = <103>;
468 regulator-name = "5v0";
469 regulator-min-microvolt = <5000000>;
470 regulator-max-microvolt = <5000000>;
471 regulator-always-on;
472 };
473 };
474};