#include <dt-bindings/leds/common.h>

#include "qcom-ipq8064-ad7200-c2600.dtsi"

/ {
	model = "TP-Link Archer C2600";
	compatible = "tplink,c2600", "qcom,ipq8064";

	aliases {
		led-boot = &power;
		led-failsafe = &general;
		led-running = &power;
		led-upgrade = &general;
	};

	keys {
		compatible = "gpio-keys";
		pinctrl-0 = <&button_pins>;
		pinctrl-names = "default";

		wifi {
			label = "wifi";
			gpios = <&qcom_pinmux 49 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_RFKILL>;
			debounce-interval = <60>;
			wakeup-source;
		};

		reset {
			label = "reset";
			gpios = <&qcom_pinmux 64 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_RESTART>;
			debounce-interval = <60>;
			wakeup-source;
		};

		wps {
			label = "wps";
			gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_WPS_BUTTON>;
			debounce-interval = <60>;
			wakeup-source;
		};

		ledswitch {
			label = "ledswitch";
			gpios = <&qcom_pinmux 16 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_LIGHTS_TOGGLE>;
			debounce-interval = <60>;
			wakeup-source;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&led_pins>;
		pinctrl-names = "default";

		lan {
			function = LED_FUNCTION_LAN;
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&qcom_pinmux 6 GPIO_ACTIVE_HIGH>;
		};

		usb4 {
			label = "white:usb_4";
			gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
		};

		usb2 {
			label = "white:usb_2";
			gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
		};

		wps {
			function = LED_FUNCTION_WPS;
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
		};

		wan_amber {
			function = LED_FUNCTION_WAN;
			color = <LED_COLOR_ID_AMBER>;
			gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>;
		};

		wan_white {
			function = LED_FUNCTION_WAN;
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&qcom_pinmux 33 GPIO_ACTIVE_LOW>;
		};

		power: power {
			function = LED_FUNCTION_POWER;
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
		};

		general: general {
			label = "white:general";
			gpios = <&qcom_pinmux 66 GPIO_ACTIVE_HIGH>;
		};
	};
};

&qcom_pinmux {
	button_pins: button_pins {
		mux {
			pins = "gpio16", "gpio54", "gpio65";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	led_pins: led_pins {
		mux {
			pins = "gpio6", "gpio7", "gpio8", "gpio9", "gpio26", "gpio33",
					"gpio53", "gpio66";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};
};
