// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Iomega Iconnect";
	compatible = "iom,iconnect-1.1", "iom,iconnect", "marvell,kirkwood-88f6281", "marvell,kirkwood";

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

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
		linux,initrd-start = <0x4500040>;
		linux,initrd-end   = <0x4800000>;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_button_reset: pmx-button-reset {
				marvell,pins = "mpp12";
				marvell,function = "gpio";
			};
			pmx_button_otb: pmx-button-otb {
				marvell,pins = "mpp35";
				marvell,function = "gpio";
			};
			pmx_led_level: pmx-led-level {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};
			pmx_led_power_blue: pmx-led-power-blue {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_led_power_red: pmx-power-red {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_led_usb1: pmx-led-usb1 {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};
			pmx_led_usb2: pmx-led-usb2 {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_led_usb3: pmx-led-usb3 {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_led_usb4: pmx-led-usb4 {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
			pmx_led_otb: pmx-led-otb {
				marvell,pins = "mpp48";
				marvell,function = "gpio";
			};
		};
		i2c@11000 {
			status = "okay";

			lm63: lm63@4c {
				compatible = "national,lm63";
				reg = <0x4c>;
			};
		};
		serial@12000 {
			status = "okay";
		};
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = < &pmx_led_level &pmx_led_power_blue
			      &pmx_led_power_red &pmx_led_usb1
			      &pmx_led_usb2 &pmx_led_usb3
			      &pmx_led_usb4 &pmx_led_otb >;
		pinctrl-names = "default";

		led-level {
			label = "led_level";
			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};
		led-power-blue {
			label = "power:blue";
			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
		};
		led-power-red {
			label = "power:red";
			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
		};
		led-usb1 {
			label = "usb1:blue";
			gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
		};
		led-usb2 {
			label = "usb2:blue";
			gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
		};
		led-usb3 {
			label = "usb3:blue";
			gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
		};
		led-usb4 {
			label = "usb4:blue";
			gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
		};
		led-otb {
			label = "otb:blue";
			gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		pinctrl-0 = < &pmx_button_reset &pmx_button_otb >;
		pinctrl-names = "default";

		button-otb {
			label = "OTB Button";
			linux,code = <KEY_COPY>;
			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
			debounce-interval = <100>;
		};
		button-reset {
			label = "Reset";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
			debounce-interval = <100>;
		};
	};
};

&nand {
	status = "okay";

	partition@0 {
		label = "uboot";
		reg = <0x0000000 0xc0000>;
	};

	partition@a0000 {
		label = "env";
		reg = <0xa0000 0x20000>;
	};

	partition@100000 {
		label = "zImage";
		reg = <0x100000 0x300000>;
	};

	partition@540000 {
		label = "initrd";
		reg = <0x540000 0x300000>;
	};

	partition@980000 {
		label = "boot";
		reg = <0x980000 0x1f400000>;
	};
};

&mdio {
	status = "okay";

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

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

&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};
