1// SPDX-License-Identifier: GPL-2.0
2#include "kirkwood.dtsi"
3#include "kirkwood-6281.dtsi"
4
5/ {
6	chosen {
7		bootargs = "console=ttyS0,115200n8 earlyprintk";
8		stdout-path = &uart0;
9	};
10
11	ocp@f1000000 {
12		pinctrl: pin-controller@10000 {
13			pmx_power_hdd: pmx-power-hdd {
14				marvell,pins = "mpp10";
15				marvell,function = "gpo";
16			};
17			pmx_usb_vbus: pmx-usb-vbus {
18				marvell,pins = "mpp11";
19				marvell,function = "gpio";
20			};
21			pmx_fan_high: pmx-fan-high {
22				marvell,pins = "mpp18";
23				marvell,function = "gpo";
24			};
25			pmx_fan_low: pmx-fan-low {
26				marvell,pins = "mpp19";
27				marvell,function = "gpo";
28			};
29			pmx_led_function_blue: pmx-led-function-blue {
30				marvell,pins = "mpp36";
31				marvell,function = "gpio";
32			};
33			pmx_led_alarm: pmx-led-alarm {
34				marvell,pins = "mpp37";
35				marvell,function = "gpio";
36			};
37			pmx_led_info: pmx-led-info {
38				marvell,pins = "mpp38";
39				marvell,function = "gpio";
40			};
41			pmx_led_power: pmx-led-power {
42				marvell,pins = "mpp39";
43				marvell,function = "gpio";
44			};
45			pmx_fan_lock: pmx-fan-lock {
46				marvell,pins = "mpp40";
47				marvell,function = "gpio";
48			};
49			pmx_button_function: pmx-button-function {
50				marvell,pins = "mpp41";
51				marvell,function = "gpio";
52			};
53			pmx_power_switch: pmx-power-switch {
54				marvell,pins = "mpp42";
55				marvell,function = "gpio";
56			};
57			pmx_power_auto_switch: pmx-power-auto-switch {
58				marvell,pins = "mpp43";
59				marvell,function = "gpio";
60			};
61			pmx_led_function_red: pmx-led-function_red {
62				marvell,pins = "mpp48";
63				marvell,function = "gpio";
64			};
65
66		};
67		sata@80000 {
68			status = "okay";
69			nr-ports = <1>;
70		};
71
72		spi@10600 {
73			status = "okay";
74
75			m25p40@0 {
76				#address-cells = <1>;
77				#size-cells = <1>;
78				compatible = "m25p40", "jedec,spi-nor";
79				reg = <0>;
80				spi-max-frequency = <25000000>;
81				mode = <0>;
82
83				partition@0 {
84					reg = <0x0 0x60000>;
85					label = "uboot";
86					read-only;
87				};
88
89				partition@60000 {
90					reg = <0x60000 0x10000>;
91					label = "dtb";
92					read-only;
93				};
94
95				partition@70000 {
96					reg = <0x70000 0x10000>;
97					label = "uboot_env";
98				};
99			};
100		};
101	};
102
103	gpio_keys {
104		compatible = "gpio-keys";
105		#address-cells = <1>;
106		#size-cells = <0>;
107		pinctrl-0 = <&pmx_button_function &pmx_power_switch
108			     &pmx_power_auto_switch>;
109		pinctrl-names = "default";
110
111		option {
112			label = "Function Button";
113			linux,code = <KEY_OPTION>;
114			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
115		};
116		reserved {
117			label = "Power-on Switch";
118			linux,code = <KEY_RESERVED>;
119			linux,input-type = <5>;
120			gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
121		};
122		power {
123			label = "Power-auto Switch";
124			linux,code = <KEY_ESC>;
125			linux,input-type = <5>;
126			gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
127		};
128	};
129
130	gpio_leds {
131		compatible = "gpio-leds";
132		pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
133			     &pmx_led_info &pmx_led_power
134			     &pmx_led_function_blue>;
135		pinctrl-names = "default";
136
137		func_blue {
138			label = "lsxl:blue:func";
139			gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
140		};
141
142		alarm {
143			label = "lsxl:red:alarm";
144			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
145		};
146
147		info {
148			label = "lsxl:amber:info";
149			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
150		};
151
152		power {
153			label = "lsxl:blue:power";
154			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
155			default-state = "keep";
156		};
157
158		func_red {
159			label = "lsxl:red:func";
160			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
161		};
162	};
163
164	gpio_fan {
165		compatible = "gpio-fan";
166		pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
167		pinctrl-names = "default";
168		gpios = <&gpio0 19 GPIO_ACTIVE_LOW
169		         &gpio0 18 GPIO_ACTIVE_LOW>;
170		gpio-fan,speed-map = <0    3
171		                      1500 2
172		                      3250 1
173		                      5000 0>;
174		alarm-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
175	};
176
177	restart_poweroff {
178		compatible = "restart-poweroff";
179	};
180
181	regulators {
182		compatible = "simple-bus";
183		#address-cells = <1>;
184		#size-cells = <0>;
185		pinctrl-0 = <&pmx_power_hdd &pmx_usb_vbus>;
186		pinctrl-names = "default";
187
188		usb_power: regulator@1 {
189			compatible = "regulator-fixed";
190			reg = <1>;
191			regulator-name = "USB Power";
192			regulator-min-microvolt = <5000000>;
193			regulator-max-microvolt = <5000000>;
194			enable-active-high;
195			regulator-always-on;
196			regulator-boot-on;
197			gpio = <&gpio0 11 0>;
198		};
199		hdd_power: regulator@2 {
200			compatible = "regulator-fixed";
201			reg = <2>;
202			regulator-name = "HDD Power";
203			regulator-min-microvolt = <5000000>;
204			regulator-max-microvolt = <5000000>;
205			enable-active-high;
206			regulator-always-on;
207			regulator-boot-on;
208			gpio = <&gpio0 10 0>;
209		};
210	};
211};
212
213&mdio {
214	status = "okay";
215
216	ethphy0: ethernet-phy@0 {
217		reg = <0>;
218	};
219
220	ethphy1: ethernet-phy@8 {
221		reg = <8>;
222	};
223};
224
225&eth0 {
226	status = "okay";
227	ethernet0-port@0 {
228		phy-handle = <&ethphy0>;
229	};
230};
231
232&eth1 {
233	status = "okay";
234	ethernet1-port@0 {
235		phy-handle = <&ethphy1>;
236	};
237};
238