// SPDX-License-Identifier: GPL-2.0
#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "D-Link DNS NASes (kirkwood-based)";
	compatible = "dlink,dns-kirkwood", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_button_power &pmx_button_unmount
			     &pmx_button_reset>;
		pinctrl-names = "default";

		power {
			label = "Power button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
		};
		eject {
			label = "USB unmount button";
			linux,code = <KEY_EJECTCD>;
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
		};
		reset {
			label = "Reset button";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
		};
	};

	gpio_fan {
		/* Fan: ADDA AD045HB-G73 40mm 6000rpm@5v */
		compatible = "gpio-fan";
		pinctrl-0 = <&pmx_fan_high_speed &pmx_fan_low_speed>;
		pinctrl-names = "default";
		gpios = <&gpio1 14 GPIO_ACTIVE_LOW
			 &gpio1 13 GPIO_ACTIVE_LOW>;
		gpio-fan,speed-map = <0    0
				      3000 1
				      6000 2>;
	};

	gpio_poweroff {
		compatible = "gpio-poweroff";
		pinctrl-0 = <&pmx_power_off>;
		pinctrl-names = "default";
		gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {

			pinctrl-0 = <&pmx_power_back_on &pmx_present_sata0
				     &pmx_present_sata1 &pmx_fan_tacho
				     &pmx_temp_alarm>;
			pinctrl-names = "default";

			pmx_sata0: pmx-sata0 {
				marvell,pins = "mpp20";
				marvell,function = "sata1";
			};
			pmx_sata1: pmx-sata1 {
				marvell,pins = "mpp21";
				marvell,function = "sata0";
			};
			pmx_led_power: pmx-led-power {
				marvell,pins = "mpp26";
				marvell,function = "gpio";
			};
			pmx_led_red_right_hdd: pmx-led-red-right-hdd {
				marvell,pins = "mpp27";
				marvell,function = "gpio";
			};
			pmx_led_red_left_hdd: pmx-led-red-left-hdd {
				marvell,pins = "mpp28";
				marvell,function = "gpio";
			};
			pmx_led_red_usb_325: pmx-led-red-usb-325 {
				marvell,pins = "mpp29";
				marvell,function = "gpio";
			};
			pmx_button_power: pmx-button-power {
				marvell,pins = "mpp34";
				marvell,function = "gpio";
			};
			pmx_led_red_usb_320: pmx-led-red-usb-320 {
				marvell,pins = "mpp35";
				marvell,function = "gpio";
			};
			pmx_power_off: pmx-power-off {
				marvell,pins = "mpp36";
				marvell,function = "gpio";
			};
			pmx_power_back_on: pmx-power-back-on {
				marvell,pins = "mpp37";
				marvell,function = "gpio";
			};
			pmx_power_sata0: pmx-power-sata0 {
				marvell,pins = "mpp39";
				marvell,function = "gpio";
			};
			pmx_power_sata1: pmx-power-sata1 {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};
			pmx_present_sata0: pmx-present-sata0 {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};
			pmx_present_sata1: pmx-present-sata1 {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_led_white_usb: pmx-led-white-usb {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_fan_tacho: pmx-fan-tacho {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};
			pmx_fan_high_speed: pmx-fan-high-speed {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_fan_low_speed: pmx-fan-low-speed {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_button_unmount: pmx-button-unmount {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
			pmx_button_reset: pmx-button-reset {
				marvell,pins = "mpp48";
				marvell,function = "gpio";
			};
			pmx_temp_alarm: pmx-temp-alarm {
				marvell,pins = "mpp49";
				marvell,function = "gpio";
			};
		};
		sata@80000 {
			pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
			pinctrl-names = "default";
			status = "okay";
			nr-ports = <2>;
		};
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_power_sata0 &pmx_power_sata1>;
		pinctrl-names = "default";

		sata0_power: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "SATA0 Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio1 7 0>;
		};
		sata1_power: regulator@2 {
			compatible = "regulator-fixed";
			reg = <2>;
			regulator-name = "SATA1 Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio1 8 0>;
		};
	};
};

&nand {
	status = "okay";
	chip-delay = <35>;

	partition@0 {
		label = "u-boot";
		reg = <0x0000000 0x100000>;
		read-only;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x0100000 0x500000>;
	};

	partition@600000 {
		label = "ramdisk";
		reg = <0x0600000 0x500000>;
	};

	partition@b00000 {
		label = "image";
		reg = <0x0b00000 0x6600000>;
	};

	partition@7100000 {
		label = "mini firmware";
		reg = <0x7100000 0xa00000>;
	};

	partition@7b00000 {
		label = "config";
		reg = <0x7b00000 0x500000>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@8 {
		reg = <8>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};
