// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2016 Endless Computers, Inc.
 * Author: Carlo Caione <carlo@endlessm.com>
 */

/dts-v1/;

#include <dt-bindings/input/input.h>

#include "meson-gxm.dtsi"
#include "meson-gx-p23x-q20x.dtsi"

/ {
	compatible = "amlogic,q200", "amlogic,s912", "amlogic,meson-gxm";
	model = "Amlogic Meson GXM (S912) Q200 Development Board";

	adc-keys {
		compatible = "adc-keys";
		io-channels = <&saradc 0>;
		io-channel-names = "buttons";
		keyup-threshold-microvolt = <1710000>;

		button-function {
			label = "Update";
			linux,code = <KEY_VENDOR>;
			press-threshold-microvolt = <10000>;
		};
	};

	gpio-keys-polled {
		compatible = "gpio-keys-polled";
		poll-interval = <100>;

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

/* Q200 has exclusive choice between internal or external PHY */
&ethmac {
	pinctrl-0 = <&eth_pins>;
	pinctrl-names = "default";

	/* Select external PHY by default */
	phy-handle = <&external_phy>;

	amlogic,tx-delay-ns = <2>;

	/* External PHY is in RGMII */
	phy-mode = "rgmii";
};

&external_mdio {
	external_phy: ethernet-phy@0 {
		/* Realtek RTL8211F (0x001cc916) */
		reg = <0>;
		max-speed = <1000>;

		/* External PHY reset is shared with internal PHY Led signal */
		reset-assert-us = <10000>;
		reset-deassert-us = <80000>;
		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;

		interrupt-parent = <&gpio_intc>;
		/* MAC_INTR on GPIOZ_15 */
		interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
	};
};

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