// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (C) 2021 Arm Ltd.
 */

/dts-v1/;

#include "sun50i-h616.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>

/ {
	model = "X96 Mate";
	compatible = "hechuang,x96-mate", "allwinner,sun50i-h616";

	aliases {
		serial0 = &uart0;
	};

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

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

&ehci0 {
	status = "okay";
};

&ehci2 {
	status = "okay";
};

&ir {
	status = "okay";
};

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

&mmc2 {
	vmmc-supply = <&reg_dcdce>;
	vqmmc-supply = <&reg_bldo1>;
	bus-width = <8>;
	non-removable;
	cap-mmc-hw-reset;
	mmc-ddr-1_8v;
	mmc-hs200-1_8v;
	status = "okay";
};

&ohci0 {
	status = "okay";
};

&ohci2 {
	status = "okay";
};

&r_rsb {
	status = "okay";

	axp305: pmic@745 {
		compatible = "x-powers,axp305", "x-powers,axp805",
			     "x-powers,axp806";
		interrupt-controller;
		#interrupt-cells = <1>;
		reg = <0x745>;

		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-sys";
			};

			/* Enabled by the Android BSP */
			reg_aldo2: aldo2 {
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc3v3-ext";
				status = "disabled";
			};

			/* Enabled by the Android BSP */
			reg_aldo3: aldo3 {
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc3v3-ext2";
				status = "disabled";
			};

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

			/* Enabled by the Android BSP */
			reg_bldo2: bldo2 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc1v8-2";
				status = "disabled";
			};

			bldo3 {
				/* unused */
			};

			bldo4 {
				/* unused */
			};

			cldo1 {
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <2500000>;
				regulator-name = "vcc2v5";
			};

			cldo2 {
				/* unused */
			};

			cldo3 {
				/* unused */
			};

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

			reg_dcdcc: dcdcc {
				regulator-always-on;
				regulator-min-microvolt = <810000>;
				regulator-max-microvolt = <990000>;
				regulator-name = "vdd-gpu-sys";
			};

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

			reg_dcdce: dcdce {
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc-eth-mmc";
			};

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

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

&usbotg {
	dr_mode = "host";	/* USB A type receptable */
	status = "okay";
};

&usbphy {
	status = "okay";
};
