1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Device Tree common file for kirkwood-6282 based Buffalo Linkstation
4 *
5 * Copyright (C) 2015, 2016
6 * Roger Shimizu <rogershimizu@gmail.com>
7 */
8
9#include "kirkwood.dtsi"
10#include "kirkwood-6282.dtsi"
11#include "kirkwood-linkstation.dtsi"
12
13/ {
14	ocp@f1000000 {
15		pinctrl: pin-controller@10000 {
16			pmx_power_hdd0: pmx-power-hdd0 {
17				marvell,pins = "mpp8";
18				marvell,function = "gpio";
19			};
20			pmx_usb_vbus: pmx-usb-vbus {
21				marvell,pins = "mpp12";
22				marvell,function = "gpio";
23			};
24			pmx_fan_high: pmx-fan-high {
25				marvell,pins = "mpp16";
26				marvell,function = "gpio";
27			};
28			pmx_fan_low: pmx-fan-low {
29				marvell,pins = "mpp17";
30				marvell,function = "gpio";
31			};
32			pmx_led_alarm: pmx-led-alarm {
33				marvell,pins = "mpp36";
34				marvell,function = "gpio";
35			};
36			pmx_led_function_red: pmx-led-function-red {
37				marvell,pins = "mpp37";
38				marvell,function = "gpio";
39			};
40			pmx_led_info: pmx-led-info {
41				marvell,pins = "mpp38";
42				marvell,function = "gpio";
43			};
44			pmx_led_function_blue: pmx-led-function-blue {
45				marvell,pins = "mpp39";
46				marvell,function = "gpio";
47			};
48			pmx_led_power: pmx-led-power {
49				marvell,pins = "mpp40";
50				marvell,function = "gpio";
51			};
52			pmx_fan_lock: pmx-fan-lock {
53				marvell,pins = "mpp43";
54				marvell,function = "gpio";
55			};
56			pmx_button_function: pmx-button-function {
57				marvell,pins = "mpp45";
58				marvell,function = "gpio";
59			};
60			pmx_power_switch: pmx-power-switch {
61				marvell,pins = "mpp46";
62				marvell,function = "gpio";
63			};
64			pmx_power_auto_switch: pmx-power-auto-switch {
65				marvell,pins = "mpp47";
66				marvell,function = "gpio";
67			};
68		};
69	};
70
71	gpio_keys {
72		function-button {
73			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
74		};
75
76		power-on-switch {
77			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
78		};
79
80		power-auto-switch {
81			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
82		};
83	};
84
85	gpio_leds {
86		red-alarm-led {
87			label = "linkstation:red:alarm";
88			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
89		};
90
91		red-function-led {
92			label = "linkstation:red:function";
93			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
94		};
95
96		amber-info-led {
97			label = "linkstation:amber:info";
98			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
99		};
100
101		blue-function-led {
102			label = "linkstation:blue:function";
103			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
104		};
105
106		blue-power-led {
107			label = "linkstation:blue:power";
108			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
109			default-state = "keep";
110		};
111	};
112
113	gpio_fan {
114		compatible = "gpio-fan";
115		pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
116		pinctrl-names = "default";
117
118		gpios = <&gpio0 17 GPIO_ACTIVE_LOW
119			 &gpio0 16 GPIO_ACTIVE_LOW>;
120
121		gpio-fan,speed-map = <0 3
122				1500 2
123				3250 1
124				5000 0>;
125
126		alarm-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
127	};
128
129	regulators {
130		usb_power: regulator@1 {
131			gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
132		};
133
134		hdd_power0: regulator@2 {
135			gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
136		};
137	};
138};
139
140&mdio {
141	status = "okay";
142
143	ethphy0: ethernet-phy@0 {
144		device_type = "ethernet-phy";
145		reg = <0>;
146	};
147};
148
149&eth0 {
150	status = "okay";
151
152	ethernet0-port@0 {
153		phy-handle = <&ethphy0>;
154	};
155};
156