/dts-v1/;

#include "ox820.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
	model = "Akitio MyCloud";

	compatible = "akitio,mycloud", "oxsemi,ox820";

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

	memory {
		/* 128Mbytes DDR */
		reg = <0x60000000 0x8000000>;
	};

	aliases {
		serial0 = &uart0;
		gpio0 = &gpio0;
		gpio1 = &gpio1;
		led-boot = &led_status;
		led-failsafe = &led_status;
		led-running = &led_status;
		led-upgrade = &led_status;
	};

	i2c-gpio {
		compatible = "i2c-gpio";
		gpios = <&gpio1  9 GPIO_ACTIVE_HIGH
		         &gpio1 10 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_i2c>;
		i2c-gpio,delay-us = <10>;
		#address-cells = <1>;
		#size-cells = <0>;
		ds1307: rtc@68 {
			compatible = "dallas,ds1307";
			reg = <0x68>;
		};
	};

	keys {
		compatible = "gpio-keys-polled";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_buttons>;
		#address-cells = <1>;
		#size-cells = <0>;
		poll-interval = <100>;
		power {
			label = "power";
			gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_POWER>;
		};
		reset {
			label = "reset";
			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_RESTART>;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_leds>;
		led_status: status {
			label = "akitio:red:status";
			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
		};
	};

	gpio-poweroff {
		compatible = "gpio-poweroff";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_poweroff>;
		gpios = <&gpio1 13 GPIO_SINGLE_ENDED>;
	};
};

&pinctrl {
	pinctrl_i2c: i2c-0 {
		i2c {
			pins = "gpio41", "gpio42"; /* MF_B9, MF_B10 */
			function = "gpio";
			/* ToDo: find a way to set debounce for those pins */
		};
	};
	pinctrl_buttons: buttons-0 {
		buttons {
			pins = "gpio11", "gpio38"; /* MF_A11, MF_B6 GPIO */
			function = "gpio";
		};
	};
	pinctrl_leds: leds-0 {
		leds {
			pins = "gpio29"; /* MF_A29 GPIO */
			function = "gpio";
		};
	};
	pinctrl_poweroff: poweroff-0 {
		poweroff {
			pins = "gpio45"; /* MF_B13 GPIO */
			function = "gpio";
		};
	};
};

&uart0 {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart0>;
};

&nandc {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_nand>;

	nand@0 {
		reg = <0>;
		#address-cells = <1>;
		#size-cells = <1>;
		nand-ecc-mode = "soft";
		nand-ecc-algo = "hamming";

		partition@0 {
			label = "boot";
			reg = <0x0 0x26c0000>;
		};

		partition@26c0000 {
			label = "ubi";
			reg = <0x26c0000 0xd940000>;
		};
	};
};

&etha {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_etha_mdio>;
};

&ehci {
	status = "okay";
};

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

&pcie_phy {
	status = "okay";
};

&pcie0 {
	status = "okay";
};