/*
 * Copyright (c) 2016 - 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.
 */

/dts-v1/;
#include "ipq807x-soc.dtsi"
#include <dt-bindings/qcom/gpio-ipq807x.h>
/ {
	machid = <0x01010004>;
	config_name = "config@db.hk01";

	aliases {
		console = "/serial@78B3000";
		i2c0 = "/i2c@78b6000";
		pci0 = "/pci@20000000";
		pci1 = "/pci@10000000";
		mmc = "/sdhci@07824000";
	};

	ess-switch {
		switch_mac_mode = <0x0>;
		switch_mac_mode1 = <0x1>;
		switch_mac_mode2 = <0x2>;
		8033_port = <4>;
		aquantia_port = <5>;
		aquantia_gpio = <44>;
	};
};

