1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree common file for LaCie 2Big and 5Big Network v2
4 *
5 * Copyright (C) 2014
6 *
7 * Andrew Lunn <andrew@lunn.ch>
8 *
9 * Based on netxbig_v2-setup.c,
10 * Copyright (C) 2010 Simon Guinot <sguinot@lacie.com>
11 *
12*/
13
14#include <dt-bindings/leds/leds-netxbig.h>
15#include "kirkwood.dtsi"
16#include "kirkwood-6281.dtsi"
17
18/ {
19	chosen {
20		bootargs = "console=ttyS0,115200n8";
21		stdout-path = &uart0;
22	};
23
24	ocp@f1000000 {
25		serial@12000 {
26			status = "okay";
27		};
28
29		spi@10600 {
30			status = "okay";
31
32			flash@0 {
33				#address-cells = <1>;
34				#size-cells = <1>;
35				compatible = "mxicy,mx25l4005a", "jedec,spi-nor", "spi-flash";
36				reg = <0>;
37				spi-max-frequency = <20000000>;
38				mode = <0>;
39
40				partition@0 {
41					reg = <0x0 0x80000>;
42					label = "u-boot";
43				};
44			};
45		};
46
47		sata@80000 {
48			status = "okay";
49			nr-ports = <2>;
50		};
51
52	};
53
54	gpio-keys {
55		compatible = "gpio-keys";
56		#address-cells = <1>;
57		#size-cells = <0>;
58
59		/*
60		 * esc and power represent a three position rocker
61		 * switch. Thus the conventional KEY_POWER does not fit
62		 */
63		exc {
64			label = "Back power switch (on|auto)";
65			linux,code = <KEY_ESC>;
66			linux,input-type = <5>;
67			gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
68		};
69		power {
70			label = "Back power switch (auto|off)";
71			linux,code = <KEY_1>;
72			linux,input-type = <5>;
73			gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
74		};
75		option {
76			label = "Function button";
77			linux,code = <KEY_OPTION>;
78			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
79		};
80
81	};
82
83	gpio-poweroff {
84		compatible = "gpio-poweroff";
85		gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
86	};
87
88	regulators: regulators {
89		status = "okay";
90		compatible = "simple-bus";
91		#address-cells = <1>;
92		#size-cells = <0>;
93		pinctrl-names = "default";
94
95		regulator@1 {
96			compatible = "regulator-fixed";
97			reg = <1>;
98			regulator-name = "hdd0power";
99			regulator-min-microvolt = <5000000>;
100			regulator-max-microvolt = <5000000>;
101			enable-active-high;
102			regulator-always-on;
103			regulator-boot-on;
104			gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>;
105		};
106	};
107
108	netxbig_gpio_ext: netxbig-gpio-ext {
109		compatible = "lacie,netxbig-gpio-ext";
110
111		addr-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH
112			      &gpio1 16 GPIO_ACTIVE_HIGH
113			      &gpio1 17 GPIO_ACTIVE_HIGH>;
114		data-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH
115			      &gpio1 13 GPIO_ACTIVE_HIGH
116			      &gpio1 14 GPIO_ACTIVE_HIGH>;
117		enable-gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
118	};
119
120	netxbig-leds {
121		compatible = "lacie,netxbig-leds";
122
123		gpio-ext = <&netxbig_gpio_ext>;
124
125		timers = <NETXBIG_LED_TIMER1 500 500
126			  NETXBIG_LED_TIMER2 500 1000>;
127
128		blue-power {
129			label = "netxbig:blue:power";
130			mode-addr = <0>;
131			mode-val = <NETXBIG_LED_OFF 0
132				    NETXBIG_LED_ON 1
133				    NETXBIG_LED_TIMER1 3
134				    NETXBIG_LED_TIMER2 7>;
135			bright-addr = <1>;
136			max-brightness = <7>;
137		};
138		red-power {
139			label = "netxbig:red:power";
140			mode-addr = <0>;
141			mode-val = <NETXBIG_LED_OFF 0
142				    NETXBIG_LED_ON 2
143				    NETXBIG_LED_TIMER1 4>;
144			bright-addr = <1>;
145			max-brightness = <7>;
146		};
147		blue-sata0 {
148			label = "netxbig:blue:sata0";
149			mode-addr = <3>;
150			mode-val = <NETXBIG_LED_OFF 0
151				    NETXBIG_LED_ON 7
152				    NETXBIG_LED_SATA 1
153				    NETXBIG_LED_TIMER1 3>;
154			bright-addr = <2>;
155			max-brightness = <7>;
156		};
157		red-sata0 {
158			label = "netxbig:red:sata0";
159			mode-addr = <3>;
160			mode-val = <NETXBIG_LED_OFF 0
161				    NETXBIG_LED_ON 2
162				    NETXBIG_LED_TIMER1 4>;
163			bright-addr = <2>;
164			max-brightness = <7>;
165		};
166		blue-sata1 {
167			label = "netxbig:blue:sata1";
168			mode-addr = <4>;
169			mode-val = <NETXBIG_LED_OFF 0
170				    NETXBIG_LED_ON 7
171				    NETXBIG_LED_SATA 1
172				    NETXBIG_LED_TIMER1 3>;
173			bright-addr = <2>;
174			max-brightness = <7>;
175		};
176		red-sata1 {
177			label = "netxbig:red:sata1";
178			mode-addr = <4>;
179			mode-val = <NETXBIG_LED_OFF 0
180				    NETXBIG_LED_ON 2
181				    NETXBIG_LED_TIMER1 4>;
182			bright-addr = <2>;
183			max-brightness = <7>;
184		};
185	};
186};
187
188&mdio {
189	status = "okay";
190
191	ethphy0: ethernet-phy@0 {
192		reg = <8>;
193	};
194
195	ethphy1: ethernet-phy@1 {
196		reg = <0>;
197	};
198};
199
200&eth0 {
201	status = "okay";
202	ethernet0-port@0 {
203		phy-handle = <&ethphy0>;
204	};
205};
206
207&pinctrl {
208	pinctrl-names = "default";
209
210	pmx_button_function: pmx-button-function {
211		marvell,pins = "mpp34";
212		marvell,function = "gpio";
213	};
214	pmx_button_power_off: pmx-button-power-off {
215		marvell,pins = "mpp15";
216		marvell,function = "gpio";
217	};
218	pmx_button_power_on: pmx-button-power-on {
219		marvell,pins = "mpp13";
220		marvell,function = "gpio";
221	};
222};
223
224&i2c0 {
225	status = "okay";
226
227	eeprom@50 {
228		compatible = "atmel,24c04";
229		pagesize = <16>;
230		reg = <0x50>;
231	};
232};
233