/*
 * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only 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.
 */

#include "ipq5018-mp03.1.dts"
/ {
	model ="QCA, IPQ5018-MP03.1-C2";
	compatible = "qca,ipq5018", "qca,ipq5018-mp03.1-c2";
	machid = <0x8040101>;
	config_name = "config@mp03.1-c2";

	mmc: sdhci@7804000 {
		compatible = "qcom,sdhci-msm";
		status = "okay";
		mmc_gpio {
			emmc_dat3 {
				gpio = <4>;
				func = <1>;
				pull = <GPIO_NO_PULL>;
				od_en = <GPIO_OD_DISABLE>;
				drvstr = <GPIO_8MA>;
			};
			emmc_dat2 {
				gpio = <5>;
				func = <1>;
				pull = <GPIO_NO_PULL>;
				od_en = <GPIO_OD_DISABLE>;
				drvstr = <GPIO_8MA>;
			};
			emmc_dat1 {
				gpio = <6>;
				func = <1>;
				pull = <GPIO_NO_PULL>;
				od_en = <GPIO_OD_DISABLE>;
				drvstr = <GPIO_8MA>;
			};
			emmc_dat0 {
				gpio = <7>;
				func = <1>;
				pull = <GPIO_NO_PULL>;
				od_en = <GPIO_OD_DISABLE>;
				drvstr = <GPIO_8MA>;
			};
			emmc_cmd{
				gpio = <8>;
				func = <1>;
				pull = <GPIO_PULL_UP>;
				od_en = <GPIO_OD_DISABLE>;
				drvstr = <GPIO_8MA>;
			};
			emmc_clk{
				gpio = <9>;
				func = <1>;
				pull = <GPIO_NO_PULL>;
				od_en = <GPIO_OD_DISABLE>;
				drvstr = <GPIO_8MA>;
			};
		};
	};

	nand: nand-controller@79B0000 {
		status = "disabled";
	};
};
