// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
// Copyright (C) 2020 Ondrej Jirman <megous@megous.com>
// Copyright (C) 2020 Clément Péron <peron.clem@gmail.com>

/ {
	cpu_opp_table: opp-table-cpu {
		compatible = "allwinner,sun50i-h6-operating-points";
		nvmem-cells = <&cpu_speed_grade>;
		opp-shared;

		opp-480000000 {
			clock-latency-ns = <244144>; /* 8 32k periods */
			opp-hz = /bits/ 64 <480000000>;

			opp-microvolt-speed0 = <880000 880000 1200000>;
			opp-microvolt-speed1 = <820000 820000 1200000>;
			opp-microvolt-speed2 = <820000 820000 1200000>;
		};

		opp-720000000 {
			clock-latency-ns = <244144>; /* 8 32k periods */
			opp-hz = /bits/ 64 <720000000>;

			opp-microvolt-speed0 = <880000 880000 1200000>;
			opp-microvolt-speed1 = <820000 820000 1200000>;
			opp-microvolt-speed2 = <820000 820000 1200000>;
		};

		opp-816000000 {
			clock-latency-ns = <244144>; /* 8 32k periods */
			opp-hz = /bits/ 64 <816000000>;

			opp-microvolt-speed0 = <880000 880000 1200000>;
			opp-microvolt-speed1 = <820000 820000 1200000>;
			opp-microvolt-speed2 = <820000 820000 1200000>;
		};

		opp-888000000 {
			clock-latency-ns = <244144>; /* 8 32k periods */
			opp-hz = /bits/ 64 <888000000>;

			opp-microvolt-speed0 = <880000 880000 1200000>;
			opp-microvolt-speed1 = <820000 820000 1200000>;
			opp-microvolt-speed2 = <820000 820000 1200000>;
		};

		opp-1080000000 {
			clock-latency-ns = <244144>; /* 8 32k periods */
			opp-hz = /bits/ 64 <1080000000>;

			opp-microvolt-speed0 = <940000 940000 1200000>;
			opp-microvolt-speed1 = <880000 880000 1200000>;
			opp-microvolt-speed2 = <880000 880000 1200000>;
		};

		opp-1320000000 {
			clock-latency-ns = <244144>; /* 8 32k periods */
			opp-hz = /bits/ 64 <1320000000>;

			opp-microvolt-speed0 = <1000000 1000000 1200000>;
			opp-microvolt-speed1 = <940000 940000 1200000>;
			opp-microvolt-speed2 = <940000 940000 1200000>;
		};

		opp-1488000000 {
			clock-latency-ns = <244144>; /* 8 32k periods */
			opp-hz = /bits/ 64 <1488000000>;

			opp-microvolt-speed0 = <1060000 1060000 1200000>;
			opp-microvolt-speed1 = <1000000 1000000 1200000>;
			opp-microvolt-speed2 = <1000000 1000000 1200000>;
		};

		opp-1608000000 {
			clock-latency-ns = <244144>; /* 8 32k periods */
			opp-hz = /bits/ 64 <1608000000>;

			opp-microvolt-speed0 = <1090000 1090000 1200000>;
			opp-microvolt-speed1 = <1030000 1030000 1200000>;
			opp-microvolt-speed2 = <1030000 1030000 1200000>;
		};

		opp-1704000000 {
			clock-latency-ns = <244144>; /* 8 32k periods */
			opp-hz = /bits/ 64 <1704000000>;

			opp-microvolt-speed0 = <1120000 1120000 1200000>;
			opp-microvolt-speed1 = <1060000 1060000 1200000>;
			opp-microvolt-speed2 = <1060000 1060000 1200000>;
		};

		opp-1800000000 {
			clock-latency-ns = <244144>; /* 8 32k periods */
			opp-hz = /bits/ 64 <1800000000>;

			opp-microvolt-speed0 = <1160000 1160000 1200000>;
			opp-microvolt-speed1 = <1100000 1100000 1200000>;
			opp-microvolt-speed2 = <1100000 1100000 1200000>;
		};
	};
};

&cpu0 {
	operating-points-v2 = <&cpu_opp_table>;
};

&cpu1 {
	operating-points-v2 = <&cpu_opp_table>;
};

&cpu2 {
	operating-points-v2 = <&cpu_opp_table>;
};

&cpu3 {
	operating-points-v2 = <&cpu_opp_table>;
};