// SPDX-License-Identifier: GPL-2.0
#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "ZyXEL NSA310";

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {

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

			pmx_pwr_off: pmx-pwr-off {
				marvell,pins = "mpp48";
				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_btn_power: pmx-btn-power {
				marvell,pins = "mpp46";
				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";
			};
		};

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

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

	gpio_poweroff {
		compatible = "gpio-poweroff";
		pinctrl-0 = <&pmx_pwr_off>;
		pinctrl-names = "default";
		gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
	};

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_btn_reset &pmx_btn_copy &pmx_btn_power>;
		pinctrl-names = "default";

		power {
			label = "Power Button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
		};
		copy {
			label = "Copy Button";
			linux,code = <KEY_COPY>;
			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
		};
		reset {
			label = "Reset Button";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
		};
	};


	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_usb_power>;
		pinctrl-names = "default";

		usb0_power: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "USB Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>;
		};
	};
};

&nand {
	status = "okay";
	chip-delay = <35>;

	partition@0 {
		label = "uboot";
		reg = <0x0000000 0x0100000>;
		read-only;
	};
	partition@100000 {
		label = "uboot_env";
		reg = <0x0100000 0x0080000>;
	};
	partition@180000 {
		label = "key_store";
		reg = <0x0180000 0x0080000>;
	};
	partition@200000 {
		label = "info";
		reg = <0x0200000 0x0080000>;
	};
	partition@280000 {
		label = "etc";
		reg = <0x0280000 0x0a00000>;
	};
	partition@c80000 {
		label = "kernel_1";
		reg = <0x0c80000 0x0a00000>;
	};
	partition@1680000 {
		label = "rootfs1";
		reg = <0x1680000 0x2fc0000>;
	};
	partition@4640000 {
		label = "kernel_2";
		reg = <0x4640000 0x0a00000>;
	};
	partition@5040000 {
		label = "rootfs2";
		reg = <0x5040000 0x2fc0000>;
	};
};

&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};