]> git.ipfire.org Git - thirdparty/u-boot.git/blob - src/arm64/marvell/armada-8040-clearfog-gt-8k.dts
Squashed 'dts/upstream/' content from commit aaba2d45dc2a
[thirdparty/u-boot.git] / src / arm64 / marvell / armada-8040-clearfog-gt-8k.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3 * Copyright (C) 2018 SolidRun ltd.
4 * Based on Marvell MACCHIATOBin board
5 *
6 * Device Tree file for SolidRun's ClearFog GT 8K
7 */
8
9 #include "armada-8040.dtsi"
10
11 #include <dt-bindings/input/input.h>
12 #include <dt-bindings/gpio/gpio.h>
13
14 / {
15 model = "SolidRun ClearFog GT 8K";
16 compatible = "solidrun,clearfog-gt-8k", "marvell,armada8040",
17 "marvell,armada-ap806-quad", "marvell,armada-ap806";
18
19 chosen {
20 stdout-path = "serial0:115200n8";
21 };
22
23 memory@0 {
24 device_type = "memory";
25 reg = <0x0 0x0 0x0 0x80000000>;
26 };
27
28 aliases {
29 ethernet0 = &cp1_eth1;
30 ethernet1 = &cp0_eth0;
31 ethernet2 = &cp1_eth2;
32 };
33
34 fan: pwm {
35 compatible = "pwm-fan";
36 /* 20% steps */
37 cooling-levels = <0 51 102 153 204 255>;
38 #cooling-cells = <2>;
39 pinctrl-names = "default";
40 pinctrl-0 = <&cp0_fan_pwm_pins>;
41 pwms = <&cp0_gpio2 16 40000>;
42 };
43
44 v_3_3: regulator-3-3v {
45 compatible = "regulator-fixed";
46 regulator-name = "v_3_3";
47 regulator-min-microvolt = <3300000>;
48 regulator-max-microvolt = <3300000>;
49 regulator-always-on;
50 status = "okay";
51 };
52
53 v_5v0_usb3_hst_vbus: regulator-usb3-vbus0 {
54 compatible = "regulator-fixed";
55 gpio = <&cp0_gpio2 15 GPIO_ACTIVE_LOW>;
56 pinctrl-names = "default";
57 pinctrl-0 = <&cp0_xhci_vbus_pins>;
58 regulator-name = "v_5v0_usb3_hst_vbus";
59 regulator-min-microvolt = <5000000>;
60 regulator-max-microvolt = <5000000>;
61 status = "okay";
62 };
63
64 sfp_cp0_eth0: sfp-cp0-eth0 {
65 compatible = "sff,sfp";
66 i2c-bus = <&cp0_i2c1>;
67 mod-def0-gpios = <&cp0_gpio2 17 GPIO_ACTIVE_LOW>;
68 tx-disable-gpios = <&cp1_gpio1 29 GPIO_ACTIVE_HIGH>;
69 pinctrl-names = "default";
70 pinctrl-0 = <&cp0_sfp_present_pins &cp1_sfp_tx_disable_pins>;
71 maximum-power-milliwatt = <2000>;
72 };
73
74 leds {
75 compatible = "gpio-leds";
76 pinctrl-0 = <&cp0_led0_pins
77 &cp0_led1_pins>;
78 pinctrl-names = "default";
79 /* No designated function for these LEDs at the moment */
80 led0 {
81 label = "clearfog-gt-8k:green:led0";
82 gpios = <&cp0_gpio2 8 GPIO_ACTIVE_LOW>;
83 default-state = "on";
84 };
85 led1 {
86 label = "clearfog-gt-8k:green:led1";
87 gpios = <&cp0_gpio2 9 GPIO_ACTIVE_LOW>;
88 default-state = "on";
89 };
90 };
91
92 keys {
93 compatible = "gpio-keys";
94 pinctrl-0 = <&cp0_gpio_reset_pins &cp1_wps_button_pins>;
95 pinctrl-names = "default";
96
97 button-0 {
98 /* The rear button */
99 label = "Rear Button";
100 gpios = <&cp0_gpio2 7 GPIO_ACTIVE_LOW>;
101 linux,can-disable;
102 linux,code = <BTN_0>;
103 };
104
105 button-1 {
106 /* The wps button */
107 label = "WPS Button";
108 gpios = <&cp1_gpio1 30 GPIO_ACTIVE_LOW>;
109 linux,can-disable;
110 linux,code = <KEY_WPS_BUTTON>;
111 };
112 };
113 };
114
115 &ap_thermal_ic {
116 polling-delay = <1000>; /* milliseconds */
117 trips {
118 ap_active: trip-active {
119 temperature = <40000>; /* millicelsius */
120 hysteresis = <4000>; /* millicelsius */
121 type = "active";
122 };
123 };
124 cooling-maps {
125 map0 {
126 trip = <&ap_active>;
127 cooling-device = <&fan THERMAL_NO_LIMIT 4>;
128 };
129 map1 {
130 trip = <&ap_crit>;
131 cooling-device = <&fan 4 5>;
132 };
133 };
134 };
135
136 &cp0_thermal_ic {
137 polling-delay = <1000>; /* milliseconds */
138 trips {
139 cp0_active0: trip-active0 {
140 temperature = <40000>; /* millicelsius */
141 hysteresis = <2500>; /* millicelsius */
142 type = "active";
143 };
144 cp0_active1: trip-active1 {
145 temperature = <45000>; /* millicelsius */
146 hysteresis = <2500>; /* millicelsius */
147 type = "active";
148 };
149 cp0_active2: trip-active2 {
150 temperature = <50000>; /* millicelsius */
151 hysteresis = <2500>; /* millicelsius */
152 type = "active";
153 };
154 cp0_active3: trip-active3 {
155 temperature = <60000>; /* millicelsius */
156 hysteresis = <2500>; /* millicelsius */
157 type = "active";
158 };
159 };
160 cooling-maps {
161 map0 {
162 trip = <&cp0_active0>;
163 cooling-device = <&fan 0 1>;
164 };
165 map1 {
166 trip = <&cp0_active1>;
167 cooling-device = <&fan 1 2>;
168 };
169 map2 {
170 trip = <&cp0_active2>;
171 cooling-device = <&fan 2 3>;
172 };
173 map3 {
174 trip = <&cp0_active3>;
175 cooling-device = <&fan 3 4>;
176 };
177 map4 {
178 trip = <&cp0_crit>;
179 cooling-device = <&fan 4 5>;
180 };
181 };
182 };
183
184 &cp1_thermal_ic {
185 polling-delay = <1000>; /* milliseconds */
186 trips {
187 cp1_active0: trip-active0 {
188 temperature = <40000>; /* millicelsius */
189 hysteresis = <2500>; /* millicelsius */
190 type = "active";
191 };
192 cp1_active1: trip-active1 {
193 temperature = <45000>; /* millicelsius */
194 hysteresis = <2500>; /* millicelsius */
195 type = "active";
196 };
197 cp1_active2: trip-active2 {
198 temperature = <50000>; /* millicelsius */
199 hysteresis = <2500>; /* millicelsius */
200 type = "active";
201 };
202 cp1_active3: trip-active3 {
203 temperature = <60000>; /* millicelsius */
204 hysteresis = <2500>; /* millicelsius */
205 type = "active";
206 };
207 };
208 cooling-maps {
209 map0 {
210 trip = <&cp1_active0>;
211 cooling-device = <&fan 0 1>;
212 };
213 map1 {
214 trip = <&cp1_active1>;
215 cooling-device = <&fan 1 2>;
216 };
217 map2 {
218 trip = <&cp1_active2>;
219 cooling-device = <&fan 2 3>;
220 };
221 map3 {
222 trip = <&cp1_active3>;
223 cooling-device = <&fan 3 4>;
224 };
225 map4 {
226 trip = <&cp1_crit>;
227 cooling-device = <&fan 4 5>;
228 };
229 };
230 };
231
232 &uart0 {
233 status = "okay";
234 pinctrl-0 = <&uart0_pins>;
235 pinctrl-names = "default";
236 };
237
238 &ap_sdhci0 {
239 bus-width = <8>;
240 no-1-8-v;
241 no-sd;
242 no-sdio;
243 non-removable;
244 status = "okay";
245 vqmmc-supply = <&v_3_3>;
246 };
247
248 &cp0_i2c0 {
249 clock-frequency = <100000>;
250 pinctrl-names = "default";
251 pinctrl-0 = <&cp0_i2c0_pins>;
252 status = "okay";
253 };
254
255 &cp0_i2c1 {
256 clock-frequency = <100000>;
257 pinctrl-names = "default";
258 pinctrl-0 = <&cp0_i2c1_pins>;
259 status = "okay";
260 };
261
262 &cp0_pinctrl {
263 /*
264 * MPP Bus:
265 * [0-31] = 0xff: Keep default CP0_shared_pins:
266 * [11] CLKOUT_MPP_11 (out)
267 * [23] LINK_RD_IN_CP2CP (in)
268 * [25] CLKOUT_MPP_25 (out)
269 * [29] AVS_FB_IN_CP2CP (in)
270 * [32, 33, 34] pci0/1/2 reset
271 * [35-38] CP0 I2C1 and I2C0
272 * [39] GPIO reset button
273 * [40,41] LED0 and LED1
274 * [43] 1512 phy reset
275 * [47] USB VBUS EN (active low)
276 * [48] FAN PWM
277 * [49] SFP+ present signal
278 * [50] TPM interrupt
279 * [51] WLAN0 disable
280 * [52] WLAN1 disable
281 * [53] LTE disable
282 * [54] NFC reset
283 * [55] Micro SD card detect
284 * [56-61] Micro SD
285 */
286
287 cp0_pci0_reset_pins: pci0-reset-pins {
288 marvell,pins = "mpp32";
289 marvell,function = "gpio";
290 };
291
292 cp0_pci1_reset_pins: pci1-reset-pins {
293 marvell,pins = "mpp33";
294 marvell,function = "gpio";
295 };
296
297 cp0_pci2_reset_pins: pci2-reset-pins {
298 marvell,pins = "mpp34";
299 marvell,function = "gpio";
300 };
301
302 cp0_i2c1_pins: i2c1-pins {
303 marvell,pins = "mpp35", "mpp36";
304 marvell,function = "i2c1";
305 };
306
307 cp0_i2c0_pins: i2c0-pins {
308 marvell,pins = "mpp37", "mpp38";
309 marvell,function = "i2c0";
310 };
311
312 cp0_gpio_reset_pins: gpio-reset-pins {
313 marvell,pins = "mpp39";
314 marvell,function = "gpio";
315 };
316
317 cp0_led0_pins: led0-pins {
318 marvell,pins = "mpp40";
319 marvell,function = "gpio";
320 };
321
322 cp0_led1_pins: led1-pins {
323 marvell,pins = "mpp41";
324 marvell,function = "gpio";
325 };
326
327 cp0_copper_eth_phy_reset: copper-eth-phy-reset {
328 marvell,pins = "mpp43";
329 marvell,function = "gpio";
330 };
331
332 cp0_xhci_vbus_pins: xhci0-vbus-pins {
333 marvell,pins = "mpp47";
334 marvell,function = "gpio";
335 };
336
337 cp0_fan_pwm_pins: fan-pwm-pins {
338 marvell,pins = "mpp48";
339 marvell,function = "gpio";
340 };
341
342 cp0_sfp_present_pins: sfp-present-pins {
343 marvell,pins = "mpp49";
344 marvell,function = "gpio";
345 };
346
347 cp0_tpm_irq_pins: tpm-irq-pins {
348 marvell,pins = "mpp50";
349 marvell,function = "gpio";
350 };
351
352 cp0_wlan_disable_pins: wlan-disable-pins {
353 marvell,pins = "mpp51";
354 marvell,function = "gpio";
355 };
356
357 cp0_sdhci_pins: sdhci-pins {
358 marvell,pins = "mpp55", "mpp56", "mpp57", "mpp58", "mpp59",
359 "mpp60", "mpp61";
360 marvell,function = "sdio";
361 };
362 };
363
364 &cp0_pcie0 {
365 pinctrl-names = "default";
366 pinctrl-0 = <&cp0_pci0_reset_pins &cp0_wlan_disable_pins>;
367 reset-gpios = <&cp0_gpio2 0 GPIO_ACTIVE_LOW>;
368 phys = <&cp0_comphy0 0>;
369 phy-names = "cp0-pcie0-x1-phy";
370 status = "okay";
371 };
372
373 &cp0_gpio2 {
374 sata_reset {
375 gpio-hog;
376 gpios = <1 GPIO_ACTIVE_HIGH>;
377 output-high;
378 };
379
380 lte_reset {
381 gpio-hog;
382 gpios = <2 GPIO_ACTIVE_LOW>;
383 output-low;
384 };
385
386 wlan_disable {
387 gpio-hog;
388 gpios = <19 GPIO_ACTIVE_LOW>;
389 output-low;
390 };
391
392 lte_disable {
393 gpio-hog;
394 gpios = <21 GPIO_ACTIVE_LOW>;
395 output-low;
396 };
397 };
398
399 &cp0_ethernet {
400 status = "okay";
401 };
402
403 /* SFP */
404 &cp0_eth0 {
405 status = "okay";
406 phy-mode = "10gbase-r";
407 managed = "in-band-status";
408 phys = <&cp0_comphy2 0>;
409 sfp = <&sfp_cp0_eth0>;
410 };
411
412 &cp0_sdhci0 {
413 broken-cd;
414 bus-width = <4>;
415 pinctrl-names = "default";
416 pinctrl-0 = <&cp0_sdhci_pins>;
417 status = "okay";
418 vqmmc-supply = <&v_3_3>;
419 };
420
421 &cp0_usb3_1 {
422 status = "okay";
423 };
424
425 &cp1_pinctrl {
426 /*
427 * MPP Bus:
428 * [0-5] TDM
429 * [6] VHV Enable
430 * [7] CP1 SPI0 CSn1 (FXS)
431 * [8] CP1 SPI0 CSn0 (TPM)
432 * [9.11]CP1 SPI0 MOSI/MISO/CLK
433 * [13] CP1 SPI1 MISO (TDM and SPI ROM shared)
434 * [14] CP1 SPI1 CS0n (64Mb SPI ROM)
435 * [15] CP1 SPI1 MOSI (TDM and SPI ROM shared)
436 * [16] CP1 SPI1 CLK (TDM and SPI ROM shared)
437 * [24] Topaz switch reset
438 * [26] Buzzer
439 * [27] CP1 SMI MDIO
440 * [28] CP1 SMI MDC
441 * [29] CP0 10G SFP TX Disable
442 * [30] WPS button
443 * [31] Front panel button
444 */
445
446 cp1_spi1_pins: spi1-pins {
447 marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
448 marvell,function = "spi1";
449 };
450
451 cp1_switch_reset_pins: switch-reset-pins {
452 marvell,pins = "mpp24";
453 marvell,function = "gpio";
454 };
455
456 cp1_ge_mdio_pins: ge-mdio-pins {
457 marvell,pins = "mpp27", "mpp28";
458 marvell,function = "ge";
459 };
460
461 cp1_sfp_tx_disable_pins: sfp-tx-disable-pins {
462 marvell,pins = "mpp29";
463 marvell,function = "gpio";
464 };
465
466 cp1_wps_button_pins: wps-button-pins {
467 marvell,pins = "mpp30";
468 marvell,function = "gpio";
469 };
470 };
471
472 &cp1_sata0 {
473 pinctrl-0 = <&cp0_pci1_reset_pins>;
474 status = "okay";
475
476 sata-port@1 {
477 phys = <&cp1_comphy0 1>;
478 phy-names = "cp1-sata0-1-phy";
479 };
480 };
481
482 &cp1_mdio {
483 pinctrl-names = "default";
484 pinctrl-0 = <&cp1_ge_mdio_pins>;
485 status = "okay";
486
487 ge_phy: ethernet-phy@0 {
488 /* LED0 - GB link
489 * LED1 - on: link, blink: activity
490 */
491 marvell,reg-init = <3 16 0 0x1017>;
492 reg = <0>;
493 pinctrl-names = "default";
494 pinctrl-0 = <&cp0_copper_eth_phy_reset>;
495 reset-gpios = <&cp0_gpio2 11 GPIO_ACTIVE_LOW>;
496 reset-assert-us = <10000>;
497 reset-deassert-us = <10000>;
498 };
499
500 switch0: switch0@4 {
501 compatible = "marvell,mv88e6085";
502 reg = <4>;
503 pinctrl-names = "default";
504 pinctrl-0 = <&cp1_switch_reset_pins>;
505 reset-gpios = <&cp1_gpio1 24 GPIO_ACTIVE_LOW>;
506
507 ports {
508 #address-cells = <1>;
509 #size-cells = <0>;
510
511 port@1 {
512 reg = <1>;
513 label = "lan2";
514 phy-handle = <&switch0phy0>;
515 };
516
517 port@2 {
518 reg = <2>;
519 label = "lan1";
520 phy-handle = <&switch0phy1>;
521 };
522
523 port@3 {
524 reg = <3>;
525 label = "lan4";
526 phy-handle = <&switch0phy2>;
527 };
528
529 port@4 {
530 reg = <4>;
531 label = "lan3";
532 phy-handle = <&switch0phy3>;
533 };
534
535 port@5 {
536 reg = <5>;
537 label = "cpu";
538 ethernet = <&cp1_eth2>;
539 phy-mode = "2500base-x";
540 managed = "in-band-status";
541 };
542 };
543
544 mdio {
545 #address-cells = <1>;
546 #size-cells = <0>;
547
548 switch0phy0: switch0phy0@11 {
549 reg = <0x11>;
550 };
551
552 switch0phy1: switch0phy1@12 {
553 reg = <0x12>;
554 };
555
556 switch0phy2: switch0phy2@13 {
557 reg = <0x13>;
558 };
559
560 switch0phy3: switch0phy3@14 {
561 reg = <0x14>;
562 };
563 };
564 };
565 };
566
567 &cp1_ethernet {
568 status = "okay";
569 };
570
571 /* 1G copper */
572 &cp1_eth1 {
573 status = "okay";
574 phy-mode = "sgmii";
575 phy = <&ge_phy>;
576 phys = <&cp1_comphy3 1>;
577 };
578
579 /* Switch uplink */
580 &cp1_eth2 {
581 status = "okay";
582 phy-mode = "2500base-x";
583 phys = <&cp1_comphy5 2>;
584 managed = "in-band-status";
585 };
586
587 &cp1_spi1 {
588 pinctrl-names = "default";
589 pinctrl-0 = <&cp1_spi1_pins>;
590 status = "okay";
591
592 flash@0 {
593 compatible = "st,w25q32";
594 spi-max-frequency = <50000000>;
595 reg = <0>;
596 };
597 };
598
599 &cp1_comphy2 {
600 cp1_usbh0_con: connector {
601 compatible = "usb-a-connector";
602 phy-supply = <&v_5v0_usb3_hst_vbus>;
603 };
604 };
605
606 &cp1_usb3_0 {
607 phys = <&cp1_comphy2 0>;
608 phy-names = "cp1-usb3h0-comphy";
609 status = "okay";
610 };