// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * FriendlyElec NanoPC-T4 board device tree source
 *
 * Copyright (c) 2020 FriendlyElec Computer Tech. Co., Ltd.
 * (http://www.friendlyarm.com)
 *
 * Copyright (c) 2018 Collabora Ltd.
 *
 * Copyright (c) 2020 Jensen Huang <jensenhuang@friendlyarm.com>
 * Copyright (c) 2020 Marty Jones <mj8263788@gmail.com>
 * Copyright (c) 2021 Tianling Shen <cnsztl@gmail.com>
 */

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

/ {
	model = "FriendlyElec NanoPi R4S";
	compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399";

	/delete-node/ display-subsystem;

	gpio-leds {
		pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;

		/delete-node/ led-0;

		lan_led: led-lan {
			gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
			label = "green:lan";
		};

		sys_led: led-sys {
			gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
			label = "red:power";
			default-state = "on";
		};

		wan_led: led-wan {
			gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
			label = "green:wan";
		};
	};

	gpio-keys {
		pinctrl-0 = <&reset_button_pin>;

		/delete-node/ key-power;

		key-reset {
			debounce-interval = <50>;
			gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>;
			label = "reset";
			linux,code = <KEY_RESTART>;
		};
	};

	vdd_5v: vdd-5v {
		compatible = "regulator-fixed";
		regulator-name = "vdd_5v";
		regulator-always-on;
		regulator-boot-on;
	};
};

&emmc_phy {
	status = "disabled";
};

&i2c4 {
	status = "disabled";
};

&pcie0 {
	max-link-speed = <1>;
	num-lanes = <1>;
	vpcie3v3-supply = <&vcc3v3_sys>;
};

&pinctrl {
	gpio-leds {
		/delete-node/ status-led-pin;

		lan_led_pin: lan-led-pin {
			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		sys_led_pin: sys-led-pin {
			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		wan_led_pin: wan-led-pin {
			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	rockchip-key {
		/delete-node/ power-key;

		reset_button_pin: reset-button-pin {
			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
};

&sdhci {
	status = "disabled";
};

&sdio0 {
	status = "disabled";
};

&u2phy0_host {
	phy-supply = <&vdd_5v>;
};

&u2phy1_host {
	status = "disabled";
};

&uart0 {
	status = "disabled";
};

&usbdrd_dwc3_0 {
	dr_mode = "host";
};

&vcc3v3_sys {
	vin-supply = <&vcc5v0_sys>;
};
