/dts-v1/;

#include "kirkwood-nsa310-common.dtsi"

/*
 * There are at least two different NSA310 designs. This variant does
 * not have the red USB Led.
 */

/ {
	compatible = "zyxel,nsa310a", "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood";

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

	chosen {
		bootargs = "console=ttyS0,115200";
	};

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

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

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

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

			pmx_usb_power_off: pmx-usb-power-off {
				marvell,pins = "mpp21";
				marvell,function = "gpio";
			};

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

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

			pmx_btn_reset: pmx-btn-reset {
				marvell,pins = "mpp36";
				marvell,function = "gpio";
			};

			pmx_btn_copy: pmx-btn-copy {
				marvell,pins = "mpp37";
				marvell,function = "gpio";
			};

			pmx_led_copy_green: pmx-led-copy-green {
				marvell,pins = "mpp39";
				marvell,function = "gpio";
			};

			pmx_led_copy_red: pmx-led-copy-red {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};

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

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

			pmx_btn_power: pmx-btn-power {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};

		};

		i2c@11000 {
			status = "okay";

			lm85: lm85@2e {
				compatible = "lm85";
				reg = <0x2e>;
			};
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		button@1 {
			label = "Power Button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
		};
		button@2 {
			label = "Copy Button";
			linux,code = <KEY_COPY>;
			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
		};
		button@3 {
			label = "Reset Button";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
		};
	};

	gpio-leds {
		compatible = "gpio-leds";

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