/*
 * Copyright (c) 2017 MediaTek Inc.
 * Author: John Crispin <john@phrozen.org>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

/dts-v1/;
#include "mt7623n-rfb.dtsi"

/ {
	model = "MediaTek MT7623N NAND reference board";
	compatible = "mediatek,mt7623n-rfb-nand", "mediatek,mt7623";
};

&bch {
	status = "okay";
};

&nandc {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&nand_pins_default>;

	nand@0 {
		reg = <0>;
		spare_per_sector = <64>;
		nand-ecc-mode = "hw";
		nand-ecc-strength = <12>;
		nand-ecc-step-size = <1024>;

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

			partition@0 {
				label = "preloader";
				reg = <0x0 0x40000>;
			};

			partition@40000 {
				label = "uboot";
				reg = <0x40000 0x80000>;
			};

			partition@c0000 {
				label = "uboot-env";
				reg = <0xC0000 0x40000>;
			};

			partition@140000 {
				label = "bootimg";
				reg = <0x140000 0x2000000>;
			};

			partition@2140000 {
				label = "recovery";
				reg = <0x2140000 0x2000000>;
			};

			partition@4140000 {
				label = "rootfs";
				reg = <0x4140000 0x1000000>;
			};

			partition@5140000 {
				label = "usrdata";
				reg = <0x5140000 0x1000000>;
			};
		};
	};
};

&pio {
	nand_pins_default: nanddefault {
		pins_ale {
			pinmux = <MT7623_PIN_116_MSDC0_CMD_FUNC_NALE>;
			drive-strength = <MTK_DRIVE_8mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
		};

		pins_dat {
			pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_NLD7>,
				 <MT7623_PIN_112_MSDC0_DAT6_FUNC_NLD6>,
				 <MT7623_PIN_114_MSDC0_DAT4_FUNC_NLD4>,
				 <MT7623_PIN_118_MSDC0_DAT3_FUNC_NLD3>,
				 <MT7623_PIN_121_MSDC0_DAT0_FUNC_NLD0>,
				 <MT7623_PIN_120_MSDC0_DAT1_FUNC_NLD1>,
				 <MT7623_PIN_113_MSDC0_DAT5_FUNC_NLD5>,
				 <MT7623_PIN_115_MSDC0_RSTB_FUNC_NLD8>,
				 <MT7623_PIN_119_MSDC0_DAT2_FUNC_NLD2>;
			input-enable;
			drive-strength = <MTK_DRIVE_8mA>;
			bias-pull-up;
		};

		pins_we {
			pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_NWEB>;
			drive-strength = <MTK_DRIVE_8mA>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
		};
	};
};
