Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd
 */

#include "rk3399-sched-energy.dtsi"

/ {
	cluster0_opp: opp-table0 {
		compatible = "operating-points-v2";
		opp-shared;

		rockchip,temp-hysteresis = <5000>;
		rockchip,low-temp = <0>;
		rockchip,low-temp-min-volt = <900000>;

		nvmem-cells = <&cpul_leakage>, <&specification_serial_number>,
			      <&customer_demand>;
		nvmem-cell-names = "cpu_leakage",
				   "specification_serial_number",
				   "customer_demand";
		clocks = <&cru PLL_APLLL>;
		rockchip,avs-scale = <20>;
		rockchip,bin-scaling-sel = <
			0	30
			1	34
		>;

		rockchip,pvtm-voltage-sel = <
			0        143500   0
			143501   148500   1
			148501   152000   2
			152001   999999   3
		>;
		rockchip,pvtm-freq = <408000>;
		rockchip,pvtm-volt = <1000000>;
		rockchip,pvtm-ch = <0 0>;
		rockchip,pvtm-sample-time = <1000>;
		rockchip,pvtm-number = <10>;
		rockchip,pvtm-error = <1000>;
		rockchip,pvtm-ref-temp = <41>;
		rockchip,pvtm-temp-prop = <115 66>;
		rockchip,pvtm-thermal-zone = "soc-thermal";

		opp-408000000 {
			opp-hz = /bits/ 64 <408000000>;
			opp-microvolt = <825000 825000 1250000>;
			opp-microvolt-L0 = <825000 825000 1250000>;
			opp-microvolt-L1 = <825000 825000 1250000>;
			opp-microvolt-L2 = <825000 825000 1250000>;
			opp-microvolt-L3 = <825000 825000 1250000>;
			clock-latency-ns = <40000>;
		};
		opp-600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <825000 825000 1250000>;
			opp-microvolt-L0 = <825000 825000 1250000>;
			opp-microvolt-L1 = <825000 825000 1250000>;
			opp-microvolt-L2 = <825000 825000 1250000>;
			opp-microvolt-L3 = <825000 825000 1250000>;
			clock-latency-ns = <40000>;
		};
		opp-816000000 {
			opp-hz = /bits/ 64 <816000000>;
			opp-microvolt = <850000 850000 1250000>;
			opp-microvolt-L0 = <850000 850000 1250000>;
			opp-microvolt-L1 = <825000 825000 1250000>;
			opp-microvolt-L2 = <825000 825000 1250000>;
			opp-microvolt-L3 = <825000 825000 1250000>;
			clock-latency-ns = <40000>;
			opp-suspend;
		};
		opp-1008000000 {
			opp-hz = /bits/ 64 <1008000000>;
			opp-microvolt = <925000 925000 1250000>;
			opp-microvolt-L0 = <925000 925000 1250000>;
			opp-microvolt-L1 = <900000 900000 1250000>;
			opp-microvolt-L2 = <875000 875000 1250000>;
			opp-microvolt-L3 = <850000 850000 1250000>;
			clock-latency-ns = <40000>;
		};
		opp-1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <1000000 1000000 1250000>;
			opp-microvolt-L0 = <1000000 1000000 1250000>;
			opp-microvolt-L1 = <975000 975000 1250000>;
			opp-microvolt-L2 = <950000 950000 1250000>;
			opp-microvolt-L3 = <925000 925000 1250000>;
			clock-latency-ns = <40000>;
		};
		opp-1416000000 {
			opp-hz = /bits/ 64 <1416000000>;
			opp-microvolt = <1125000 1125000 1250000>;
			opp-microvolt-L0 = <1125000 1125000 1250000>;
			opp-microvolt-L1 = <1100000 1100000 1250000>;
			opp-microvolt-L2 = <1075000 1075000 1200000>;
			opp-microvolt-L3 = <1050000 1050000 1250000>;
			clock-latency-ns = <40000>;
		};
	};

	cluster1_opp: opp-table1 {
		compatible = "operating-points-v2";
		opp-shared;

		rockchip,temp-hysteresis = <5000>;
		rockchip,low-temp = <0>;
		rockchip,low-temp-min-volt = <900000>;

		nvmem-cells = <&cpub_leakage>, <&specification_serial_number>,
			      <&customer_demand>;
		nvmem-cell-names = "cpu_leakage",
				   "specification_serial_number",
				   "customer_demand";
		clocks = <&cru PLL_APLLB>;
		rockchip,avs-scale = <8>;
		rockchip,bin-scaling-sel = <
			0	8
			1	17
		>;

		rockchip,pvtm-voltage-sel = <
			0        149000   0
			149001   155000   1
			155001   159000   2
			159001   161000   3
			161001   999999   4
		>;
		rockchip,pvtm-freq = <408000>;
		rockchip,pvtm-volt = <1000000>;
		rockchip,pvtm-ch = <1 0>;
		rockchip,pvtm-sample-time = <1000>;
		rockchip,pvtm-number = <10>;
		rockchip,pvtm-error = <1000>;
		rockchip,pvtm-ref-temp = <41>;
		rockchip,pvtm-temp-prop = <71 35>;
		rockchip,pvtm-thermal-zone = "soc-thermal";

		opp-408000000 {
			opp-hz = /bits/ 64 <408000000>;
			opp-microvolt = <825000 825000 1250000>;
			opp-microvolt-L0 = <825000 825000 1250000>;
			opp-microvolt-L1 = <825000 825000 1250000>;
			opp-microvolt-L2 = <825000 825000 1250000>;
			opp-microvolt-L3 = <825000 825000 1250000>;
			opp-microvolt-L4 = <825000 825000 1250000>;
			clock-latency-ns = <40000>;
		};
		opp-600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <825000 825000 1250000>;
			opp-microvolt-L0 = <825000 825000 1250000>;
			opp-microvolt-L1 = <825000 825000 1250000>;
			opp-microvolt-L2 = <825000 825000 1250000>;
			opp-microvolt-L3 = <825000 825000 1250000>;
			opp-microvolt-L4 = <825000 825000 1250000>;
			clock-latency-ns = <40000>;
		};
		opp-816000000 {
			opp-hz = /bits/ 64 <816000000>;
			opp-microvolt = <825000 825000 1250000>;
			opp-microvolt-L0 = <825000 825000 1250000>;
			opp-microvolt-L1 = <825000 825000 1250000>;
			opp-microvolt-L2 = <825000 825000 1250000>;
			opp-microvolt-L3 = <825000 825000 1250000>;
			opp-microvolt-L4 = <825000 825000 1250000>;
			clock-latency-ns = <40000>;
			opp-suspend;
		};
		opp-1008000000 {
			opp-hz = /bits/ 64 <1008000000>;
			opp-microvolt = <875000 875000 1250000>;
			opp-microvolt-L0 = <875000 875000 1250000>;
			opp-microvolt-L1 = <850000 850000 1250000>;
			opp-microvolt-L2 = <850000 850000 1250000>;
			opp-microvolt-L3 = <850000 850000 1250000>;
			opp-microvolt-L4 = <850000 850000 1250000>;
			clock-latency-ns = <40000>;
		};
		opp-1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <950000 950000 1250000>;
			opp-microvolt-L0 = <950000 950000 1250000>;
			opp-microvolt-L1 = <925000 925000 1250000>;
			opp-microvolt-L2 = <900000 900000 1250000>;
			opp-microvolt-L3 = <875000 875000 1250000>;
			opp-microvolt-L4 = <875000 875000 1250000>;
			clock-latency-ns = <40000>;
		};
		opp-1416000000 {
			opp-hz = /bits/ 64 <1416000000>;
			opp-microvolt = <1025000 1025000 1250000>;
			opp-microvolt-L0 = <1025000 1025000 1250000>;
			opp-microvolt-L1 = <1000000 1000000 1250000>;
			opp-microvolt-L2 = <1000000 1000000 1250000>;
			opp-microvolt-L3 = <975000 975000 1250000>;
			opp-microvolt-L4 = <975000 975000 1250000>;
			clock-latency-ns = <40000>;
		};
		opp-1608000000 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <1100000 1100000 1250000>;
			opp-microvolt-L0 = <1100000 1100000 1250000>;
			opp-microvolt-L1 = <1075000 1075000 1250000>;
			opp-microvolt-L2 = <1050000 1050000 1250000>;
			opp-microvolt-L3 = <1025000 1025000 1250000>;
			opp-microvolt-L4 = <1025000 1025000 1250000>;
			clock-latency-ns = <40000>;
		};
		opp-1800000000 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <1200000 1200000 1250000>;
			opp-microvolt-L0 = <1200000 1200000 1250000>;
			opp-microvolt-L1 = <1175000 1175000 1250000>;
			opp-microvolt-L2 = <1150000 1150000 1250000>;
			opp-microvolt-L3 = <1125000 1125000 1250000>;
			opp-microvolt-L4 = <1100000 1100000 1250000>;
			clock-latency-ns = <40000>;
		};
	};

	gpu_opp_table: opp-table2 {
		compatible = "operating-points-v2";

		rockchip,thermal-zone = "soc-thermal";
		rockchip,temp-hysteresis = <5000>;
		rockchip,low-temp = <0>;
		rockchip,low-temp-min-volt = <900000>;

		nvmem-cells = <&gpu_leakage>;
		nvmem-cell-names = "gpu_leakage";

		rockchip,pvtm-voltage-sel = <
			0        121000   0
			121001   125500   1
			125501   128500   2
			128501   999999   3
		>;
		rockchip,pvtm-freq = <200000>;
		rockchip,pvtm-volt = <900000>;
		rockchip,pvtm-ch = <3 0>;
		rockchip,pvtm-sample-time = <1000>;
		rockchip,pvtm-number = <10>;
		rockchip,pvtm-error = <1000>;
		rockchip,pvtm-ref-temp = <41>;
		rockchip,pvtm-temp-prop = <46 12>;
		rockchip,pvtm-thermal-zone = "gpu-thermal";

		opp-200000000 {
			opp-hz = /bits/ 64 <200000000>;
			opp-microvolt = <825000>;
			opp-microvolt-L0 = <825000>;
			opp-microvolt-L1 = <825000>;
			opp-microvolt-L2 = <825000>;
			opp-microvolt-L3 = <825000>;
		};
		opp-300000000 {
			opp-hz = /bits/ 64 <300000000>;
			opp-microvolt = <825000>;
			opp-microvolt-L0 = <825000>;
			opp-microvolt-L1 = <825000>;
			opp-microvolt-L2 = <825000>;
			opp-microvolt-L3 = <825000>;
		};
		opp-400000000 {
			opp-hz = /bits/ 64 <400000000>;
			opp-microvolt = <825000>;
			opp-microvolt-L0 = <825000>;
			opp-microvolt-L1 = <825000>;
			opp-microvolt-L2 = <825000>;
			opp-microvolt-L3 = <825000>;
		};
		opp-600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <925000>;
			opp-microvolt-L0 = <925000>;
			opp-microvolt-L1 = <925000>;
			opp-microvolt-L2 = <900000>;
			opp-microvolt-L3 = <900000>;
		};
		opp-800000000 {
			opp-hz = /bits/ 64 <800000000>;
			opp-microvolt = <1100000>;
			opp-microvolt-L0 = <1100000>;
			opp-microvolt-L1 = <1075000>;
			opp-microvolt-L2 = <1050000>;
			opp-microvolt-L3 = <1025000>;
		};
	};

	dmc_opp_table: opp-table3 {
		compatible = "operating-points-v2";

		opp-200000000 {
			opp-hz = /bits/ 64 <200000000>;
			opp-microvolt = <900000>;
		};
		opp-300000000 {
			opp-hz = /bits/ 64 <300000000>;
			opp-microvolt = <900000>;
		};
		opp-400000000 {
			opp-hz = /bits/ 64 <400000000>;
			opp-microvolt = <900000>;
		};
		opp-528000000 {
			opp-hz = /bits/ 64 <528000000>;
			opp-microvolt = <900000>;
		};
		opp-600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <900000>;
		};
		opp-800000000 {
			opp-hz = /bits/ 64 <800000000>;
			opp-microvolt = <900000>;
		};
	};
};

&cpu_l0 {
	operating-points-v2 = <&cluster0_opp>;
	sched-energy-costs = <&RK3399_CPU_COST_0 &RK3399_CLUSTER_COST_0>;
};

&cpu_l1 {
	operating-points-v2 = <&cluster0_opp>;
	sched-energy-costs = <&RK3399_CPU_COST_0 &RK3399_CLUSTER_COST_0>;
};

&cpu_l2 {
	operating-points-v2 = <&cluster0_opp>;
	sched-energy-costs = <&RK3399_CPU_COST_0 &RK3399_CLUSTER_COST_0>;
};

&cpu_l3 {
	operating-points-v2 = <&cluster0_opp>;
	sched-energy-costs = <&RK3399_CPU_COST_0 &RK3399_CLUSTER_COST_0>;
};

&cpu_b0 {
	operating-points-v2 = <&cluster1_opp>;
	sched-energy-costs = <&RK3399_CPU_COST_1 &RK3399_CLUSTER_COST_1>;
};

&cpu_b1 {
	operating-points-v2 = <&cluster1_opp>;
	sched-energy-costs = <&RK3399_CPU_COST_1 &RK3399_CLUSTER_COST_1>;
};

&dmc {
	operating-points-v2 = <&dmc_opp_table>;
};

&gpu {
	operating-points-v2 = <&gpu_opp_table>;
};