blob: 7e3ee64d4bdf8c98815d463ea4d31ad2e1ee2599 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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
Tom Rini6b642ac2024-10-01 12:20:28 -060032 button-power {
Tom Rini53633a82024-02-29 12:33:36 -050033 label = "Power Button";
34 linux,code = <KEY_POWER>;
35 gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
36 };
37
Tom Rini6b642ac2024-10-01 12:20:28 -060038 button-reset {
Tom Rini53633a82024-02-29 12:33:36 -050039 label = "Reset Button";
40 linux,code = <KEY_RESTART>;
41 gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
42 };
43
Tom Rini6b642ac2024-10-01 12:20:28 -060044 button-usb1 {
Tom Rini53633a82024-02-29 12:33:36 -050045 label = "USB1 Button";
46 linux,code = <BTN_0>;
47 gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
48 };
49
Tom Rini6b642ac2024-10-01 12:20:28 -060050 button-usb2 {
Tom Rini53633a82024-02-29 12:33:36 -050051 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};