// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

#include "qca955x.dtsi"

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

/ {
	keys {
		compatible = "gpio-keys";

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

	leds {
		compatible = "gpio-leds";

		wps {
			function = LED_FUNCTION_WPS;
			color = <LED_COLOR_ID_BLUE>;
			gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
		};

		network {
			label = "blue:network";
			gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
		};

		wlan2g {
			label = "blue:wlan2";
			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "phy1tpt";
		};

		wlan5g {
			label = "blue:wlan5";
			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "phy0tpt";
		};
	};

	watchdog {
		compatible = "linux,wdt-gpio";
		gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
		hw_algo = "toggle";
		hw_margin_ms = <500>;
		always-running;
	};
};

&pcie0 {
	status = "okay";
};

&usb_phy0 {
	status = "okay";
};

&usb0 {
	status = "okay";
};

&mdio0 {
	status = "okay";

	switch0@1f {
		compatible = "qca,ar8327";
		reg = <0x1f>;
		qca,ar8327-initvals = <
			0x04 0x87600000 /* PORT0 PAD MODE CTRL */
			0x0c 0x00080080 /* PORT6 PAD MODE CTRL */
			0x10 0x81000080 /* POWER_ON_STRAP */
			0x7c 0x0000007e /* PORT0_STATUS */
			0x94 0x0000007e /* PORT6 STATUS */
			>;
	};
};

&eth0 {
	status = "okay";

	pll-data = <0xa6000000 0x00000101 0x00001616>;

	fixed-link {
		speed = <1000>;
		full-duplex;
	};
};

&eth1 {
	status = "okay";

	pll-data = <0x03000101 0x00000101 0x00001616>;

	fixed-link {
		speed = <1000>;
		full-duplex;
	};
};

&wmac {
	status = "okay";
};

// This node is required for the Ethernet ports to work correctly.
&gpio {
	status = "okay";
};