GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / armada-370-c200-v2.dts
1 // SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
2 /*
3  * Device Tree file for Ctera C200-V2
4  *
5  * Copyright (C) 2022 Pawel Dembicki <paweldembicki@gmail.com>
6  */
7
8 /dts-v1/;
9
10 #include "armada-370.dtsi"
11 #include <dt-bindings/gpio/gpio.h>
12 #include <dt-bindings/input/input.h>
13 #include <dt-bindings/thermal/thermal.h>
14 #include <dt-bindings/leds/common.h>
15
16 / {
17         model = "Ctera C200 V2";
18         compatible = "ctera,c200-v2", "marvell,armada370", "marvell,armada-370-xp";
19
20         chosen {
21                 bootargs = "console=ttyS0,115200";
22                 stdout-path = "serial0:115200n8";
23         };
24
25         memory {
26                 device_type = "memory";
27                 reg = <0x00000000 0x40000000>; /* 1024 MB */
28         };
29
30         soc {
31                 ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
32                           MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
33                           MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
34         };
35
36         thermal-zones {
37                 ethphy-thermal {
38                         polling-delay = <20000>;
39                         polling-delay-passive = <2000>;
40
41                         thermal-sensors = <&ethphy0>;
42
43                         trips {
44                                 ethphy_alert1: trip1 {
45                                         temperature = <65000>;
46                                         hysteresis = <4000>;
47                                         type = "passive";
48                                 };
49
50                                 ethphy_crit: trip2 {
51                                         temperature = <100000>;
52                                         hysteresis = <2000>;
53                                         type = "critical";
54                                 };
55                         };
56                 };
57         };
58
59         beeper {
60                 compatible = "pwm-beeper";
61                 pinctrl-0 = <&pmx_beeper>;
62                 pinctrl-names = "default";
63                 pwms = <&gpio1 31 4000>;
64         };
65
66         gpio-poweroff {
67                 compatible = "gpio-poweroff";
68                 pinctrl-0 = <&pmx_poweroff>;
69                 pinctrl-names = "default";
70                 gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
71         };
72
73         keys {
74                 compatible = "gpio-keys";
75                 pinctrl-0 = <&pmx_buttons>;
76                 pinctrl-names = "default";
77
78                 button-power {
79                         label = "Power Button";
80                         linux,code = <KEY_POWER>;
81                         gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
82                 };
83
84                 button-reset {
85                         label = "Reset Button";
86                         linux,code = <KEY_RESTART>;
87                         gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
88                 };
89
90                 button-usb1 {
91                         label = "USB1 Button";
92                         linux,code = <BTN_0>;
93                         gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
94                 };
95
96                 button-usb2 {
97                         label = "USB2 Button";
98                         linux,code = <BTN_1>;
99                         gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
100                 };
101         };
102
103         leds {
104                 compatible = "gpio-leds";
105                 pinctrl-0 = <&pmx_leds1 &pmx_leds2>;
106                 pinctrl-names = "default";
107
108                 led-0 {
109                         function = LED_FUNCTION_USB;
110                         function-enumerator = <2>;
111                         color = <LED_COLOR_ID_RED>;
112                         gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
113                 };
114
115                 led-1 {
116                         function = LED_FUNCTION_USB;
117                         function-enumerator = <2>;
118                         color = <LED_COLOR_ID_GREEN>;
119                         gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
120                 };
121
122                 led-2 {
123                         function = LED_FUNCTION_USB;
124                         function-enumerator = <1>;
125                         color = <LED_COLOR_ID_RED>;
126                         gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
127                 };
128
129                 led-3 {
130                         function = LED_FUNCTION_USB;
131                         function-enumerator = <1>;
132                         color = <LED_COLOR_ID_GREEN>;
133                         gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
134                 };
135
136                 led-4 {
137                         function = LED_FUNCTION_DISK;
138                         function-enumerator = <2>;
139                         color = <LED_COLOR_ID_GREEN>;
140                         gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
141                 };
142
143                 led-5 {
144                         function = LED_FUNCTION_DISK;
145                         function-enumerator = <1>;
146                         color = <LED_COLOR_ID_RED>;
147                         gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
148                 };
149
150                 led-6 {
151                         function = LED_FUNCTION_DISK;
152                         function-enumerator = <2>;
153                         color = <LED_COLOR_ID_RED>;
154                         gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
155                 };
156
157                 led-7 {
158                         function = LED_FUNCTION_INDICATOR;
159                         color = <LED_COLOR_ID_BLUE>;
160                         gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>;
161                 };
162
163                 led-8 {
164                         function = LED_FUNCTION_DISK_ERR;
165                         color = <LED_COLOR_ID_RED>;
166                         gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
167                 };
168
169                 led-9 {
170                         function = LED_FUNCTION_DISK_ERR;
171                         color = <LED_COLOR_ID_GREEN>;
172                         gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
173                 };
174
175                 led-10 {
176                         function = LED_FUNCTION_STATUS;
177                         color = <LED_COLOR_ID_RED>;
178                         gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
179                 };
180
181                 led-11 {
182                         function = LED_FUNCTION_DISK;
183                         function-enumerator = <1>;
184                         color = <LED_COLOR_ID_GREEN>;
185                         gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
186                 };
187
188                 led-12 {
189                         function = LED_FUNCTION_STATUS;
190                         color = <LED_COLOR_ID_GREEN>;
191                         gpios = <&gpio1 26 GPIO_ACTIVE_LOW>;
192                 };
193         };
194 };
195
196 &coherencyfab {
197         broken-idle;
198 };
199
200 &eth1 {
201         pinctrl-0 = <&ge1_rgmii_pins>;
202         pinctrl-names = "default";
203         status = "okay";
204         phy-handle = <&ethphy0>;
205         phy-connection-type = "rgmii-id";
206 };
207
208 &i2c0 {
209         pinctrl-0 = <&i2c0_pins>;
210         pinctrl-names = "default";
211         clock-frequency = <100000>;
212         status = "okay";
213
214         hwmon@2a {
215                 compatible = "nuvoton,nct7802";
216                 reg = <0x2a>;
217         };
218
219         rtc@30 {
220                 compatible = "sii,s35390a";
221                 reg = <0x30>;
222         };
223 };
224
225 &mdio {
226         pinctrl-0 = <&mdio_pins>;
227         pinctrl-names = "default";
228
229         ethphy0: ethernet-phy@0 { /* Marvell 88E1318 */
230                 reg = <0>;
231                 #thermal-sensor-cells = <0>;
232         };
233 };
234
235 &nand_controller {
236         status = "okay";
237
238         nand@0 {
239                 reg = <0>;
240                 label = "pxa3xx_nand-0";
241                 nand-rb = <0>;
242                 marvell,nand-keep-config;
243                 nand-on-flash-bbt;
244                 nand-ecc-strength = <4>;
245                 nand-ecc-step-size = <512>;
246
247                 partitions {
248                         compatible = "fixed-partitions";
249                         #address-cells = <1>;
250                         #size-cells = <1>;
251
252                         partition@0 {
253                                 label = "uboot";
254                                 reg = <0x0000000 0x200000>;
255                                 read-only;
256                         };
257
258                         partition@200000 {
259                                 label = "certificate";
260                                 reg = <0x0200000 0x100000>;
261                                 read-only;
262                         };
263
264                         partition@300000 {
265                                 label = "preset_cfg";
266                                 reg = <0x0300000 0x100000>;
267                                 read-only;
268                         };
269
270                         partition@400000 {
271                                 label = "dev_params";
272                                 reg = <0x0400000 0x100000>;
273                                 read-only;
274                         };
275                         partition@500000 {
276                                 label = "active_bank";
277                                 reg = <0x0500000 0x0100000>;
278                         };
279
280                         partition@600000 {
281                                 label = "magic";
282                                 reg = <0x0600000 0x0100000>;
283                                 read-only;
284                         };
285
286                         partition@700000 {
287                                 label = "bank1";
288                                 reg = <0x0700000 0x2800000>;
289                         };
290
291                         partition@2f00000 {
292                                 label = "bank2";
293                                 reg = <0x2f00000 0x2800000>;
294                         };
295
296                         /* 0x5700000-0x5a00000 undefined in vendor firmware */
297
298                         partition@5a00000 {
299                                 label = "reserved";
300                                 reg = <0x5a00000 0x2000000>;
301                         };
302
303                         partition@7a00000 {
304                                 label = "rootfs";
305                                 reg = <0x7a00000 0x8600000>;
306                         };
307                 };
308         };
309 };
310
311 &pciec {
312         status = "okay";
313
314         pcie@1,0 { /* Renesas uPD720202 USB 3.0 controller */
315                 pinctrl-0 = <&pmx_pcie>;
316                 pinctrl-names = "default";
317                 status = "okay";
318                 reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
319         };
320 };
321
322 &pinctrl {
323         pmx_poweroff: pmx-poweroff {
324                 marvell,pins = "mpp7";
325                 marvell,function = "gpo";
326         };
327
328         pmx_power_cpu: pmx-power-cpu {
329                 marvell,pins = "mpp4";
330                 marvell,function = "vdd";
331         };
332
333         pmx_buttons: pmx-buttons {
334                 marvell,pins = "mpp6", "mpp10", "mpp14", "mpp32";
335                 marvell,function = "gpio";
336         };
337
338         pmx_leds1: pmx-leds1 {
339                 marvell,pins = "mpp47";
340                 marvell,function = "gpo";
341         };
342
343         pmx_leds2: pmx-leds2 {
344                 marvell,pins = "mpp12", "mpp13", "mpp15", "mpp16", "mpp50", "mpp51",
345                                "mpp52", "mpp53", "mpp55", "mpp56", "mpp57", "mpp58";
346                 marvell,function = "gpio";
347         };
348
349         pmx_pcie: pmx-pcie {
350                 marvell,pins = "mpp59";
351                 marvell,function = "gpio";
352         };
353
354         pmx_beeper: pmx-beeper {
355                 marvell,pins = "mpp63";
356                 marvell,function = "gpio";
357         };
358 };
359
360 &pmsu {
361         pinctrl-0 = <&pmx_power_cpu>;
362         pinctrl-names = "default";
363 };
364
365 &rtc {
366         status = "disabled";
367 };
368
369 &sata {
370         nr-ports = <2>;
371         status = "okay";
372         #address-cells = <1>;
373         #size-cells = <0>;
374
375         hdd0_temp: sata-port@0 {
376                 reg = <0>;
377                 #thermal-sensor-cells = <0>;
378         };
379
380         hdd1_temp: sata-port@1 {
381                 reg = <1>;
382                 #thermal-sensor-cells = <0>;
383         };
384 };
385
386 &uart0 {
387         status = "okay";
388 };