From ee423348ff68dd6c6618d2acb452312ccd885b4a Mon Sep 17 00:00:00 2001 From: Liang Chen Date: Thu, 7 Jun 2018 16:52:06 +0800 Subject: [PATCH] arm: dts: adjust opp-table by different bin for rk3288 SoCs Change-Id: I3e84e8c33237bde39cb5db34f68cea7255c41eae Signed-off-by: Liang Chen --- arch/arm/boot/dts/rk3288.dtsi | 11 ++++++----- arch/arm/boot/dts/rk3288cg-opp.dtsi | 21 +++++++++++---------- drivers/cpufreq/rockchip-cpufreq.c | 4 +++- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index e203912d60a9..cc19625d64ba 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -141,7 +141,8 @@ rockchip,bin-scaling-sel = < 0 17 1 25 - 2 31 + 2 27 + 3 31 >; rockchip,pvtm-voltage-sel = < 0 14300 0 @@ -234,8 +235,8 @@ }; opp-1416000000 { opp-hz = /bits/ 64 <1416000000>; - opp-microvolt = <1350000 1350000 1350000>; - opp-microvolt-L0 = <1350000 1350000 1350000>; + opp-microvolt = <1300000 1300000 1350000>; + opp-microvolt-L0 = <1300000 1300000 1350000>; opp-microvolt-L1 = <1250000 1250000 1350000>; opp-microvolt-L2 = <1200000 1200000 1350000>; opp-microvolt-L3 = <1150000 1150000 1350000>; @@ -1729,8 +1730,8 @@ opp-hz = /bits/ 64 <400000000>; opp-microvolt = <1100000>; }; - opp-480000000 { - opp-hz = /bits/ 64 <480000000>; + opp-500000000 { + opp-hz = /bits/ 64 <500000000>; opp-microvolt = <1200000>; }; }; diff --git a/arch/arm/boot/dts/rk3288cg-opp.dtsi b/arch/arm/boot/dts/rk3288cg-opp.dtsi index 20987c29e3ef..c87a889c0d94 100644 --- a/arch/arm/boot/dts/rk3288cg-opp.dtsi +++ b/arch/arm/boot/dts/rk3288cg-opp.dtsi @@ -4,22 +4,23 @@ */ &cpu0_opp_table { + rockchip,max-volt = <1400000>; opp-1704000000 { opp-hz = /bits/ 64 <1704000000>; - opp-microvolt = <1350000 1350000 1350000>; - opp-microvolt-L0 = <1350000 1350000 1350000>; - opp-microvolt-L1 = <1350000 1350000 1350000>; - opp-microvolt-L2 = <1350000 1350000 1350000>; - opp-microvolt-L3 = <1300000 1300000 1350000>; + opp-microvolt = <1350000 1350000 1400000>; + opp-microvolt-L0 = <1350000 1350000 1400000>; + opp-microvolt-L1 = <1350000 1350000 1400000>; + opp-microvolt-L2 = <1350000 1350000 1400000>; + opp-microvolt-L3 = <1350000 1350000 1400000>; clock-latency-ns = <40000>; }; opp-1800000000 { opp-hz = /bits/ 64 <1800000000>; - opp-microvolt = <1350000 1350000 1350000>; - opp-microvolt-L0 = <1350000 1350000 1350000>; - opp-microvolt-L1 = <1350000 1350000 1350000>; - opp-microvolt-L2 = <1350000 1350000 1350000>; - opp-microvolt-L3 = <1350000 1350000 1350000>; + opp-microvolt = <1400000 1400000 1400000>; + opp-microvolt-L0 = <1400000 1400000 1400000>; + opp-microvolt-L1 = <1400000 1400000 1400000>; + opp-microvolt-L2 = <1400000 1400000 1400000>; + opp-microvolt-L3 = <1400000 1400000 1400000>; clock-latency-ns = <40000>; }; }; diff --git a/drivers/cpufreq/rockchip-cpufreq.c b/drivers/cpufreq/rockchip-cpufreq.c index adf30dcb17f0..85474d487465 100644 --- a/drivers/cpufreq/rockchip-cpufreq.c +++ b/drivers/cpufreq/rockchip-cpufreq.c @@ -75,7 +75,9 @@ static int rk3288_get_soc_info(struct device *dev, struct device_node *np, dev_err(dev, "Failed to get soc performance value\n"); goto out; } - if (value == 0x2) + if (value & 0x2) + *bin = 3; + else if (value & 0x01) *bin = 2; } if (*bin >= 0)