// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2018 Collabora Ltd.
 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd.
 *
 * Schematics available at https://dl.vamrs.com/products/ficus/docs/hw
 */

/dts-v1/;
#include "rk3399-rock960.dtsi"

/ {
	model = "96boards RK3399 Ficus";
	compatible = "vamrs,ficus", "rockchip,rk3399";

	chosen {
		stdout-path = "serial2:1500000n8";
	};

	clkin_gmac: external-gmac-clock {
		compatible = "fixed-clock";
		clock-frequency = <125000000>;
		clock-output-names = "clkin_gmac";
		#clock-cells = <0>;
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&user_led1>, <&user_led2>, <&user_led3>,
			    <&user_led4>, <&wlan_led>, <&bt_led>;

		user_led1 {
			label = "red:user1";
			gpios = <&gpio4 25 0>;
			linux,default-trigger = "heartbeat";
		};

		user_led2 {
			label = "red:user2";
			gpios = <&gpio4 26 0>;
			linux,default-trigger = "mmc0";
		};

		user_led3 {
			label = "red:user3";
			gpios = <&gpio4 30 0>;
			linux,default-trigger = "mmc1";
		};

		user_led4 {
			label = "red:user4";
			gpios = <&gpio1 0 0>;
			panic-indicator;
			linux,default-trigger = "none";
		};

		wlan_active_led {
			label = "red:wlan";
			gpios = <&gpio1 1 0>;
			linux,default-trigger = "phy0tx";
			default-state = "off";
		};

		bt_active_led {
			label = "red:bt";
			gpios = <&gpio1 4 0>;
			linux,default-trigger = "hci0-power";
			default-state = "off";
		};
	};
};

&gmac {
	assigned-clocks = <&cru SCLK_RMII_SRC>;
	assigned-clock-parents = <&clkin_gmac>;
	clock_in_out = "input";
	phy-supply = <&vcc3v3_sys>;
	phy-mode = "rgmii";
	pinctrl-names = "default";
	pinctrl-0 = <&rgmii_pins>;
	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
	snps,reset-active-low;
	snps,reset-delays-us = <0 10000 50000>;
	tx_delay = <0x28>;
	rx_delay = <0x11>;
	status = "okay";
};

&pcie0 {
	ep-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>;
};

&pinctrl {
	gmac {
		rgmii_sleep_pins: rgmii-sleep-pins {
			rockchip,pins =
				<3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>;
		};
	};

	pcie {
		pcie_drv: pcie-drv {
			rockchip,pins =
				<1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
			};
	};

	usb2 {
		host_vbus_drv: host-vbus-drv {
			rockchip,pins =
				<4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	leds {
		user_led1: user_led1 {
			rockchip,pins =
				<4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		user_led2: user_led2 {
			rockchip,pins =
				<4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		user_led3: user_led3 {
			rockchip,pins =
				<4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		user_led4: user_led4 {
			rockchip,pins =
				<1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		wlan_led: wlan_led {
			rockchip,pins =
				<1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		bt_led: bt_led {
			rockchip,pins =
				<1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};
};

&spi1 {
	/* On both Low speed and High speed expansion */
	cs-gpios = <0>, <&gpio4 RK_PA6 0>, <&gpio4 RK_PA7 0>;
	status = "okay";
};

&usbdrd_dwc3_0 {
	dr_mode = "host";
};

&usbdrd_dwc3_1 {
	dr_mode = "host";
};

&vcc3v3_pcie {
	gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>;
};

&vcc5v0_host {
	gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
};
