// SPDX-License-Identifier: GPL-2.0+
/* Device tree file for the Zyxel NSA 320 NAS box.
 *
 * Copyright (c) 2014, Adam Baker <linux@baker-net.org.uk>
 *
 *
 * Based upon the board setup file created by Peter Schildmann */

/dts-v1/;

#include "kirkwood-nsa3x0-common.dtsi"

/ {
	model = "Zyxel NSA320";
	compatible = "zyxel,nsa320", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x20000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pinctrl-names = "default";

			/* SATA Activity and Present pins are not connected */
			pmx_sata0: pmx-sata0 {
				marvell,pins ;
				marvell,function = "sata0";
			};

			pmx_sata1: pmx-sata1 {
				marvell,pins ;
				marvell,function = "sata1";
			};

			pmx_led_hdd2_green: pmx-led-hdd2-green {
				marvell,pins = "mpp12";
				marvell,function = "gpio";
			};

			pmx_led_hdd2_red: pmx-led-hdd2-red {
				marvell,pins = "mpp13";
				marvell,function = "gpio";
			};

			pmx_mcu_data: pmx-mcu-data {
				marvell,pins = "mpp14";
				marvell,function = "gpio";
			};

			pmx_led_usb_green: pmx-led-usb-green {
				marvell,pins = "mpp15";
				marvell,function = "gpio";
			};

			pmx_mcu_clk: pmx-mcu-clk {
				marvell,pins = "mpp16";
				marvell,function = "gpio";
			};

			pmx_mcu_act: pmx-mcu-act {
				marvell,pins = "mpp17";
				marvell,function = "gpio";
			};

			pmx_led_sys_green: pmx-led-sys-green {
				marvell,pins = "mpp28";
				marvell,function = "gpio";
			};

			pmx_led_sys_orange: pmx-led-sys-orange {
				marvell,pins = "mpp29";
				marvell,function = "gpio";
			};

			pmx_led_hdd1_green: pmx-led-hdd1-green {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};

			pmx_led_hdd1_red: pmx-led-hdd1-red {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};

			pmx_htp: pmx-htp {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};

			/* Buzzer needs to be switched at around 1kHz so is
			   not compatible with the gpio-beeper driver. */
			pmx_buzzer: pmx-buzzer {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};

			pmx_vid_b1: pmx-vid-b1 {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};

			pmx_power_resume_data: pmx-power-resume-data {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};

			pmx_power_resume_clk: pmx-power-resume-clk {
				marvell,pins = "mpp49";
				marvell,function = "gpio";
			};
		};

		i2c@11000 {
			status = "okay";

			pcf8563: pcf8563@51 {
				compatible = "nxp,pcf8563";
				reg = <0x51>;
			};
		};
	};

	regulators {
		usb0_power: regulator@1 {
			enable-active-high;
		};
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_led_hdd2_green &pmx_led_hdd2_red
			     &pmx_led_usb_green
			     &pmx_led_sys_green &pmx_led_sys_orange
			     &pmx_led_copy_green &pmx_led_copy_red
			     &pmx_led_hdd1_green &pmx_led_hdd1_red>;
		pinctrl-names = "default";

		green-sys {
			label = "nsa320:green:sys";
			gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
		};
		orange-sys {
			label = "nsa320:orange:sys";
			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
		};
		green-hdd1 {
			label = "nsa320:green:hdd1";
			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
		};
		red-hdd1 {
			label = "nsa320:red:hdd1";
			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
		};
		green-hdd2 {
			label = "nsa320:green:hdd2";
			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
		};
		red-hdd2 {
			label = "nsa320:red:hdd2";
			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
		};
		green-usb {
			label = "nsa320:green:usb";
			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
		};
		green-copy {
			label = "nsa320:green:copy";
			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
		};
		red-copy {
			label = "nsa320:red:copy";
			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
		};
	};

	hwmon {
		compatible = "zyxel,nsa320-mcu";
		pinctrl-0 = <&pmx_mcu_data &pmx_mcu_clk &pmx_mcu_act>;
		pinctrl-names = "default";

		data-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
		clk-gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
		act-gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
	};

	/* The following pins are currently not assigned to a driver,
	   some of them should be configured as inputs.
	pinctrl-0 = <&pmx_htp &pmx_vid_b1
		     &pmx_power_resume_data &pmx_power_resume_clk>; */
};

&mdio {
	status = "okay";
	ethphy0: ethernet-phy@1 {
		reg = <1>;
	};
};

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

&pciec {
        status = "okay";
};

&pcie0 {
	status = "okay";
};
