/*
 * Copyright (c) 2016-2019, 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 "ipq6018-soc.dtsi"
/ {
	machid = <0x8030000>;
	config_name = "config@cp01-c1";

	aliases {
		console = "/serial@78B1000";
		pci0 = "/pci@20000000";
		usb0 = "/xhci@8a00000";
		usb1 = "/xhci@7000000";
		i2c1 = "/i2c@78ba000";
		i2c0 = "/i2c@78b7000";
	};
	i2c0: i2c@78b7000 {
		compatible = "qcom,qup-i2c";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x78b7000 0x600>;
		clock-frequency  = <400000>;

		i2c_gpio {
			gpio1 {
				gpio = <42>;
				func = <2>;
				pull = <GPIO_PULL_UP>;
				drvstr = <GPIO_8MA>;
				oe = <GPIO_OE_ENABLE>;
			};

			gpio2 {
				gpio = <43>;
				func = <2>;
				pull = <GPIO_PULL_UP>;
				drvstr = <GPIO_8MA>;
				oe = <GPIO_OE_ENABLE>;
			};
		};
	};
	ess-switch {
		switch_mac_mode = <PORT_WRAPPER_PSGMII>;
		switch_mac_mode1 = <PORT_WRAPPER_SGMII_PLUS>;
		napa_gpio = <77>;
		napa_gpio_cnt = <1>;
		malibu_gpio = <75>;
		malibu_gpio_cnt = <1>;
		mdc_mdio_gpio = <64 65>;
		port_phyinfo {
			port@0 {
				phy_address = <0>;
				phy_type = <MALIBU_PHY_TYPE>;
			};
			port@1 {
				phy_address = <1>;
				phy_type = <MALIBU_PHY_TYPE>;
			};
			port@2 {
				phy_address = <2>;
				phy_type = <MALIBU_PHY_TYPE>;
			};
			port@3 {
				phy_address = <3>;
				phy_type = <MALIBU_PHY_TYPE>;
			};
			port@4 {
				phy_address = <24>;
				phy_type = <QCA8081_PHY_TYPE>;
			};
		};
	};
};
