/*
 * DTS File for HiSilicon Poplar Development Board
 *
 * Copyright (c) 2016-2017 HiSilicon Technologies Co., Ltd.
 *
 * Released under the GPLv2 only.
 * SPDX-License-Identifier: GPL-2.0
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include "hi3798cv200.dtsi"
#include "poplar-pinctrl.dtsi"

/ {
	model = "HiSilicon Poplar Development Board";
	compatible = "hisilicon,hi3798cv200-poplar", "hisilicon,hi3798cv200";

	aliases {
		serial0 = &uart0;
		serial2 = &uart2;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory@0 {
		device_type = "memory";
		reg = <0x0 0x0 0x0 0x80000000>;
	};

	leds {
		compatible = "gpio-leds";

		user-led0 {
			label = "green:user1";
			gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "heartbeat";
			default-state = "off";
		};

		user-led1 {
			label = "green:user2";
			gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "mmc0";
			default-state = "off";
		};

		user-led2 {
			label = "green:user3";
			gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "mmc1";
			default-state = "off";
		};

		user-led3 {
			label = "green:user4";
			gpios = <&gpio10 6 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "none";
			panic-indicator;
			default-state = "off";
		};
	};

	reg_pcie: regulator-pcie {
		compatible = "regulator-fixed";
		regulator-name = "3V3_PCIE0";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio6 7 0>;
		enable-active-high;
	};
};

&ehci {
	status = "okay";
};

&emmc {
	pinctrl-names = "default";
	pinctrl-0 = <&emmc_pins_1 &emmc_pins_2
		     &emmc_pins_3 &emmc_pins_4>;
	fifo-depth = <256>;
	clock-frequency = <200000000>;
	cap-mmc-highspeed;
	mmc-ddr-1_8v;
	mmc-hs200-1_8v;
	non-removable;
	bus-width = <8>;
	status = "okay";
};

&gmac1 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	phy-handle = <&eth_phy1>;
	phy-mode = "rgmii";
	hisilicon,phy-reset-delays-us = <10000 10000 30000>;

	eth_phy1: phy@3 {
		reg = <3>;
	};
};

&gpio1 {
	status = "okay";
	gpio-line-names = "GPIO-E",	"",
			  "",		"",
			  "",		"GPIO-F",
			  "",		"GPIO-J";
};

&gpio2 {
	status = "okay";
	gpio-line-names = "GPIO-H",	"GPIO-I",
			  "GPIO-L",	"GPIO-G",
			  "GPIO-K",	"",
			  "",		"";
};

&gpio3 {
	status = "okay";
	gpio-line-names = "",		"",
			  "",		"",
			  "GPIO-C",	"",
			  "",		"GPIO-B";
};

&gpio4 {
	status = "okay";
	gpio-line-names = "",		"",
			  "",		"",
			  "",		"GPIO-D",
			  "",		"";
};

&gpio5 {
	status = "okay";
	gpio-line-names = "",		"USER-LED-1",
			  "USER-LED-2",	"",
			  "",		"GPIO-A",
			  "",		"";
};

&gpio6 {
	status = "okay";
	gpio-line-names = "",		"",
			  "",		"USER-LED-0",
			  "",		"",
			  "",		"";
};

&gpio10 {
	status = "okay";
	gpio-line-names = "",		"",
			  "",		"",
			  "",		"",
			  "USER-LED-3",	"";
};

&i2c0 {
	status = "okay";
	label = "LS-I2C0";
};

&i2c2 {
	status = "okay";
	label = "LS-I2C1";
};

&ir {
	status = "okay";
};

&ohci {
	status = "okay";
};

&pcie {
	reset-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
	vpcie-supply = <&reg_pcie>;
	status = "okay";
};

&sd0 {
	bus-width = <4>;
	cap-sd-highspeed;
	status = "okay";
};

&spi0 {
	status = "okay";
	label = "LS-SPI0";
};

&uart0 {
	status = "okay";
};

&uart2 {
	status = "okay";
	label = "LS-UART0";
};
/* No optional LS-UART1 on Low Speed Expansion Connector. */
