// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Device Tree common file for kirkwood-6282 based Buffalo Linkstation
 *
 * Copyright (C) 2015, 2016
 * Roger Shimizu <rogershimizu@gmail.com>
 */

#include "kirkwood.dtsi"
#include "kirkwood-6282.dtsi"
#include "kirkwood-linkstation.dtsi"

/ {
	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_power_hdd0: pmx-power-hdd0 {
				marvell,pins = "mpp8";
				marvell,function = "gpio";
			};
			pmx_usb_vbus: pmx-usb-vbus {
				marvell,pins = "mpp12";
				marvell,function = "gpio";
			};
			pmx_fan_high: pmx-fan-high {
				marvell,pins = "mpp16";
				marvell,function = "gpio";
			};
			pmx_fan_low: pmx-fan-low {
				marvell,pins = "mpp17";
				marvell,function = "gpio";
			};
			pmx_led_alarm: pmx-led-alarm {
				marvell,pins = "mpp36";
				marvell,function = "gpio";
			};
			pmx_led_function_red: pmx-led-function-red {
				marvell,pins = "mpp37";
				marvell,function = "gpio";
			};
			pmx_led_info: pmx-led-info {
				marvell,pins = "mpp38";
				marvell,function = "gpio";
			};
			pmx_led_function_blue: pmx-led-function-blue {
				marvell,pins = "mpp39";
				marvell,function = "gpio";
			};
			pmx_led_power: pmx-led-power {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};
			pmx_fan_lock: pmx-fan-lock {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_button_function: pmx-button-function {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_power_switch: pmx-power-switch {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_power_auto_switch: pmx-power-auto-switch {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
		};
	};

	gpio_keys {
		function-button {
			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
		};

		power-on-switch {
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
		};

		power-auto-switch {
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
		};
	};

	gpio_leds {
		red-alarm-led {
			label = "linkstation:red:alarm";
			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
		};

		red-function-led {
			label = "linkstation:red:function";
			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
		};

		amber-info-led {
			label = "linkstation:amber:info";
			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
		};

		blue-function-led {
			label = "linkstation:blue:function";
			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
		};

		blue-power-led {
			label = "linkstation:blue:power";
			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
			default-state = "keep";
		};
	};

	gpio_fan {
		compatible = "gpio-fan";
		pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
		pinctrl-names = "default";

		gpios = <&gpio0 17 GPIO_ACTIVE_LOW
			 &gpio0 16 GPIO_ACTIVE_LOW>;

		gpio-fan,speed-map =
				<   0 3>,
				<1500 2>,
				<3250 1>,
				<5000 0>;

		alarm-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
	};

	regulators {
		usb_power: regulator@1 {
			gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
		};

		hdd_power0: regulator@2 {
			gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
		};
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@0 {
		device_type = "ethernet-phy";
		reg = <0>;
	};
};

&eth0 {
	status = "okay";

	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};
