arm64: dts: rockchip: rk356x: adjust opp-table for correlation chips

1. limit vmin of cpu/gpu/npu/logic by mbist_vmin.
2. raise vdd_logic when npu run at 1.0GHz or venc run at 400MHz.
3. disable npu@1.0GHz and venc@400MHz by default.
4. reduce vdd_logic for the chips with big leakage.
5. adjust low-temp-adjust-volt table.

Change-Id: If7ce6f010422d20e2dfd643a6894fa7304e6372f
Signed-off-by: Liang Chen <cl@rock-chips.com>
This commit is contained in:
Liang Chen
2021-05-28 10:43:00 +08:00
committed by Tao Huang
parent 1d4f962b53
commit 754a02572a
3 changed files with 125 additions and 12 deletions

View File

@@ -34,6 +34,8 @@
opp-1056000000 {
opp-hz = /bits/ 64 <1056000000>;
opp-microvolt = <900000>;
opp-microvolt-L0 = <900000>;
opp-microvolt-L1 = <850000>;
};
/delete-node/ opp-1560000000;
};

View File

@@ -338,6 +338,12 @@
};
};
&bus_npu {
bus-supply = <&vdd_logic>;
pvtm-supply = <&vdd_cpu>;
status = "okay";
};
&can0 {
assigned-clocks = <&cru CLK_CAN0>;
assigned-clock-rates = <150000000>;
@@ -1630,6 +1636,7 @@
};
&rkvenc {
venc-supply = <&vdd_logic>;
status = "okay";
};

View File

@@ -132,16 +132,30 @@
compatible = "operating-points-v2";
opp-shared;
mbist-vmin = <825000 900000 950000>;
nvmem-cells = <&cpu_leakage>, <&core_pvtm>, <&mbist_vmin>;
nvmem-cell-names = "leakage", "pvtm", "mbist-vmin";
rockchip,pvtm-voltage-sel = <
0 82000 0
82001 93000 1
93001 100000 2
>;
rockchip,pvtm-freq = <408000>;
rockchip,pvtm-volt = <900000>;
rockchip,pvtm-ch = <0 5>;
rockchip,pvtm-sample-time = <1000>;
rockchip,pvtm-number = <10>;
rockchip,pvtm-error = <1000>;
rockchip,pvtm-ref-temp = <40>;
rockchip,pvtm-temp-prop = <26 26>;
rockchip,thermal-zone = "soc-thermal";
rockchip,temp-hysteresis = <5000>;
rockchip,low-temp = <0>;
rockchip,low-temp-adjust-volt = <
/* MHz MHz uV */
1104 1608 75000
0 1608 75000
>;
nvmem-cells = <&cpu_leakage>;
nvmem-cell-names = "leakage";
opp-408000000 {
opp-hz = /bits/ 64 <408000000>;
opp-microvolt = <825000 825000 1150000>;
@@ -1058,16 +1072,16 @@
npu_opp_table: npu-opp-table {
compatible = "operating-points-v2";
mbist-vmin = <825000 900000 950000>;
nvmem-cells = <&npu_leakage>, <&core_pvtm>, <&mbist_vmin>;
nvmem-cell-names = "leakage", "pvtm", "mbist-vmin";
rockchip,temp-hysteresis = <5000>;
rockchip,low-temp = <0>;
rockchip,low-temp-adjust-volt = <
/* MHz MHz uV */
700 700 50000
0 700 50000
>;
nvmem-cells = <&npu_leakage>;
nvmem-cell-names = "leakage";
opp-200000000 {
opp-hz = /bits/ 64 <200000000>;
opp-microvolt = <825000 825000 1000000>;
@@ -1099,6 +1113,42 @@
opp-1000000000 {
opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <1000000 1000000 1000000>;
status = "disabled";
};
};
bus_npu: bus-npu {
compatible = "rockchip,rk3568-bus";
rockchip,busfreq-policy = "clkfreq";
clocks = <&scmi_clk 2>;
clock-names = "bus";
operating-points-v2 = <&bus_npu_opp_table>;
status = "disabled";
};
bus_npu_opp_table: bus-npu-opp-table {
compatible = "operating-points-v2";
opp-shared;
nvmem-cells = <&core_pvtm>;
nvmem-cell-names = "pvtm";
rockchip,pvtm-voltage-sel = <
0 82000 0
82001 93000 1
93001 100000 2
>;
rockchip,pvtm-ch = <0 5>;
opp-1000000000 {
opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <950000>;
opp-microvolt-L0 = <950000>;
opp-microvolt-L1 = <925000>;
opp-microvolt-L2 = <0>;
};
opp-900000000 {
opp-hz = /bits/ 64 <900000000>;
opp-microvolt = <0>;
};
};
@@ -1147,8 +1197,9 @@
gpu_opp_table: opp-table2 {
compatible = "operating-points-v2";
nvmem-cells = <&gpu_leakage>;
nvmem-cell-names = "leakage";
mbist-vmin = <825000 900000 950000>;
nvmem-cells = <&gpu_leakage>, <&core_pvtm>, <&mbist_vmin>;
nvmem-cell-names = "leakage", "pvtm", "mbist-vmin";
opp-200000000 {
opp-hz = /bits/ 64 <200000000>;
@@ -1364,7 +1415,7 @@
clocks = <&cru ACLK_RKVENC>, <&cru HCLK_RKVENC>,
<&cru CLK_RKVENC_CORE>;
clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
rockchip,normal-rates = <297000000>, <0>, <400000000>;
rockchip,normal-rates = <297000000>, <0>, <297000000>;
resets = <&cru SRST_A_RKVENC>, <&cru SRST_H_RKVENC>,
<&cru SRST_RKVENC_CORE>;
reset-names = "video_a", "video_h", "video_core";
@@ -1376,9 +1427,38 @@
rockchip,taskqueue-node = <3>;
rockchip,resetgroup-node = <3>;
power-domains = <&power RK3568_PD_RKVENC>;
operating-points-v2 = <&rkvenc_opp_table>;
status = "disabled";
};
rkvenc_opp_table: rkvenc-opp-table {
compatible = "operating-points-v2";
nvmem-cells = <&core_pvtm>;
nvmem-cell-names = "pvtm";
rockchip,pvtm-voltage-sel = <
0 82000 0
82001 93000 1
93001 100000 2
>;
rockchip,pvtm-ch = <0 5>;
opp-297000000 {
opp-hz = /bits/ 64 <297000000>;
opp-microvolt = <900000>;
opp-microvolt-L0 = <900000>;
opp-microvolt-L1 = <900000>;
opp-microvolt-L2 = <850000>;
};
opp-400000000 {
opp-hz = /bits/ 64 <400000000>;
opp-microvolt = <950000>;
opp-microvolt-L0 = <950000>;
opp-microvolt-L1 = <900000>;
opp-microvolt-L2 = <850000>;
};
};
rkvenc_mmu: iommu@fdf40f00 {
compatible = "rockchip,iommu-v2";
reg = <0x0 0xfdf40f00 0x0 0x40>, <0x0 0xfdf40f40 0x0 0x40>;
@@ -2053,33 +2133,50 @@
dmc_opp_table: dmc-opp-table {
compatible = "operating-points-v2";
mbist-vmin = <825000 900000 950000>;
nvmem-cells = <&log_leakage>, <&core_pvtm>, <&mbist_vmin>;
nvmem-cell-names = "leakage", "pvtm", "mbist-vmin";
rockchip,temp-hysteresis = <5000>;
rockchip,low-temp = <0>;
rockchip,low-temp-adjust-volt = <
/* MHz MHz uV */
0 1560 25000
0 1560 25000
>;
rockchip,leakage-voltage-sel = <
1 80 0
81 254 1
>;
opp-324000000 {
opp-hz = /bits/ 64 <324000000>;
opp-microvolt = <900000>;
opp-microvolt-L0 = <900000>;
opp-microvolt-L1 = <850000>;
};
opp-528000000 {
opp-hz = /bits/ 64 <528000000>;
opp-microvolt = <900000>;
opp-microvolt-L0 = <900000>;
opp-microvolt-L1 = <850000>;
};
opp-780000000 {
opp-hz = /bits/ 64 <780000000>;
opp-microvolt = <900000>;
opp-microvolt-L0 = <900000>;
opp-microvolt-L1 = <850000>;
};
opp-920000000 {
opp-hz = /bits/ 64 <920000000>;
opp-microvolt = <900000>;
opp-microvolt-L0 = <900000>;
opp-microvolt-L1 = <850000>;
status = "disabled";
};
opp-1560000000 {
opp-hz = /bits/ 64 <1560000000>;
opp-microvolt = <900000>;
opp-microvolt-L0 = <900000>;
opp-microvolt-L1 = <850000>;
};
};
@@ -2396,6 +2493,10 @@
reg = <0x08 0x1>;
bits = <3 3>;
};
mbist_vmin: mbist-vmin@9 {
reg = <0x09 0x1>;
bits = <0 4>;
};
otp_id: id@a {
reg = <0x0a 0x10>;
};
@@ -2411,6 +2512,9 @@
gpu_leakage: gpu-leakage@1d {
reg = <0x1d 0x1>;
};
core_pvtm:core-pvtm@2a {
reg = <0x2a 0x2>;
};
};
i2s0_8ch: i2s@fe400000 {