Re: [PATCH v2] arm64: dts: allwinner: h6: Use dummy regulator for Tanix TX6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2020-04-28 3:26 pm, Clément Péron 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.

Hmm, isn't that really a bug in the DVFS code? I guess it's just blindly propagating -EINVAL from the fixed regulators not implementing set_voltage, but AFAICS it has no real excuse not to be cleverer and still allow switching frequency as long as the voltage *is* high enough for the given OPP. I wonder how well it works if the regulator is programmable but shared with other consumers... that case probably can't be hacked around in DT.

Robin.

Avoid to introduce a new dedicated OPP Table where voltage are
equals to the fixed regulator as it will only duplicate all the OPPs.
Instead remove the fixed regulator so the DVFS framework will create
dummy regulator and will have the same behavior.

Add some comments to explain this in the device-tree.

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>
---
  .../boot/dts/allwinner/sun50i-h6-tanix-tx6.dts | 18 ++++++++++++++++--
  1 file changed, 16 insertions(+), 2 deletions(-)

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..3e96fcb317ea 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts
@@ -48,7 +48,15 @@
  };
&cpu0 {
-	cpu-supply = <&reg_vdd_cpu_gpu>;
+	/*
+	 * Don't specify the CPU regulator, as it's a fixed
+	 * regulator DVFS will not work as it is intructed
+	 * to reach a voltage which can't be reached.
+	 * Not specifying a regulator will create a dummy
+	 * regulator allowing all OPPs.
+	 *
+	 * cpu-supply = <&reg_vdd_cpu_gpu>;
+	 */
  };
&de {
@@ -68,7 +76,13 @@
  };
&gpu {
-	mali-supply = <&reg_vdd_cpu_gpu>;
+	/*
+	 * Don't specify the GPU regulator, see comment
+	 * above for the CPU supply.
+	 *
+	 * mali-supply = <&reg_vdd_cpu_gpu>;
+	 */
+
  	status = "okay";
  };



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux