/dts-v1/;

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

/ {
	model = "Univeral Scientific Industrial Co. Topkick-1281P2";
	compatible = "usi,topkick-1281P2", "usi,topkick", "marvell,kirkwood-88f6282", "marvell,kirkwood";

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

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

	ocp@f1000000 {
		pinctrl: pinctrl@10000 {
			/*
			 * Switch positions
			 *
			 *     /-SW_LEFT(2)
			 *     |
			 *     |   /-SW_IDLE
			 *     |   |
			 *     |   |   /-SW_RIGHT
			 *     |   |   |
			 * PS [L] [I] [R] LEDS
			 */
			pinctrl-0 = <&pmx_sw_left &pmx_sw_right
				     &pmx_sw_idle &pmx_sw_left2>;
			pinctrl-names = "default";

			pmx_led_disk_yellow: pmx-led-disk-yellow {
				marvell,pins = "mpp21";
				marvell,function = "gpio";
			};

			pmx_sata0_pwr_enable: pmx-sata0-pwr-enable {
				marvell,pins = "mpp36";
				marvell,function = "gpio";
			};

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

			pmx_led_sys_blue: pmx-led-sys-blue {
				marvell,pins = "mpp38";
				marvell,function = "gpio";
			};

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

			pmx_sw_left: pmx-sw-left {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};

			pmx_sw_right: pmx-sw-right {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};

			pmx_sw_idle: pmx-sw-idle {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};

			pmx_sw_left2: pmx-sw-left2 {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};

			pmx_led_wifi_yellow: pmx-led-wifi-yellow {
				marvell,pins = "mpp48";
				marvell,function = "gpio";
			};
		};

		serial@12000 {
			status = "ok";
			pinctrl-0 = <&pmx_uart0>;
			pinctrl-names = "default";
		};

		sata@80000 {
			status = "okay";
			nr-ports = <1>;
		};

		i2c@11000 {
			status = "ok";
			pinctrl-0 = <&pmx_twsi0>;
			pinctrl-names = "default";
		};

		mvsdio@90000 {
			pinctrl-0 = <&pmx_sdio>;
			pinctrl-names = "default";
			status = "okay";
			/* No CD or WP GPIOs */
			broken-cd;
		};
	};

	gpio-leds {
		/*
		 * GPIO LED layout
		 *
		 *       /-SYS_LED(2)
		 *       |
		 *       |   /-DISK_LED
		 *       |   |
		 *       |   |   /-WLAN_LED(2)
		 *       |   |   |
		 * [SW] [*] [*] [*]
		 */

		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_led_disk_yellow &pmx_led_sys_red
			     &pmx_led_sys_blue &pmx_led_wifi_green
			     &pmx_led_wifi_yellow>;
		pinctrl-names = "default";

		disk {
			label = "topkick:yellow:disk";
			gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "ide-disk";
		};
		system2 {
			label = "topkick:red:system";
			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
		};
		system {
			label = "topkick:blue:system";
			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
			default-state = "on";
		};
		wifi {
			label = "topkick:green:wifi";
			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
		};
		wifi2 {
			label = "topkick:yellow:wifi";
			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
		};
	};
	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_sata0_pwr_enable>;
		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 4 0>;
		};
	};
};

&nand {
	status = "okay";
	pinctrl-0 = <&pmx_nand>;
	pinctrl-names = "default";

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

	partition@180000 {
		label = "u-boot env";
		reg = <0x0180000 0x20000>;
	};

	partition@200000 {
		label = "uImage";
		reg = <0x0200000 0x600000>;
	};

	partition@800000 {
		label = "uInitrd";
		reg = <0x0800000 0x1000000>;
	};

	partition@1800000 {
		label = "rootfs";
		reg = <0x1800000 0xe800000>;
	};
};

&mdio {
	status = "okay";

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

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