// SPDX-License-Identifier: (GPL-2.0+ or MIT)
/*
 * Copyright (C) 2019 Clément Péron <peron.clem@gmail.com>
 */

/dts-v1/;

#include "sun50i-h6.dtsi"

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

/ {
	model = "Beelink GS1";
	compatible = "azw,beelink-gs1", "allwinner,sun50i-h6";

	aliases {
		ethernet0 = &emac;
		serial0 = &uart0;
	};

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

	connector {
		compatible = "hdmi-connector";
		type = "a";
		ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */

		port {
			hdmi_con_in: endpoint {
				remote-endpoint = <&hdmi_out_con>;
			};
		};
	};

	leds {
		compatible = "gpio-leds";

		power {
			label = "beelink:white:power";
			gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
			default-state = "on";
		};
	};

	reg_vcc5v: vcc5v {
		/* board wide 5V supply directly from the DC jack */
		compatible = "regulator-fixed";
		regulator-name = "vcc-5v";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
	};

	sound-spdif {
		compatible = "simple-audio-card";
		simple-audio-card,name = "sun50i-h6-spdif";

		simple-audio-card,cpu {
			sound-dai = <&spdif>;
		};

		simple-audio-card,codec {
			sound-dai = <&spdif_out>;
		};
	};

	spdif_out: spdif-out {
		#sound-dai-cells = <0>;
		compatible = "linux,spdif-dit";
	};
};

&de {
	status = "okay";
};

&ehci0 {
	status = "okay";
};

&emac {
	pinctrl-names = "default";
	pinctrl-0 = <&ext_rgmii_pins>;
	phy-mode = "rgmii";
	phy-handle = <&ext_rgmii_phy>;
	phy-supply = <&reg_aldo2>;
	status = "okay";
};

&hdmi {
	status = "okay";
};

&hdmi_out {
	hdmi_out_con: endpoint {
		remote-endpoint = <&hdmi_con_in>;
	};
};

&mdio {
	ext_rgmii_phy: ethernet-phy@1 {
		compatible = "ethernet-phy-ieee802.3-c22";
		reg = <1>;
	};
};

&mmc0 {
	vmmc-supply = <&reg_cldo1>;
	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
	bus-width = <4>;
	status = "okay";
};

&mmc2 {
	vmmc-supply = <&reg_cldo1>;
	vqmmc-supply = <&reg_bldo2>;
	non-removable;
	cap-mmc-hw-reset;
	bus-width = <8>;
	status = "okay";
};

&ohci0 {
	status = "okay";
};

&pio {
	vcc-pd-supply = <&reg_cldo1>;
	vcc-pg-supply = <&reg_aldo1>;
};

&r_i2c {
	status = "okay";

	axp805: pmic@36 {
		compatible = "x-powers,axp805", "x-powers,axp806";
		reg = <0x36>;
		interrupt-parent = <&r_intc>;
		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
		interrupt-controller;
		#interrupt-cells = <1>;
		x-powers,self-working-mode;
		vina-supply = <&reg_vcc5v>;
		vinb-supply = <&reg_vcc5v>;
		vinc-supply = <&reg_vcc5v>;
		vind-supply = <&reg_vcc5v>;
		vine-supply = <&reg_vcc5v>;
		aldoin-supply = <&reg_vcc5v>;
		bldoin-supply = <&reg_vcc5v>;
		cldoin-supply = <&reg_vcc5v>;

		regulators {
			reg_aldo1: aldo1 {
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc-pl";
			};

			reg_aldo2: aldo2 {
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc-ac200";
				regulator-enable-ramp-delay = <100000>;
			};

			reg_aldo3: aldo3 {
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc25-dram";
			};

			reg_bldo1: bldo1 {
				regulator-always-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc-bias-pll";
			};

			reg_bldo2: bldo2 {
				regulator-always-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc-efuse-pcie-hdmi-io";
			};

			reg_bldo3: bldo3 {
				regulator-always-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc-dcxoio";
			};

			bldo4 {
				/* unused */
			};

			reg_cldo1: cldo1 {
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc-3v3";
			};

			reg_cldo2: cldo2 {
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc-wifi-1";
			};

			reg_cldo3: cldo3 {
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc-wifi-2";
			};

			reg_dcdca: dcdca {
				regulator-always-on;
				regulator-min-microvolt = <810000>;
				regulator-max-microvolt = <1080000>;
				regulator-name = "vdd-cpu";
			};

			reg_dcdcc: dcdcc {
				regulator-min-microvolt = <810000>;
				regulator-max-microvolt = <1080000>;
				regulator-name = "vdd-gpu";
			};

			reg_dcdcd: dcdcd {
				regulator-always-on;
				regulator-min-microvolt = <960000>;
				regulator-max-microvolt = <960000>;
				regulator-name = "vdd-sys";
			};

			reg_dcdce: dcdce {
				regulator-always-on;
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-name = "vcc-dram";
			};

			sw {
				/* unused */
			};
		};
	};
};

&r_ir {
	status = "okay";
};

&r_pio {
	/*
	 * PL0 and PL1 are used for PMIC I2C
	 * don't enable the pl-supply else
	 * it will fail at boot
	 *
	 * vcc-pl-supply = <&reg_aldo1>;
	 */
	vcc-pm-supply = <&reg_aldo1>;
};

&spdif {
	status = "okay";
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_ph_pins>;
	status = "okay";
};

&usb2otg {
	dr_mode = "host";
	status = "okay";
};

&usb2phy {
	usb0_vbus-supply = <&reg_vcc5v>;
	status = "okay";
};
