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