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

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

#include "qca9558_devolo_dvl1xxx.dtsi"

/ {
	compatible = "devolo,dvl1750e", "qca,qca9558";
	model = "devolo WiFi pro 1750e";

	aliases {
		led-boot = &led_status_blue;
		led-failsafe = &led_status_red;
		led-running = &led_status_blue;
		led-upgrade = &led_status_red;
	};

	keys {
		wps {
			label = "WPS Button";
			linux,code = <KEY_WPS_BUTTON>;
			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
			debounce-interval = <60>;
		};

		usb_eject {
			label = "USB Eject Button";
			linux,code = <BTN_0>;
			linux,input-type = <EV_SW>;
			gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
			debounce-interval = <60>;
		};
	};

	leds {
		compatible = "gpio-leds";

		led_status_blue: status_blue {
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_BLUE>;
			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
			default-state = "on";
		};

		led_status_red: status_red {
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_RED>;
			gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
		};
	};

	beeper {
		compatible = "gpio-beeper";
		gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
	};

	gpio_export {
		compatible = "gpio-export";

		gpio_usb_power {
			gpio-export,name = "devolo:power:usb";
			gpio-export,output = <1>;
			gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
		};
	};
};

&usb_phy0 {
	status = "okay";
};

&usb0 {
	status = "okay";
};

&eth0 {
	pll-data = <0xae000000 0x80000101 0x80001313>;
	phy-mode = "rgmii-rxid";
};

&gmac_config {
	rxdv-delay = <3>;
	rxd-delay = <3>;
	txen-delay = <0>;
	txd-delay = <0>;
};

&mdio1 {
	status = "okay";

	phy1: ethernet-phy@1 {
		reg = <1>;
		at803x-override-sgmii-link-check;
	};
};

&eth1 {
	status = "okay";

	nvmem-cells = <&macaddr_art_0 1>;
	nvmem-cell-names = "mac-address";

	phy-handle = <&phy1>;
	pll-data = <0x03000101 0x00000101 0x00001313>;

	qca955x-sgmii-fixup;
};