/dts-v1/;
/* Copyright (c) 2017, 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 "ipq8074.dtsi"

/ {
	#address-cells = <0x2>;
	#size-cells = <0x2>;
	model = "Qualcomm Technologies, Inc. IPQ8074-HK01";
	compatible = "qcom,ipq8074-hk01", "qcom,ipq8074";
	interrupt-parent = <&intc>;

	aliases {
		serial0 = &blsp1_uart5;
		serial1 = &blsp1_uart3;
	};

	chosen {
		stdout-path = "serial0";
	};

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

	soc {
		serial@78b3000 {
			status = "ok";
		};

		spi@78b5000 {
			status = "ok";

			m25p80@0 {
				  #address-cells = <1>;
				  #size-cells = <1>;
				  compatible = "jedec,spi-nor";
				  reg = <0>;
				  spi-max-frequency = <50000000>;
			};
		};

		serial@78b1000 {
			 status = "ok";
		};

		i2c@78b6000 {
			 status = "ok";
		};

		dma@7984000 {
			 status = "ok";
		};

		nand@79b0000 {
			status = "ok";

			nand@0 {
				reg = <0>;
				nand-ecc-strength = <4>;
				nand-ecc-step-size = <512>;
				nand-bus-width = <8>;
			};
		};

		phy@86000 {
			status = "ok";
		};

		phy@8e000 {
			status = "ok";
		};

		pci@20000000 {
			status = "ok";
			perst-gpio = <&tlmm 58 0x1>;
		};

		pci@10000000 {
			status = "ok";
			perst-gpio = <&tlmm 61 0x1>;
		};
	};
};
