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

/dts-v1/;

#include "sun50i-h616-orangepi-zero.dtsi"
#include "sun50i-h616-cpu-opp.dtsi"

/ {
	model = "OrangePi Zero2";
	compatible = "xunlong,orangepi-zero2", "allwinner,sun50i-h616";
};

&cpu0 {
	cpu-supply = <&reg_dcdca>;
};

&emac0 {
	allwinner,rx-delay-ps = <3100>;
	allwinner,tx-delay-ps = <700>;
	phy-mode = "rgmii";
	phy-supply = <&reg_dcdce>;
};

&mmc0 {
	vmmc-supply = <&reg_dcdce>;
};

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

			reg_aldo2: aldo2 {	/* 3.3V on headers */
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc3v3-ext";
			};

			reg_aldo3: aldo3 {	/* 3.3V on headers */
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc3v3-ext2";
			};

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

			bldo2 {
				/* unused */
			};

			bldo3 {
				/* unused */
			};

			bldo4 {
				/* unused */
			};

			cldo1 {
				/* reserved */
			};

			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 = <1500000>;
				regulator-max-microvolt = <1500000>;
				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 */
			};
		};
	};
};

&pio {
	vcc-pc-supply = <&reg_aldo1>;
	vcc-pf-supply = <&reg_aldo1>;
	vcc-pg-supply = <&reg_bldo1>;
	vcc-ph-supply = <&reg_aldo1>;
	vcc-pi-supply = <&reg_aldo1>;
};
