// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause

/dts-v1/;

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

#include "ipq5018.dtsi"

/ {
	model = "TP-Link Archer AX55 v1";
	compatible = "tplink,archer-ax55-v1", "qcom,ipq5018";

	aliases {
		serial0 = &blsp1_uart1;
	};

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

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

		led-0 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_LAN;
			gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
		};

		led-1 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_WAN_ONLINE;
			gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
		};

		led-2 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_WLAN_2GHZ;
			gpios = <&tlmm 13 GPIO_ACTIVE_HIGH>;
		};

		led-3 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_POWER;
			gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
		};

		led-4 {
			color = <LED_COLOR_ID_ORANGE>;
			function = LED_FUNCTION_WAN;
			gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
		};

		led-5 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_USB;
			gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
		};

		led-6 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_WLAN_5GHZ;
			gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
		};
	};

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

		button-reset {
			debounce-interval = <60>;
			gpios = <&tlmm 25 GPIO_ACTIVE_LOW>;
			label = "reset";
			linux,code = <KEY_RESTART>;
		};

		button-wps {
			debounce-interval = <60>;
			gpios = <&tlmm 31 GPIO_ACTIVE_LOW>;
			label = "wps";
			linux,code = <KEY_WPS_BUTTON>;
		};
	};
};

&blsp1_uart1 {
	pinctrl-0 = <&uart_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&sleep_clk {
	clock-frequency = <32000>;
};

&tlmm {
	button_pins: button-pins-state {
		pins = "gpio25", "gpio31";
		function = "gpio";
		drive-strength = <8>;
		bias-pull-up;
	};

	led_pins: led-pins-state {
		pins = "gpio10", "gpio11", "gpio13", "gpio18", "gpio22",
		       "gpio38", "gpio39";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	uart_pins: uart-pins-state {
		pins = "gpio20", "gpio21";
		function = "blsp0_uart0";
		drive-strength = <8>;
		bias-disable;
	};
};

&xo_board_clk {
	clock-frequency = <24000000>;
};
