1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Check Point L-50 Board Description
4 * Copyright 2020 Pawel Dembicki <paweldembicki@gmail.com>
5 */
6
7/dts-v1/;
8
9#include "kirkwood.dtsi"
10#include "kirkwood-6281.dtsi"
11
12/ {
13	model = "Check Point L-50";
14	compatible = "checkpoint,l-50", "marvell,kirkwood-88f6281", "marvell,kirkwood";
15
16	memory {
17		device_type = "memory";
18		reg = <0x00000000 0x20000000>;
19	};
20
21	chosen {
22		bootargs = "console=ttyS0,115200n8";
23		stdout-path = &uart0;
24	};
25
26	ocp@f1000000 {
27		pinctrl: pin-controller@10000 {
28			pinctrl-0 = <&pmx_led38 &pmx_sysrst &pmx_button29>;
29			pinctrl-names = "default";
30
31			pmx_sysrst: pmx-sysrst {
32				marvell,pins = "mpp6";
33				marvell,function = "sysrst";
34			};
35
36			pmx_button29: pmx_button29 {
37				marvell,pins = "mpp29";
38				marvell,function = "gpio";
39			};
40
41			pmx_led38: pmx_led38 {
42				marvell,pins = "mpp38";
43				marvell,function = "gpio";
44			};
45
46			pmx_sdio_cd: pmx-sdio-cd {
47				marvell,pins = "mpp46";
48				marvell,function = "gpio";
49			};
50		};
51
52		serial@12000 {
53			status = "okay";
54		};
55
56		mvsdio@90000 {
57			status = "okay";
58			cd-gpios = <&gpio1 14 9>;
59		};
60
61		i2c@11000 {
62			status = "okay";
63			clock-frequency = <400000>;
64
65			gpio2: gpio-expander@20 {
66				#gpio-cells = <2>;
67				#interrupt-cells = <2>;
68				compatible = "semtech,sx1505q";
69				reg = <0x20>;
70
71				gpio-controller;
72			};
73
74			/* Three GPIOs from 0x21 exp. are undescribed in dts:
75			 * 1: DSL module reset (active low)
76			 * 5: mPCIE reset (active low)
77			 * 6: Express card reset (active low)
78			 */
79			gpio3: gpio-expander@21 {
80				#gpio-cells = <2>;
81				#interrupt-cells = <2>;
82				compatible = "semtech,sx1505q";
83				reg = <0x21>;
84
85				gpio-controller;
86			};
87
88			rtc@30 {
89				compatible = "s35390a";
90				reg = <0x30>;
91			};
92		};
93	};
94
95	leds {
96		compatible = "gpio-leds";
97
98		status_green {
99			label = "l-50:green:status";
100			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
101		};
102
103		status_red {
104			label = "l-50:red:status";
105			gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
106		};
107
108		wifi {
109			label = "l-50:green:wifi";
110			gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
111			linux,default-trigger = "phy0tpt";
112		};
113
114		internet_green {
115			label = "l-50:green:internet";
116			gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
117		};
118
119		internet_red {
120			label = "l-50:red:internet";
121			gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
122		};
123
124		usb1_green {
125			label = "l-50:green:usb1";
126			gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
127			linux,default-trigger = "usbport";
128			trigger-sources = <&hub_port3>;
129		};
130
131		usb1_red {
132			label = "l-50:red:usb1";
133			gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
134		};
135
136		usb2_green {
137			label = "l-50:green:usb2";
138			gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
139			linux,default-trigger = "usbport";
140			trigger-sources = <&hub_port1>;
141		};
142
143		usb2_red {
144			label = "l-50:red:usb2";
145			gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
146		};
147	};
148
149	usb2_pwr {
150		compatible = "regulator-fixed";
151		regulator-name = "usb2_pwr";
152
153		regulator-min-microvolt = <5000000>;
154		regulator-max-microvolt = <5000000>;
155		gpio = <&gpio3 3 GPIO_ACTIVE_LOW>;
156		regulator-always-on;
157	};
158
159	usb1_pwr {
160		compatible = "regulator-fixed";
161		regulator-name = "usb1_pwr";
162
163		regulator-min-microvolt = <5000000>;
164		regulator-max-microvolt = <5000000>;
165		gpio = <&gpio3 4 GPIO_ACTIVE_LOW>;
166		regulator-always-on;
167	};
168
169	mpcie_pwr {
170		compatible = "regulator-fixed";
171		regulator-name = "mpcie_pwr";
172
173		regulator-min-microvolt = <3300000>;
174		regulator-max-microvolt = <3300000>;
175		gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>;
176		enable-active-high;
177		regulator-always-on;
178	};
179
180	express_card_pwr {
181		compatible = "regulator-fixed";
182		regulator-name = "express_card_pwr";
183
184		regulator-min-microvolt = <3300000>;
185		regulator-max-microvolt = <3300000>;
186		gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
187		enable-active-high;
188		regulator-always-on;
189	};
190
191	keys {
192		compatible = "gpio-keys";
193
194		factory_defaults {
195			label = "factory_defaults";
196			gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
197			linux,code = <KEY_RESTART>;
198		};
199	};
200};
201
202&mdio {
203	status = "okay";
204
205	ethphy8: ethernet-phy@8 {
206		reg = <0x08>;
207	};
208
209	switch0: switch@10 {
210		compatible = "marvell,mv88e6085";
211		#address-cells = <1>;
212		#size-cells = <0>;
213		reg = <0x10>;
214		dsa,member = <0 0>;
215
216		ports {
217			#address-cells = <1>;
218			#size-cells = <0>;
219
220			port@0 {
221				reg = <0>;
222				label = "lan5";
223			};
224
225			port@1 {
226				reg = <1>;
227				label = "lan1";
228			};
229
230			port@2 {
231				reg = <2>;
232				label = "lan6";
233			};
234
235			port@3 {
236				reg = <3>;
237				label = "lan2";
238			};
239
240			port@4 {
241				reg = <4>;
242				label = "lan7";
243			};
244
245			switch0port5: port@5 {
246				reg = <5>;
247				phy-mode = "rgmii-txid";
248				link = <&switch1port5>;
249				fixed-link {
250					speed = <1000>;
251					full-duplex;
252				};
253			};
254
255			port@6 {
256				reg = <6>;
257				phy-mode = "rgmii-id";
258				ethernet = <&eth1port>;
259				fixed-link {
260					speed = <1000>;
261					full-duplex;
262				};
263			};
264		};
265	};
266
267	switch@11 {
268		compatible = "marvell,mv88e6085";
269		#address-cells = <1>;
270		#size-cells = <0>;
271		reg = <0x11>;
272		dsa,member = <0 1>;
273
274		ports {
275			#address-cells = <1>;
276			#size-cells = <0>;
277
278			port@0 {
279				reg = <0>;
280				label = "lan3";
281			};
282
283			port@1 {
284				reg = <1>;
285				label = "lan8";
286			};
287
288			port@2 {
289				reg = <2>;
290				label = "lan4";
291			};
292
293			port@3 {
294				reg = <3>;
295				label = "dmz";
296			};
297
298			switch1port5: port@5 {
299				reg = <5>;
300				phy-mode = "rgmii-txid";
301				link = <&switch0port5>;
302				fixed-link {
303					speed = <1000>;
304					full-duplex;
305				};
306			};
307
308			port@6 {
309				reg = <6>;
310				label = "dsl";
311				fixed-link {
312					speed = <100>;
313					full-duplex;
314				};
315			};
316		};
317	};
318};
319
320&eth0 {
321	status = "okay";
322	ethernet0-port@0 {
323		phy-handle = <&ethphy8>;
324	};
325};
326
327&eth1 {
328	status = "okay";
329	ethernet1-port@0 {
330		speed = <1000>;
331		duplex = <1>;
332		phy-mode = "rgmii";
333	};
334};
335
336&nand {
337	status = "okay";
338	pinctrl-0 = <&pmx_nand>;
339	pinctrl-names = "default";
340
341	partition@0 {
342		label = "u-boot";
343		reg = <0x00000000 0x000c0000>;
344	};
345
346	partition@a0000 {
347		label = "bootldr-env";
348		reg = <0x000c0000 0x00040000>;
349	};
350
351	partition@100000 {
352		label = "kernel-1";
353		reg = <0x00100000 0x00800000>;
354	};
355
356	partition@900000 {
357		label = "rootfs-1";
358		reg = <0x00900000 0x07100000>;
359	};
360
361	partition@7a00000 {
362		label = "kernel-2";
363		reg = <0x07a00000 0x00800000>;
364	};
365
366	partition@8200000 {
367		label = "rootfs-2";
368		reg = <0x08200000 0x07100000>;
369	};
370
371	partition@f300000 {
372		label = "default_sw";
373		reg = <0x0f300000 0x07900000>;
374	};
375
376	partition@16c00000 {
377		label = "logs";
378		reg = <0x16c00000 0x01800000>;
379	};
380
381	partition@18400000 {
382		label = "preset_cfg";
383		reg = <0x18400000 0x00100000>;
384	};
385
386	partition@18500000 {
387		label = "adsl";
388		reg = <0x18500000 0x00100000>;
389	};
390
391	partition@18600000 {
392		label = "storage";
393		reg = <0x18600000 0x07a00000>;
394	};
395};
396
397&rtc {
398	status = "disabled";
399};
400
401&pciec {
402	status = "okay";
403};
404
405&pcie0 {
406	status = "okay";
407};
408
409&sata_phy0 {
410	status = "disabled";
411};
412
413&sata_phy1 {
414	status = "disabled";
415};
416
417&usb0 {
418	#address-cells = <1>;
419	#size-cells = <0>;
420	status = "okay";
421
422	port@1 {
423		#address-cells = <1>;
424		#size-cells = <0>;
425		reg = <1>;
426		#trigger-source-cells = <0>;
427
428		hub_port1: port@1 {
429			reg = <1>;
430			#trigger-source-cells = <0>;
431		};
432
433		hub_port3: port@3 {
434			reg = <3>;
435			#trigger-source-cells = <0>;
436		};
437	};
438};
439