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