Hi Warpme, On Sun, 26 Apr 2020 at 14:17, Clément Péron <peron.clem@xxxxxxxxx> wrote: > > Tanix TX6 has a fixed regulator. As DVFS is instructed to change > voltage to meet OPP table. The DVFS is not working as expected. > > Introduce a dedicated OPP Table where voltage are equals to > the fixed regulator. > > Reported-by: Piotr Oniszczuk <warpme@xxxxx> > Fixes: add1e27fb703 ("arm64: dts: allwinner: h6: Enable CPU opp tables for Tanix TX6") > Signed-off-by: Clément Péron <peron.clem@xxxxxxxxx> Could you confirm this patch fixed your issue? If yes could you add your tested-by tag ? Thanks, Clement > --- > .../sun50i-h6-tanix-tx6-cpu-opp.dtsi | 116 ++++++++++++++++++ > .../dts/allwinner/sun50i-h6-tanix-tx6.dts | 2 +- > 2 files changed, 117 insertions(+), 1 deletion(-) > create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-cpu-opp.dtsi > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-cpu-opp.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-cpu-opp.dtsi > new file mode 100644 > index 000000000000..062940115563 > --- /dev/null > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-cpu-opp.dtsi > @@ -0,0 +1,116 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +// Copyright (C) 2020 Clément Péron <peron.clem@xxxxxxxxx> > + > +/ { > + cpu_opp_table: cpu-opp-table { > + 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 = <1135000>; > + opp-microvolt-speed1 = <1135000>; > + opp-microvolt-speed2 = <1135000>; > + }; > + > + opp@720000000 { > + clock-latency-ns = <244144>; /* 8 32k periods */ > + opp-hz = /bits/ 64 <720000000>; > + > + opp-microvolt-speed0 = <1135000>; > + opp-microvolt-speed1 = <1135000>; > + opp-microvolt-speed2 = <1135000>; > + }; > + > + opp@816000000 { > + clock-latency-ns = <244144>; /* 8 32k periods */ > + opp-hz = /bits/ 64 <816000000>; > + > + opp-microvolt-speed0 = <1135000>; > + opp-microvolt-speed1 = <1135000>; > + opp-microvolt-speed2 = <1135000>; > + }; > + > + opp@888000000 { > + clock-latency-ns = <244144>; /* 8 32k periods */ > + opp-hz = /bits/ 64 <888000000>; > + > + opp-microvolt-speed0 = <1135000>; > + opp-microvolt-speed1 = <1135000>; > + opp-microvolt-speed2 = <1135000>; > + }; > + > + opp@1080000000 { > + clock-latency-ns = <244144>; /* 8 32k periods */ > + opp-hz = /bits/ 64 <1080000000>; > + > + opp-microvolt-speed0 = <1135000>; > + opp-microvolt-speed1 = <1135000>; > + opp-microvolt-speed2 = <1135000>; > + }; > + > + opp@1320000000 { > + clock-latency-ns = <244144>; /* 8 32k periods */ > + opp-hz = /bits/ 64 <1320000000>; > + > + opp-microvolt-speed0 = <1135000>; > + opp-microvolt-speed1 = <1135000>; > + opp-microvolt-speed2 = <1135000>; > + }; > + > + opp@1488000000 { > + clock-latency-ns = <244144>; /* 8 32k periods */ > + opp-hz = /bits/ 64 <1488000000>; > + > + opp-microvolt-speed0 = <1135000>; > + opp-microvolt-speed1 = <1135000>; > + opp-microvolt-speed2 = <1135000>; > + }; > + > + opp@1608000000 { > + clock-latency-ns = <244144>; /* 8 32k periods */ > + opp-hz = /bits/ 64 <1608000000>; > + > + opp-microvolt-speed0 = <1135000>; > + opp-microvolt-speed1 = <1135000>; > + opp-microvolt-speed2 = <1135000>; > + }; > + > + opp@1704000000 { > + clock-latency-ns = <244144>; /* 8 32k periods */ > + opp-hz = /bits/ 64 <1704000000>; > + > + opp-microvolt-speed0 = <1135000>; > + opp-microvolt-speed1 = <1135000>; > + opp-microvolt-speed2 = <1135000>; > + }; > + > + opp@1800000000 { > + clock-latency-ns = <244144>; /* 8 32k periods */ > + opp-hz = /bits/ 64 <1800000000>; > + > + opp-microvolt-speed0 = <1135000>; > + opp-microvolt-speed1 = <1135000>; > + opp-microvolt-speed2 = <1135000>; > + }; > + }; > +}; > + > +&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>; > +}; > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts > index be81330db14f..3eaa4f49e3d3 100644 > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts > @@ -4,7 +4,7 @@ > /dts-v1/; > > #include "sun50i-h6.dtsi" > -#include "sun50i-h6-cpu-opp.dtsi" > +#inlcude "sun50i-h6-tanix-tx6-cpu-opp.dtsi" > > #include <dt-bindings/gpio/gpio.h> > > -- > 2.20.1 >