GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / kirkwood-c200-v1.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Ctera C200 V1 Board Description
4  * Copyright 2021-2022 Pawel Dembicki <paweldembicki@gmail.com>
5  */
6
7 /dts-v1/;
8
9 #include "kirkwood.dtsi"
10 #include "kirkwood-6281.dtsi"
11 #include <dt-bindings/leds/common.h>
12
13 / {
14         model = "Ctera C200 V1";
15         compatible = "ctera,c200-v1", "marvell,kirkwood-88f6281", "marvell,kirkwood";
16
17         chosen {
18                 bootargs = "console=ttyS0,115200";
19                 stdout-path = &uart0;
20         };
21
22         memory@0 {
23                 device_type = "memory";
24                 reg = <0x00000000 0x20000000>;
25         };
26
27         keys {
28                 compatible = "gpio-keys";
29                 pinctrl-0 = <&pmx_buttons>;
30                 pinctrl-names = "default";
31
32                 power {
33                         label = "Power Button";
34                         linux,code = <KEY_POWER>;
35                         gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
36                 };
37
38                 reset {
39                         label = "Reset Button";
40                         linux,code = <KEY_RESTART>;
41                         gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
42                 };
43
44                 usb1 {
45                         label = "USB1 Button";
46                         linux,code = <BTN_0>;
47                         gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
48                 };
49
50                 usb2 {
51                         label = "USB2 Button";
52                         linux,code = <BTN_1>;
53                         gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
54                 };
55         };
56
57         gpio-poweroff {
58                 compatible = "gpio-poweroff";
59                 pinctrl-0 = <&pmx_poweroff>;
60                 pinctrl-names = "default";
61                 gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
62         };
63
64         leds {
65                 compatible = "gpio-leds";
66                 pinctrl-0 = <&pmx_leds>;
67                 pinctrl-names = "default";
68
69                 led-0 {
70                         function = LED_FUNCTION_DISK;
71                         function-enumerator = <2>;
72                         color = <LED_COLOR_ID_RED>;
73                         gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
74                 };
75
76                 led-1 {
77                         function = LED_FUNCTION_DISK;
78                         function-enumerator = <1>;
79                         color = <LED_COLOR_ID_GREEN>;
80                         gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
81                 };
82
83                 led-2 {
84                         function = LED_FUNCTION_DISK;
85                         function-enumerator = <2>;
86                         color = <LED_COLOR_ID_GREEN>;
87                         gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
88                 };
89
90                 led-3 {
91                         function = LED_FUNCTION_DISK;
92                         function-enumerator = <1>;
93                         color = <LED_COLOR_ID_RED>;
94                         gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
95                 };
96
97                 led-4 {
98                         function = LED_FUNCTION_STATUS;
99                         color = <LED_COLOR_ID_RED>;
100                         gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
101                 };
102
103                 led-5 {
104                         function = LED_FUNCTION_STATUS;
105                         color = <LED_COLOR_ID_GREEN>;
106                         gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
107                 };
108
109                 led-6 {
110                         function = LED_FUNCTION_INDICATOR;
111                         color = <LED_COLOR_ID_BLUE>;
112                         gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
113                 };
114
115                 led-7 {
116                         function = LED_FUNCTION_DISK_ERR;
117                         color = <LED_COLOR_ID_RED>;
118                         gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
119                 };
120
121                 led-8 {
122                         function = LED_FUNCTION_DISK_ERR;
123                         color = <LED_COLOR_ID_GREEN>;
124                         gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
125                 };
126
127                 led-9 {
128                         function = LED_FUNCTION_USB;
129                         function-enumerator = <1>;
130                         color = <LED_COLOR_ID_RED>;
131                         gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
132                 };
133
134                 led-10 {
135                         function = LED_FUNCTION_USB;
136                         function-enumerator = <1>;
137                         color = <LED_COLOR_ID_GREEN>;
138                         gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
139                         linux,default-trigger = "usbport";
140                         trigger-sources = <&hub_port2>;
141                 };
142
143                 led-11 {
144                         function = LED_FUNCTION_USB;
145                         function-enumerator = <2>;
146                         color = <LED_COLOR_ID_RED>;
147                         gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
148                 };
149
150                 led-12 {
151                         function = LED_FUNCTION_USB;
152                         function-enumerator = <2>;
153                         color = <LED_COLOR_ID_GREEN>;
154                         gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
155                         linux,default-trigger = "usbport";
156                         trigger-sources = <&hub_port1>;
157                 };
158         };
159 };
160
161 &eth0 {
162         status = "okay";
163 };
164
165 &eth0port {
166         phy-handle = <&ethphy9>;
167 };
168
169 &i2c0 {
170         status = "okay";
171
172         rtc@30 {
173                 compatible = "s35390a";
174                 reg = <0x30>;
175         };
176
177         lm63@4c {
178                 compatible = "national,lm63";
179                 reg = <0x4c>;
180         };
181 };
182
183 &mdio {
184         status = "okay";
185
186         ethphy9: ethernet-phy@9 {
187                 reg = <9>;
188         };
189 };
190
191 &nand {
192         status = "okay";
193         chip-delay = <40>;
194
195         partition@0 {
196                 label = "uboot";
197                 reg = <0x0000000 0x200000>;
198         };
199
200         partition@200000 {
201                 label = "certificate";
202                 reg = <0x0200000 0x100000>;
203         };
204
205         partition@300000 {
206                 label = "preset_cfg";
207                 reg = <0x0300000 0x100000>;
208         };
209
210         partition@400000 {
211                 label = "dev_params";
212                 reg = <0x0400000 0x100000>;
213         };
214
215         partition@500000 {
216                 label = "active_bank";
217                 reg = <0x0500000 0x0100000>;
218         };
219
220         partition@600000 {
221                 label = "magic";
222                 reg = <0x0600000 0x0100000>;
223         };
224
225         partition@700000 {
226                 label = "bank1";
227                 reg = <0x0700000 0x2800000>;
228         };
229
230         partition@2f00000 {
231                 label = "bank2";
232                 reg = <0x2f00000 0x2800000>;
233         };
234
235         /* 0x5700000-0x5a00000 undefined in vendor firmware */
236
237         partition@5a00000 {
238                 label = "reserved";
239                 reg = <0x5a00000 0x2000000>;
240         };
241
242         partition@7a00000 {
243                 label = "rootfs";
244                 reg = <0x7a00000 0x8600000>;
245         };
246 };
247
248 &pinctrl {
249         /* Buzzer gpios are connected to two pins of buzzer.
250          * This buzzer require a modulated signal from gpio.
251          * Leave it as is due lack of proper driver.
252          */
253         pmx_buzzer: pmx-buzzer {
254                 marvell,pins = "mpp12", "mpp13";
255                 marvell,function = "gpio";
256         };
257
258         pmx_leds: pmx-leds {
259                 marvell,pins = "mpp14", "mpp15", "mpp16", "mpp17", "mpp38",
260                                "mpp39", "mpp40", "mpp42", "mpp43", "mpp44",
261                                "mpp45", "mpp46", "mpp47";
262                 marvell,function = "gpio";
263         };
264
265         pmx_buttons: pmx-buttons {
266                 marvell,pins = "mpp28", "mpp29", "mpp48", "mpp49";
267                 marvell,function = "gpio";
268         };
269
270         pmx_poweroff: pmx-poweroff {
271                 marvell,pins = "mpp34";
272                 marvell,function = "gpio";
273         };
274 };
275
276 &rtc {
277         status = "disabled";
278 };
279
280 &sata {
281         status = "okay";
282         nr-ports = <2>;
283 };
284
285 &uart0 {
286         status = "okay";
287 };
288
289 &usb0 {
290         #address-cells = <1>;
291         #size-cells = <0>;
292         status = "okay";
293
294         port@1 {
295                 #address-cells = <1>;
296                 #size-cells = <0>;
297                 reg = <1>;
298                 #trigger-source-cells = <0>;
299
300                 hub_port1: port@1 {
301                         reg = <1>;
302                         #trigger-source-cells = <0>;
303                 };
304
305                 hub_port2: port@2 {
306                         reg = <2>;
307                         #trigger-source-cells = <0>;
308                 };
309         };
310 };