blob: f5db16a08597e9a732f575c13b00415ce8e40920 [file] [log] [blame]
Roger Shimizue54e4b12015-06-23 00:00:16 +09001/*
2 * Device Tree file for Buffalo Linkstation LS-WXL/WSXL
3 *
4 * Copyright (C) 2015, rogershimizu@gmail.com
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12/dts-v1/;
13
14#include "kirkwood.dtsi"
15#include "kirkwood-6281.dtsi"
16
17/ {
18 model = "Buffalo Linkstation LS-WXL/WSXL";
19 compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
20
21 memory { /* 128 MB */
22 device_type = "memory";
23 reg = <0x00000000 0x8000000>;
24 };
25
26 chosen {
27 bootargs = "console=ttyS0,115200n8 earlyprintk";
28 stdout-path = &uart0;
29 };
30
31 mbus {
32 pcie-controller {
33 status = "okay";
34 pcie@1,0 {
35 status = "okay";
36 };
37 };
38 };
39
40 ocp@f1000000 {
41 pinctrl: pin-controller@10000 {
42 pmx_power_hdd0: pmx-power-hdd0 {
43 marvell,pins = "mpp28";
44 marvell,function = "gpio";
45 };
46 pmx_power_hdd1: pmx-power-hdd1 {
47 marvell,pins = "mpp29";
48 marvell,function = "gpio";
49 };
50 pmx_usb_vbus: pmx-usb-vbus {
51 marvell,pins = "mpp37";
52 marvell,function = "gpio";
53 };
54 pmx_fan_high: pmx-fan-high {
55 marvell,pins = "mpp47";
56 marvell,function = "gpio";
57 };
58 pmx_fan_low: pmx-fan-low {
59 marvell,pins = "mpp48";
60 marvell,function = "gpio";
61 };
62 pmx_led_hdderr0: pmx-led-hdderr0 {
63 marvell,pins = "mpp8";
64 marvell,function = "gpio";
65 };
66 pmx_led_hdderr1: pmx-led-hdderr1 {
67 marvell,pins = "mpp46";
68 marvell,function = "gpio";
69 };
70 pmx_led_alarm: pmx-led-alarm {
71 marvell,pins = "mpp49";
72 marvell,function = "gpio";
73 };
74 pmx_led_function_red: pmx-led-function-red {
75 marvell,pins = "mpp34";
76 marvell,function = "gpio";
77 };
78 pmx_led_function_blue: pmx-led-function-blue {
79 marvell,pins = "mpp36";
80 marvell,function = "gpio";
81 };
82 pmx_led_info: pmx-led-info {
83 marvell,pins = "mpp38";
84 marvell,function = "gpio";
85 };
86 pmx_led_power: pmx-led-power {
87 marvell,pins = "mpp39";
88 marvell,function = "gpio";
89 };
90 pmx_fan_lock: pmx-fan-lock {
91 marvell,pins = "mpp40";
92 marvell,function = "gpio";
93 };
94 pmx_button_function: pmx-button-function {
95 marvell,pins = "mpp41";
96 marvell,function = "gpio";
97 };
98 pmx_power_switch: pmx-power-switch {
99 marvell,pins = "mpp42";
100 marvell,function = "gpio";
101 };
102 pmx_power_auto_switch: pmx-power-auto-switch {
103 marvell,pins = "mpp43";
104 marvell,function = "gpio";
105 };
106 };
107
108 serial@12000 {
109 status = "okay";
110 };
111
112 sata@80000 {
113 status = "okay";
114 nr-ports = <2>;
115 };
116
117 spi@10600 {
118 status = "okay";
119
120 m25p40@0 {
121 #address-cells = <1>;
122 #size-cells = <1>;
123 compatible = "st,m25p40", "jedec,spi-nor";
124 reg = <0>;
125 spi-max-frequency = <25000000>;
126 mode = <0>;
127
128 partition@0 {
129 reg = <0x0 0x60000>;
130 label = "uboot";
131 read-only;
132 };
133
134 partition@60000 {
135 reg = <0x60000 0x10000>;
136 label = "dtb";
137 read-only;
138 };
139
140 partition@70000 {
141 reg = <0x70000 0x10000>;
142 label = "uboot_env";
143 };
144 };
145 };
146 };
147
148 gpio_keys {
149 compatible = "gpio-keys";
150 #address-cells = <1>;
151 #size-cells = <0>;
152 pinctrl-0 = <&pmx_button_function &pmx_power_switch
153 &pmx_power_auto_switch>;
154 pinctrl-names = "default";
155
156 button@1 {
157 label = "Function Button";
158 linux,code = <KEY_OPTION>;
159 gpios = <&gpio1 41 GPIO_ACTIVE_LOW>;
160 };
161
162 button@2 {
163 label = "Power-on Switch";
164 linux,code = <KEY_RESERVED>;
165 linux,input-type = <5>;
166 gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
167 };
168
169 button@3 {
170 label = "Power-auto Switch";
171 linux,code = <KEY_ESC>;
172 linux,input-type = <5>;
173 gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;
174 };
175 };
176
177 gpio_leds {
178 compatible = "gpio-leds";
179 pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
180 &pmx_led_info &pmx_led_power
181 &pmx_led_function_blue
182 &pmx_led_hdderr0
183 &pmx_led_hdderr1>;
184 pinctrl-names = "default";
185
186 led@1 {
187 label = "lswxl:blue:func";
188 gpios = <&gpio1 36 GPIO_ACTIVE_LOW>;
189 };
190
191 led@2 {
192 label = "lswxl:red:alarm";
193 gpios = <&gpio1 49 GPIO_ACTIVE_LOW>;
194 };
195
196 led@3 {
197 label = "lswxl:amber:info";
198 gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
199 };
200
201 led@4 {
202 label = "lswxl:blue:power";
203 gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
204 };
205
206 led@5 {
207 label = "lswxl:red:func";
208 gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
209 default-state = "keep";
210 };
211
212 led@6 {
213 label = "lswxl:red:hdderr0";
214 gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
215 };
216
217 led@7 {
218 label = "lswxl:red:hdderr1";
219 gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
220 };
221 };
222
223 gpio_fan {
224 compatible = "gpio-fan";
225 pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
226 pinctrl-names = "default";
227
228 gpios = <&gpio0 47 GPIO_ACTIVE_LOW
229 &gpio0 48 GPIO_ACTIVE_LOW>;
230
231 gpio-fan,speed-map = <0 3
232 1500 2
233 3250 1
234 5000 0>;
235
236 alarm-gpios = <&gpio1 49 GPIO_ACTIVE_HIGH>;
237 };
238
239 restart_poweroff {
240 compatible = "restart-poweroff";
241 };
242
243 regulators {
244 compatible = "simple-bus";
245 #address-cells = <1>;
246 #size-cells = <0>;
247 pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
248 pinctrl-names = "default";
249
250 usb_power: regulator@1 {
251 compatible = "regulator-fixed";
252 reg = <1>;
253 regulator-name = "USB Power";
254 regulator-min-microvolt = <5000000>;
255 regulator-max-microvolt = <5000000>;
256 enable-active-high;
257 regulator-always-on;
258 regulator-boot-on;
259 gpio = <&gpio0 37 GPIO_ACTIVE_HIGH>;
260 };
261 hdd_power0: regulator@2 {
262 compatible = "regulator-fixed";
263 reg = <2>;
264 regulator-name = "HDD0 Power";
265 regulator-min-microvolt = <5000000>;
266 regulator-max-microvolt = <5000000>;
267 enable-active-high;
268 regulator-always-on;
269 regulator-boot-on;
270 gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>;
271 };
272 hdd_power1: regulator@3 {
273 compatible = "regulator-fixed";
274 reg = <3>;
275 regulator-name = "HDD1 Power";
276 regulator-min-microvolt = <5000000>;
277 regulator-max-microvolt = <5000000>;
278 enable-active-high;
279 regulator-always-on;
280 regulator-boot-on;
281 gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
282 };
283 };
284};
285
286&mdio {
287 status = "okay";
288
289 ethphy1: ethernet-phy@8 {
290 device_type = "ethernet-phy";
291 reg = <8>;
292 };
293};
294
295&eth1 {
296 status = "okay";
297
298 ethernet1-port@0 {
299 phy-handle = <&ethphy1>;
300 };
301};