// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Author: Christian Hewitt <christianshewitt@gmail.com>
 */

/dts-v1/;

#include "meson-gxl-s905d.dtsi"
#include "meson-gx-p23x-q20x.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>

/ {
	compatible = "osmc,vero4k-plus", "amlogic,s905d", "amlogic,meson-gxl";
	model = "OSMC Vero 4K Plus";

	gpio-keys-polled {
		compatible = "gpio-keys-polled";
		#address-cells = <1>;
		#size-cells = <0>;
		poll-interval = <20>;

		button@0 {
			label = "power";
			linux,code = <KEY_POWER>;
			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
		};
	};

	leds {
		compatible = "gpio-leds";

		led-standby {
			color = <LED_COLOR_ID_RED>;
			function = LED_FUNCTION_POWER;
			gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_LOW>;
			default-state = "off";
			panic-indicator;
		};
	};
};

&ethmac {
	pinctrl-0 = <&eth_pins>;
	pinctrl-names = "default";

	phy-mode = "rgmii-txid";
	phy-handle = <&external_phy>;

	amlogic,tx-delay-ns = <0>;
};

&external_mdio {
	external_phy: ethernet-phy@0 {
		/* Realtek RTL8211F (0x001cc916) */
		pinctrl-0 = <&eth_phy_irq_pin>;
		pinctrl-names = "default";

		reg = <0>;
		max-speed = <1000>;

		reset-assert-us = <10000>;
		reset-deassert-us = <80000>;
		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;

		interrupt-parent = <&gpio_intc>;
		interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
	};
};

&pinctrl_periphs {
	/* Ensure the phy irq pin is properly configured as input */
	eth_phy_irq_pin: eth-phy-irq {
		mux {
			groups = "GPIOZ_15";
			function = "gpio_periphs";
			bias-disable;
			output-disable;
		};
	};
};

&sd_emmc_a {
	brcmf: wifi@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
	};
};

&uart_A {
	status = "okay";
	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
	pinctrl-names = "default";
	uart-has-rtscts;

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
		max-speed = <2000000>;
		clocks = <&wifi32k>;
		clock-names = "lpo";
	};
};

&usb {
	dr_mode = "host";
};

&usb2_phy0 {
	/* HDMI_5V also supplies the USB VBUS */
	phy-supply = <&hdmi_5v>;
};

&usb2_phy0 {
	/* HDMI_5V also supplies the USB VBUS */
	phy-supply = <&hdmi_5v>;
};
