// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include <dt-bindings/leds/common.h>

/ {
	model = "Iomega ix4-200d";
	compatible = "iom,ix4-200d", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	aliases {
		led-boot = &led_status_white;
		led-failsafe = &led_status_red;
		led-running = &led_power_white;
		led-upgrade = &led_status_red;
	};

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

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

	ocp@f1000000 {
		i2c@11000 {
			status = "okay";

			adt7473@2e {
				compatible = "adi,adt7473";
				reg = <0x2e>;
			};
		};

		pinctrl: pin-controller@10000 {
			pmx_spi: pmx-spi {
				marvell,pins = "mpp12", "mpp13", "mpp14";
				marvell,function = "gpio";
			};

			pmx_keys: pmx-keys {
				marvell,pins = "mpp16", "mpp29", "mpp47", "mpp49";
				marvell,function = "gpio";
			};
		};

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

		serial@12000 {
			status = "okay";
		};

		spi3 {
			compatible = "spi-gpio";
			#address-cells = <0x1>;
			ranges;
			status = "okay";
			sck-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
			mosi-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
			cs-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
			num-chipselects = <1>;
			#size-cells = <0>;

			gpio_spi: gpio_spi@0 {
				compatible = "fairchild,74hc595";
				reg = <0>;
				gpio-controller;
				#gpio-cells = <2>;
				registers-number = <1>;
				spi-max-frequency = <100000>;
			};
		};

		gpio-keys {
			compatible = "gpio-keys";
			pinctrl-0 = <&pmx_keys>;
			pinctrl-names = "default";

			button-0 {
				label = "Next Button";
				linux,code = <BTN_0>;
				gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
			};

			button-1 {
				label = "Reset Button";
				linux,code = <KEY_RESTART>;
				gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
			};

			button-2 {
				label = "Cancel Button";
				linux,code = <BTN_1>;
				gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
			};

			button-3 {
				label = "Power Button";
				linux,code = <KEY_POWER2>;
				gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
			};
		};

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

			led_status_white: led-0 {
				function = LED_FUNCTION_STATUS;
				color = <LED_COLOR_ID_WHITE>;
				gpios = <&gpio_spi 4 GPIO_ACTIVE_LOW>;
			};

			led_status_red: led-1 {
				function = LED_FUNCTION_STATUS;
				color = <LED_COLOR_ID_RED>;
				gpios = <&gpio_spi 5 GPIO_ACTIVE_LOW>;
			};

			led_power_white: led-2 {
				function = LED_FUNCTION_POWER;
				color = <LED_COLOR_ID_WHITE>;
				gpios = <&gpio_spi 7 GPIO_ACTIVE_HIGH>;
			};
		};
	};
};

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

&eth1 {
	status = "okay";
	ethernet1-port@0 {
		phy-handle = <&ethphy1>;
	};
};

&mdio {
	status = "okay";

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

	ethphy1: ethernet-phy@9 {
		reg = <9>;
	};
};

&nand {
	status = "okay";

	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

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

		partition@a0000 {
			label = "u-boot environment";
			reg = <0xa0000 0x20000>;
			read-only;
		};

		partition@100000 {
			label = "kernel";
			reg = <0x100000 0x400000>;
		};

		partition@500000 {
			label = "ubi";
			reg = <0x500000 0x1B00000>;
		};
	};
};

&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};
