1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2724ba675SRob Herring/*
3724ba675SRob Herring * Check Point L-50 Board Description
4724ba675SRob Herring * Copyright 2020 Pawel Dembicki <paweldembicki@gmail.com>
5724ba675SRob Herring */
6724ba675SRob Herring
7724ba675SRob Herring/dts-v1/;
8724ba675SRob Herring
9724ba675SRob Herring#include "kirkwood.dtsi"
10724ba675SRob Herring#include "kirkwood-6281.dtsi"
11724ba675SRob Herring
12724ba675SRob Herring/ {
13724ba675SRob Herring	model = "Check Point L-50";
14724ba675SRob Herring	compatible = "checkpoint,l-50", "marvell,kirkwood-88f6281", "marvell,kirkwood";
15724ba675SRob Herring
16724ba675SRob Herring	memory {
17724ba675SRob Herring		device_type = "memory";
18724ba675SRob Herring		reg = <0x00000000 0x20000000>;
19724ba675SRob Herring	};
20724ba675SRob Herring
21724ba675SRob Herring	chosen {
22724ba675SRob Herring		bootargs = "console=ttyS0,115200n8";
23724ba675SRob Herring		stdout-path = &uart0;
24724ba675SRob Herring	};
25724ba675SRob Herring
26724ba675SRob Herring	ocp@f1000000 {
27724ba675SRob Herring		pinctrl: pin-controller@10000 {
28724ba675SRob Herring			pinctrl-0 = <&pmx_led38 &pmx_sysrst &pmx_button29>;
29724ba675SRob Herring			pinctrl-names = "default";
30724ba675SRob Herring
31724ba675SRob Herring			pmx_sysrst: pmx-sysrst {
32724ba675SRob Herring				marvell,pins = "mpp6";
33724ba675SRob Herring				marvell,function = "sysrst";
34724ba675SRob Herring			};
35724ba675SRob Herring
36724ba675SRob Herring			pmx_button29: pmx_button29 {
37724ba675SRob Herring				marvell,pins = "mpp29";
38724ba675SRob Herring				marvell,function = "gpio";
39724ba675SRob Herring			};
40724ba675SRob Herring
41724ba675SRob Herring			pmx_led38: pmx_led38 {
42724ba675SRob Herring				marvell,pins = "mpp38";
43724ba675SRob Herring				marvell,function = "gpio";
44724ba675SRob Herring			};
45724ba675SRob Herring
46724ba675SRob Herring			pmx_sdio_cd: pmx-sdio-cd {
47724ba675SRob Herring				marvell,pins = "mpp46";
48724ba675SRob Herring				marvell,function = "gpio";
49724ba675SRob Herring			};
50724ba675SRob Herring		};
51724ba675SRob Herring
52724ba675SRob Herring		serial@12000 {
53724ba675SRob Herring			status = "okay";
54724ba675SRob Herring		};
55724ba675SRob Herring
56724ba675SRob Herring		mvsdio@90000 {
57724ba675SRob Herring			status = "okay";
58724ba675SRob Herring			cd-gpios = <&gpio1 14 9>;
59724ba675SRob Herring		};
60724ba675SRob Herring
61724ba675SRob Herring		i2c@11000 {
62724ba675SRob Herring			status = "okay";
63724ba675SRob Herring			clock-frequency = <400000>;
64724ba675SRob Herring
65724ba675SRob Herring			gpio2: gpio-expander@20 {
66724ba675SRob Herring				#gpio-cells = <2>;
67724ba675SRob Herring				#interrupt-cells = <2>;
68*ab7e3fe1SRob Herring				interrupt-controller;
69724ba675SRob Herring				compatible = "semtech,sx1505q";
70724ba675SRob Herring				reg = <0x20>;
71724ba675SRob Herring
72724ba675SRob Herring				gpio-controller;
73724ba675SRob Herring			};
74724ba675SRob Herring
75724ba675SRob Herring			/* Three GPIOs from 0x21 exp. are undescribed in dts:
76724ba675SRob Herring			 * 1: DSL module reset (active low)
77724ba675SRob Herring			 * 5: mPCIE reset (active low)
78724ba675SRob Herring			 * 6: Express card reset (active low)
79724ba675SRob Herring			 */
80724ba675SRob Herring			gpio3: gpio-expander@21 {
81724ba675SRob Herring				#gpio-cells = <2>;
82724ba675SRob Herring				#interrupt-cells = <2>;
83*ab7e3fe1SRob Herring				interrupt-controller;
84724ba675SRob Herring				compatible = "semtech,sx1505q";
85724ba675SRob Herring				reg = <0x21>;
86724ba675SRob Herring
87724ba675SRob Herring				gpio-controller;
88724ba675SRob Herring			};
89724ba675SRob Herring
90724ba675SRob Herring			rtc@30 {
91724ba675SRob Herring				compatible = "s35390a";
92724ba675SRob Herring				reg = <0x30>;
93724ba675SRob Herring			};
94724ba675SRob Herring		};
95724ba675SRob Herring	};
96724ba675SRob Herring
97724ba675SRob Herring	leds {
98724ba675SRob Herring		compatible = "gpio-leds";
99724ba675SRob Herring
100724ba675SRob Herring		status_green {
101724ba675SRob Herring			label = "l-50:green:status";
102724ba675SRob Herring			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
103724ba675SRob Herring		};
104724ba675SRob Herring
105724ba675SRob Herring		status_red {
106724ba675SRob Herring			label = "l-50:red:status";
107724ba675SRob Herring			gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
108724ba675SRob Herring		};
109724ba675SRob Herring
110724ba675SRob Herring		wifi {
111724ba675SRob Herring			label = "l-50:green:wifi";
112724ba675SRob Herring			gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
113724ba675SRob Herring			linux,default-trigger = "phy0tpt";
114724ba675SRob Herring		};
115724ba675SRob Herring
116724ba675SRob Herring		internet_green {
117724ba675SRob Herring			label = "l-50:green:internet";
118724ba675SRob Herring			gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
119724ba675SRob Herring		};
120724ba675SRob Herring
121724ba675SRob Herring		internet_red {
122724ba675SRob Herring			label = "l-50:red:internet";
123724ba675SRob Herring			gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
124724ba675SRob Herring		};
125724ba675SRob Herring
126724ba675SRob Herring		usb1_green {
127724ba675SRob Herring			label = "l-50:green:usb1";
128724ba675SRob Herring			gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
129724ba675SRob Herring			linux,default-trigger = "usbport";
130724ba675SRob Herring			trigger-sources = <&hub_port3>;
131724ba675SRob Herring		};
132724ba675SRob Herring
133724ba675SRob Herring		usb1_red {
134724ba675SRob Herring			label = "l-50:red:usb1";
135724ba675SRob Herring			gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
136724ba675SRob Herring		};
137724ba675SRob Herring
138724ba675SRob Herring		usb2_green {
139724ba675SRob Herring			label = "l-50:green:usb2";
140724ba675SRob Herring			gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
141724ba675SRob Herring			linux,default-trigger = "usbport";
142724ba675SRob Herring			trigger-sources = <&hub_port1>;
143724ba675SRob Herring		};
144724ba675SRob Herring
145724ba675SRob Herring		usb2_red {
146724ba675SRob Herring			label = "l-50:red:usb2";
147724ba675SRob Herring			gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
148724ba675SRob Herring		};
149724ba675SRob Herring	};
150724ba675SRob Herring
151724ba675SRob Herring	usb2_pwr {
152724ba675SRob Herring		compatible = "regulator-fixed";
153724ba675SRob Herring		regulator-name = "usb2_pwr";
154724ba675SRob Herring
155724ba675SRob Herring		regulator-min-microvolt = <5000000>;
156724ba675SRob Herring		regulator-max-microvolt = <5000000>;
157724ba675SRob Herring		gpio = <&gpio3 3 GPIO_ACTIVE_LOW>;
158724ba675SRob Herring		regulator-always-on;
159724ba675SRob Herring	};
160724ba675SRob Herring
161724ba675SRob Herring	usb1_pwr {
162724ba675SRob Herring		compatible = "regulator-fixed";
163724ba675SRob Herring		regulator-name = "usb1_pwr";
164724ba675SRob Herring
165724ba675SRob Herring		regulator-min-microvolt = <5000000>;
166724ba675SRob Herring		regulator-max-microvolt = <5000000>;
167724ba675SRob Herring		gpio = <&gpio3 4 GPIO_ACTIVE_LOW>;
168724ba675SRob Herring		regulator-always-on;
169724ba675SRob Herring	};
170724ba675SRob Herring
171724ba675SRob Herring	mpcie_pwr {
172724ba675SRob Herring		compatible = "regulator-fixed";
173724ba675SRob Herring		regulator-name = "mpcie_pwr";
174724ba675SRob Herring
175724ba675SRob Herring		regulator-min-microvolt = <3300000>;
176724ba675SRob Herring		regulator-max-microvolt = <3300000>;
177724ba675SRob Herring		gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>;
178724ba675SRob Herring		enable-active-high;
179724ba675SRob Herring		regulator-always-on;
180724ba675SRob Herring	};
181724ba675SRob Herring
182724ba675SRob Herring	express_card_pwr {
183724ba675SRob Herring		compatible = "regulator-fixed";
184724ba675SRob Herring		regulator-name = "express_card_pwr";
185724ba675SRob Herring
186724ba675SRob Herring		regulator-min-microvolt = <3300000>;
187724ba675SRob Herring		regulator-max-microvolt = <3300000>;
188724ba675SRob Herring		gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
189724ba675SRob Herring		enable-active-high;
190724ba675SRob Herring		regulator-always-on;
191724ba675SRob Herring	};
192724ba675SRob Herring
193724ba675SRob Herring	keys {
194724ba675SRob Herring		compatible = "gpio-keys";
195724ba675SRob Herring
196724ba675SRob Herring		factory_defaults {
197724ba675SRob Herring			label = "factory_defaults";
198724ba675SRob Herring			gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
199724ba675SRob Herring			linux,code = <KEY_RESTART>;
200724ba675SRob Herring		};
201724ba675SRob Herring	};
202724ba675SRob Herring};
203724ba675SRob Herring
204724ba675SRob Herring&mdio {
205724ba675SRob Herring	status = "okay";
206724ba675SRob Herring
207724ba675SRob Herring	ethphy8: ethernet-phy@8 {
208724ba675SRob Herring		reg = <0x08>;
209724ba675SRob Herring	};
210724ba675SRob Herring
211724ba675SRob Herring	switch0: switch@10 {
212724ba675SRob Herring		compatible = "marvell,mv88e6085";
213724ba675SRob Herring		#address-cells = <1>;
214724ba675SRob Herring		#size-cells = <0>;
215724ba675SRob Herring		reg = <0x10>;
216724ba675SRob Herring		dsa,member = <0 0>;
217724ba675SRob Herring
218724ba675SRob Herring		ports {
219724ba675SRob Herring			#address-cells = <1>;
220724ba675SRob Herring			#size-cells = <0>;
221724ba675SRob Herring
222724ba675SRob Herring			port@0 {
223724ba675SRob Herring				reg = <0>;
224724ba675SRob Herring				label = "lan5";
225724ba675SRob Herring			};
226724ba675SRob Herring
227724ba675SRob Herring			port@1 {
228724ba675SRob Herring				reg = <1>;
229724ba675SRob Herring				label = "lan1";
230724ba675SRob Herring			};
231724ba675SRob Herring
232724ba675SRob Herring			port@2 {
233724ba675SRob Herring				reg = <2>;
234724ba675SRob Herring				label = "lan6";
235724ba675SRob Herring			};
236724ba675SRob Herring
237724ba675SRob Herring			port@3 {
238724ba675SRob Herring				reg = <3>;
239724ba675SRob Herring				label = "lan2";
240724ba675SRob Herring			};
241724ba675SRob Herring
242724ba675SRob Herring			port@4 {
243724ba675SRob Herring				reg = <4>;
244724ba675SRob Herring				label = "lan7";
245724ba675SRob Herring			};
246724ba675SRob Herring
247724ba675SRob Herring			switch0port5: port@5 {
248724ba675SRob Herring				reg = <5>;
249724ba675SRob Herring				phy-mode = "rgmii-txid";
250724ba675SRob Herring				link = <&switch1port5>;
251724ba675SRob Herring				fixed-link {
252724ba675SRob Herring					speed = <1000>;
253724ba675SRob Herring					full-duplex;
254724ba675SRob Herring				};
255724ba675SRob Herring			};
256724ba675SRob Herring
257724ba675SRob Herring			port@6 {
258724ba675SRob Herring				reg = <6>;
259724ba675SRob Herring				phy-mode = "rgmii-id";
260724ba675SRob Herring				ethernet = <&eth1port>;
261724ba675SRob Herring				fixed-link {
262724ba675SRob Herring					speed = <1000>;
263724ba675SRob Herring					full-duplex;
264724ba675SRob Herring				};
265724ba675SRob Herring			};
266724ba675SRob Herring		};
267724ba675SRob Herring	};
268724ba675SRob Herring
269724ba675SRob Herring	switch@11 {
270724ba675SRob Herring		compatible = "marvell,mv88e6085";
271724ba675SRob Herring		#address-cells = <1>;
272724ba675SRob Herring		#size-cells = <0>;
273724ba675SRob Herring		reg = <0x11>;
274724ba675SRob Herring		dsa,member = <0 1>;
275724ba675SRob Herring
276724ba675SRob Herring		ports {
277724ba675SRob Herring			#address-cells = <1>;
278724ba675SRob Herring			#size-cells = <0>;
279724ba675SRob Herring
280724ba675SRob Herring			port@0 {
281724ba675SRob Herring				reg = <0>;
282724ba675SRob Herring				label = "lan3";
283724ba675SRob Herring			};
284724ba675SRob Herring
285724ba675SRob Herring			port@1 {
286724ba675SRob Herring				reg = <1>;
287724ba675SRob Herring				label = "lan8";
288724ba675SRob Herring			};
289724ba675SRob Herring
290724ba675SRob Herring			port@2 {
291724ba675SRob Herring				reg = <2>;
292724ba675SRob Herring				label = "lan4";
293724ba675SRob Herring			};
294724ba675SRob Herring
295724ba675SRob Herring			port@3 {
296724ba675SRob Herring				reg = <3>;
297724ba675SRob Herring				label = "dmz";
298724ba675SRob Herring			};
299724ba675SRob Herring
300724ba675SRob Herring			switch1port5: port@5 {
301724ba675SRob Herring				reg = <5>;
302724ba675SRob Herring				phy-mode = "rgmii-txid";
303724ba675SRob Herring				link = <&switch0port5>;
304724ba675SRob Herring				fixed-link {
305724ba675SRob Herring					speed = <1000>;
306724ba675SRob Herring					full-duplex;
307724ba675SRob Herring				};
308724ba675SRob Herring			};
309724ba675SRob Herring
310724ba675SRob Herring			port@6 {
311724ba675SRob Herring				reg = <6>;
312724ba675SRob Herring				label = "dsl";
313724ba675SRob Herring				fixed-link {
314724ba675SRob Herring					speed = <100>;
315724ba675SRob Herring					full-duplex;
316724ba675SRob Herring				};
317724ba675SRob Herring			};
318724ba675SRob Herring		};
319724ba675SRob Herring	};
320724ba675SRob Herring};
321724ba675SRob Herring
322724ba675SRob Herring&eth0 {
323724ba675SRob Herring	status = "okay";
324724ba675SRob Herring	ethernet0-port@0 {
325724ba675SRob Herring		phy-handle = <&ethphy8>;
326724ba675SRob Herring	};
327724ba675SRob Herring};
328724ba675SRob Herring
329724ba675SRob Herring&eth1 {
330724ba675SRob Herring	status = "okay";
331724ba675SRob Herring	ethernet1-port@0 {
332724ba675SRob Herring		speed = <1000>;
333724ba675SRob Herring		duplex = <1>;
334724ba675SRob Herring		phy-mode = "rgmii";
335724ba675SRob Herring	};
336724ba675SRob Herring};
337724ba675SRob Herring
338724ba675SRob Herring&nand {
339724ba675SRob Herring	status = "okay";
340724ba675SRob Herring	pinctrl-0 = <&pmx_nand>;
341724ba675SRob Herring	pinctrl-names = "default";
342724ba675SRob Herring
343724ba675SRob Herring	partition@0 {
344724ba675SRob Herring		label = "u-boot";
345724ba675SRob Herring		reg = <0x00000000 0x000c0000>;
346724ba675SRob Herring	};
347724ba675SRob Herring
348724ba675SRob Herring	partition@a0000 {
349724ba675SRob Herring		label = "bootldr-env";
350724ba675SRob Herring		reg = <0x000c0000 0x00040000>;
351724ba675SRob Herring	};
352724ba675SRob Herring
353724ba675SRob Herring	partition@100000 {
354724ba675SRob Herring		label = "kernel-1";
355724ba675SRob Herring		reg = <0x00100000 0x00800000>;
356724ba675SRob Herring	};
357724ba675SRob Herring
358724ba675SRob Herring	partition@900000 {
359724ba675SRob Herring		label = "rootfs-1";
360724ba675SRob Herring		reg = <0x00900000 0x07100000>;
361724ba675SRob Herring	};
362724ba675SRob Herring
363724ba675SRob Herring	partition@7a00000 {
364724ba675SRob Herring		label = "kernel-2";
365724ba675SRob Herring		reg = <0x07a00000 0x00800000>;
366724ba675SRob Herring	};
367724ba675SRob Herring
368724ba675SRob Herring	partition@8200000 {
369724ba675SRob Herring		label = "rootfs-2";
370724ba675SRob Herring		reg = <0x08200000 0x07100000>;
371724ba675SRob Herring	};
372724ba675SRob Herring
373724ba675SRob Herring	partition@f300000 {
374724ba675SRob Herring		label = "default_sw";
375724ba675SRob Herring		reg = <0x0f300000 0x07900000>;
376724ba675SRob Herring	};
377724ba675SRob Herring
378724ba675SRob Herring	partition@16c00000 {
379724ba675SRob Herring		label = "logs";
380724ba675SRob Herring		reg = <0x16c00000 0x01800000>;
381724ba675SRob Herring	};
382724ba675SRob Herring
383724ba675SRob Herring	partition@18400000 {
384724ba675SRob Herring		label = "preset_cfg";
385724ba675SRob Herring		reg = <0x18400000 0x00100000>;
386724ba675SRob Herring	};
387724ba675SRob Herring
388724ba675SRob Herring	partition@18500000 {
389724ba675SRob Herring		label = "adsl";
390724ba675SRob Herring		reg = <0x18500000 0x00100000>;
391724ba675SRob Herring	};
392724ba675SRob Herring
393724ba675SRob Herring	partition@18600000 {
394724ba675SRob Herring		label = "storage";
395724ba675SRob Herring		reg = <0x18600000 0x07a00000>;
396724ba675SRob Herring	};
397724ba675SRob Herring};
398724ba675SRob Herring
399724ba675SRob Herring&rtc {
400724ba675SRob Herring	status = "disabled";
401724ba675SRob Herring};
402724ba675SRob Herring
403724ba675SRob Herring&pciec {
404724ba675SRob Herring	status = "okay";
405724ba675SRob Herring};
406724ba675SRob Herring
407724ba675SRob Herring&pcie0 {
408724ba675SRob Herring	status = "okay";
409724ba675SRob Herring};
410724ba675SRob Herring
411724ba675SRob Herring&sata_phy0 {
412724ba675SRob Herring	status = "disabled";
413724ba675SRob Herring};
414724ba675SRob Herring
415724ba675SRob Herring&sata_phy1 {
416724ba675SRob Herring	status = "disabled";
417724ba675SRob Herring};
418724ba675SRob Herring
419724ba675SRob Herring&usb0 {
420724ba675SRob Herring	#address-cells = <1>;
421724ba675SRob Herring	#size-cells = <0>;
422724ba675SRob Herring	status = "okay";
423724ba675SRob Herring
424724ba675SRob Herring	port@1 {
425724ba675SRob Herring		#address-cells = <1>;
426724ba675SRob Herring		#size-cells = <0>;
427724ba675SRob Herring		reg = <1>;
428724ba675SRob Herring		#trigger-source-cells = <0>;
429724ba675SRob Herring
430724ba675SRob Herring		hub_port1: port@1 {
431724ba675SRob Herring			reg = <1>;
432724ba675SRob Herring			#trigger-source-cells = <0>;
433724ba675SRob Herring		};
434724ba675SRob Herring
435724ba675SRob Herring		hub_port3: port@3 {
436724ba675SRob Herring			reg = <3>;
437724ba675SRob Herring			#trigger-source-cells = <0>;
438724ba675SRob Herring		};
439724ba675SRob Herring	};
440724ba675SRob Herring};
441