Merge branch 'master' of git://git.denx.de/u-boot-sh
[oweals/u-boot.git] / arch / arm / dts / armada-8040-clearfog-gt-8k.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright (C) 2018 SolidRun ltd
4  */
5
6 #include "armada-8040.dtsi"
7
8 / {
9         model = "ClearFog-GT-8K";
10         compatible = "solidrun,clearfog-gt-8k",
11                      "marvell,armada8040";
12
13         chosen {
14                 stdout-path = "serial0:115200n8";
15         };
16
17         aliases {
18                 i2c0 = &cpm_i2c0;
19                 i2c1 = &cpm_i2c1;
20                 spi0 = &cps_spi1;
21         };
22
23         memory@00000000 {
24                 device_type = "memory";
25                 reg = <0x0 0x0 0x0 0x80000000>;
26         };
27
28         simple-bus {
29                 compatible = "simple-bus";
30
31                 reg_usb3h0_vbus: usb3-vbus0 {
32                         compatible = "regulator-fixed";
33                         pinctrl-names = "default";
34                         pinctrl-0 = <&cpm_xhci_vbus_pins>;
35                         regulator-name = "reg-usb3h0-vbus";
36                         regulator-min-microvolt = <5000000>;
37                         regulator-max-microvolt = <5000000>;
38                         startup-delay-us = <300000>;
39                         shutdown-delay-us = <500000>;
40                         regulator-force-boot-off;
41                         gpio = <&cpm_gpio1 15 GPIO_ACTIVE_LOW>; /* GPIO[47] */
42                 };
43         };
44 };
45
46 &uart0 {
47         status = "okay";
48 };
49
50 &ap_pinctl {
51         /*
52          * MPP Bus:
53          * eMMC [0-10]
54          * UART0 [11,19]
55          */
56                   /* 0 1 2 3 4 5 6 7 8 9 */
57         pin-func = < 1 1 1 1 1 1 1 1 1 1
58                      1 3 0 0 0 0 0 0 0 3 >;
59 };
60
61 /* on-board eMMC */
62 &ap_sdhci0 {
63         pinctrl-names = "default";
64         pinctrl-0 = <&ap_emmc_pins>;
65         bus-width = <8>;
66         status = "okay";
67 };
68
69 &cpm_pinctl {
70         /*
71          * MPP Bus:
72          * [0-31] = 0xff: Keep default CP0_shared_pins:
73          * [11] CLKOUT_MPP_11 (out)
74          * [23] LINK_RD_IN_CP2CP (in)
75          * [25] CLKOUT_MPP_25 (out)
76          * [29] AVS_FB_IN_CP2CP (in)
77          * [32, 33, 34] pci0/1/2 reset
78          * [35-38] CP0 I2C1 and I2C0
79          * [39] GPIO reset button
80          * [40,41] LED0 and LED1
81          * [43] 1512 phy reset
82          * [47] USB VBUS EN (active low)
83          * [48] FAN PWM
84          * [49] SFP+ present signal
85          * [50] TPM interrupt
86          * [51] WLAN0 disable
87          * [52] WLAN1 disable
88          * [53] LTE disable
89          * [54] NFC reset
90          * [55] Micro SD card detect
91          * [56-61] Micro SD
92          */
93                 /*   0    1    2    3    4    5    6    7    8    9 */
94         pin-func = < 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
95                      0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
96                      0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
97                      0xff 0    0    0    0    2    2    2    2    0
98                      0    0    0    0    0    0    0    0    0    0
99                      0    0    0    0    0    0    0xe  0xe  0xe  0xe
100                      0xe  0xe  0 >;
101
102         cpm_xhci_vbus_pins: cpm-xhci-vbus-pins {
103                 marvell,pins = < 47 >;
104                 marvell,function = <0>;
105         };
106
107         cps_1g_phy_reset: cps-1g-phy-reset {
108                 marvell,pins = < 43 >;
109                 marvell,function = <0>;
110         };
111 };
112
113 /* uSD slot */
114 &cpm_sdhci0 {
115         pinctrl-names = "default";
116         pinctrl-0 = <&cpm_sdhci_pins>;
117         bus-width = <4>;
118         status = "okay";
119 };
120
121 &cpm_pcie0 {
122         num-lanes = <1>;
123         status = "okay";
124 };
125
126 &cpm_i2c0 {
127         pinctrl-names = "default";
128         pinctrl-0 = <&cpm_i2c0_pins>;
129         status = "okay";
130         clock-frequency = <100000>;
131 };
132
133 &cpm_i2c1 {
134         pinctrl-names = "default";
135         pinctrl-0 = <&cpm_i2c1_pins>;
136         status = "okay";
137         clock-frequency = <100000>;
138 };
139
140 &cpm_sata0 {
141         status = "okay";
142 };
143
144 &cpm_comphy {
145         /*
146          * CP0 Serdes Configuration:
147          * Lane 0: PCIe0 (x1)
148          * Lane 1: Not connected
149          * Lane 2: SFI (10G)
150          * Lane 3: Not connected
151          * Lane 4: USB 3.0 host port1 (can be PCIe)
152          * Lane 5: Not connected
153          */
154         phy0 {
155                 phy-type = <PHY_TYPE_PEX0>;
156         };
157         phy1 {
158                 phy-type = <PHY_TYPE_UNCONNECTED>;
159         };
160         phy2 {
161                 phy-type = <PHY_TYPE_SFI>;
162         };
163         phy3 {
164                 phy-type = <PHY_TYPE_UNCONNECTED>;
165         };
166         phy4 {
167                 phy-type = <PHY_TYPE_USB3_HOST1>;
168         };
169         phy5 {
170                 phy-type = <PHY_TYPE_UNCONNECTED>;
171         };
172 };
173
174 &cpm_ethernet {
175         pinctrl-names = "default";
176         status = "okay";
177 };
178
179 /* 10G SFI SFP */
180 &cpm_eth0 {
181         status = "okay";
182         phy-mode = "sfi";
183 };
184
185 &cps_sata0 {
186         status = "okay";
187 };
188
189 &cps_usb3_0 {
190         vbus-supply = <&reg_usb3h0_vbus>;
191         status = "okay";
192 };
193
194 &cps_utmi0 {
195         status = "okay";
196 };
197
198 &cps_pinctl {
199         /*
200          * MPP Bus:
201          * [0-5] TDM
202          * [6]   VHV Enable
203          * [7]   CP1 SPI0 CSn1 (FXS)
204          * [8]   CP1 SPI0 CSn0 (TPM)
205          * [9.11]CP1 SPI0 MOSI/MISO/CLK
206          * [13]  CP1 SPI1 MISO (TDM and SPI ROM shared)
207          * [14]  CP1 SPI1 CS0n (64Mb SPI ROM)
208          * [15]  CP1 SPI1 MOSI (TDM and SPI ROM shared)
209          * [16]  CP1 SPI1 CLK (TDM and SPI ROM shared)
210          * [24]  Topaz switch reset
211          * [26]  Buzzer
212          * [27]  CP1 SMI MDIO
213          * [28]  CP1 SMI MDC
214          * [29]  CP0 10G SFP TX Disable
215          * [30]  WPS button
216          * [31]  Front panel button
217          * [32-62] = 0xff: Keep default CP1_shared_pins:
218          */
219                 /*   0    1    2    3    4    5    6    7    8    9 */
220         pin-func = < 0x4  0x4  0x4  0x4  0x4  0x4  0x0  0x4  0x4  0x4
221                      0x4  0x4  0x0  0x3  0x3  0x3  0x3  0xff 0xff 0xff
222                      0xff 0xff 0xff 0xff 0x0  0xff 0x0  0x8  0x8  0x0
223                      0x0  0x0  0x0  0xff 0xff 0xff 0xff 0xff 0xff 0xff
224                      0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
225                      0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
226                      0xff 0xff 0xff>;
227 };
228
229 &cps_spi1 {
230         pinctrl-names = "default";
231         pinctrl-0 = <&cps_spi1_pins>;
232         status = "okay";
233
234         spi-flash@0 {
235                 compatible = "jedec,spi-nor", "spi-flash";
236                 reg = <0>;
237                 spi-max-frequency = <10000000>;
238
239                 partitions {
240                         compatible = "fixed-partitions";
241                         #address-cells = <1>;
242                         #size-cells = <1>;
243
244                         partition@0 {
245                                 label = "U-Boot";
246                                 reg = <0 0x200000>;
247                         };
248                         partition@200000 {
249                                 label = "Filesystem";
250                                 reg = <0x200000 0xce0000>;
251                         };
252                 };
253         };
254 };
255
256 &cps_comphy {
257         /*
258          * CP1 Serdes Configuration:
259          * Lane 0: SATA 1 (RX swapped). Can be PCIe0
260          * Lane 1: Not used
261          * Lane 2: USB HOST 0
262          * Lane 3: SGMII1 - Connected to 1512 port
263          * Lane 4: Not used
264          * Lane 5: SGMII2 - Connected to Topaz switch
265          */
266         phy0 {
267                 phy-type = <PHY_TYPE_SATA1>;
268                 phy-invert = <PHY_POLARITY_RXD_INVERT>;
269         };
270         phy1 {
271                 phy-type = <PHY_TYPE_UNCONNECTED>;
272         };
273         phy2 {
274                 phy-type = <PHY_TYPE_USB3_HOST0>;
275         };
276         phy3 {
277                 phy-type = <PHY_TYPE_SGMII1>;
278                 phy-speed = <PHY_SPEED_1_25G>;
279         };
280         phy4 {
281                 phy-type = <PHY_TYPE_UNCONNECTED>;
282         };
283         phy5 {
284                 phy-type = <PHY_TYPE_SGMII2>;
285                 phy-speed = <PHY_SPEED_3_125G>;
286         };
287 };
288
289 &cps_mdio {
290         phy0: ethernet-phy@0 {
291                 reg = <0>;
292         };
293 };
294
295 &cps_ethernet {
296         pinctrl-names = "default";
297         pinctrl-0 = <&cps_1g_phy_reset>;
298         status = "okay";
299 };
300
301 /* 1G SGMII */
302 &cps_eth1 {
303         status = "okay";
304         phy-mode = "sgmii";
305         phy = <&phy0>;
306         phy-reset-gpios = <&cpm_gpio1 11 GPIO_ACTIVE_LOW>;
307 };
308
309 /* 2.5G to Topaz switch */
310 &cps_eth2 {
311         status = "okay";
312         phy-mode = "sgmii";
313         phy-speed = <2500>;
314         phy-reset-gpios = <&cps_gpio0 24 GPIO_ACTIVE_LOW>;
315 };