// 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-table-0 { compatible = "operating-points-v2"; opp-shared; rockchip,temp-hysteresis = <5000>; rockchip,low-temp = <10000>; rockchip,low-temp-min-volt = <900000>; nvmem-cells = <&cpul_leakage>, <&specification_serial_number>, <&customer_demand>; nvmem-cell-names = "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-table-1 { compatible = "operating-points-v2"; opp-shared; rockchip,temp-hysteresis = <5000>; rockchip,low-temp = <10000>; rockchip,low-temp-min-volt = <900000>; nvmem-cells = <&cpub_leakage>, <&specification_serial_number>, <&customer_demand>; nvmem-cell-names = "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-table-2 { compatible = "operating-points-v2"; rockchip,thermal-zone = "soc-thermal"; rockchip,temp-hysteresis = <5000>; rockchip,low-temp = <10000>; rockchip,low-temp-min-volt = <900000>; nvmem-cells = <&gpu_leakage>; nvmem-cell-names = "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 825000 1150000>; opp-microvolt-L0 = <825000 825000 1150000>; opp-microvolt-L1 = <825000 825000 1150000>; opp-microvolt-L2 = <825000 825000 1150000>; opp-microvolt-L3 = <825000 825000 1150000>; }; opp-300000000 { opp-hz = /bits/ 64 <300000000>; opp-microvolt = <825000 825000 1150000>; opp-microvolt-L0 = <825000 825000 1150000>; opp-microvolt-L1 = <825000 825000 1150000>; opp-microvolt-L2 = <825000 825000 1150000>; opp-microvolt-L3 = <825000 825000 1150000>; }; opp-400000000 { opp-hz = /bits/ 64 <400000000>; opp-microvolt = <825000 825000 1150000>; opp-microvolt-L0 = <825000 825000 1150000>; opp-microvolt-L1 = <825000 825000 1150000>; opp-microvolt-L2 = <825000 825000 1150000>; opp-microvolt-L3 = <825000 825000 1150000>; }; opp-600000000 { opp-hz = /bits/ 64 <600000000>; opp-microvolt = <925000 925000 1150000>; opp-microvolt-L0 = <925000 925000 1150000>; opp-microvolt-L1 = <925000 925000 1150000>; opp-microvolt-L2 = <900000 900000 1150000>; opp-microvolt-L3 = <900000 900000 1150000>; }; opp-800000000 { opp-hz = /bits/ 64 <800000000>; opp-microvolt = <1100000 1100000 1150000>; opp-microvolt-L0 = <1100000 1100000 1150000>; opp-microvolt-L1 = <1075000 1075000 1150000>; opp-microvolt-L2 = <1050000 1050000 1150000>; opp-microvolt-L3 = <1025000 1025000 1150000>; }; }; dmc_opp_table: opp-table-3 { 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>; };