[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <98246e5d-ebef-bcb5-f0b8-d74b3834b835@arm.com>
Date: Tue, 28 Apr 2020 16:21:28 +0100
From: Robin Murphy <robin.murphy@....com>
To: Clément Péron <peron.clem@...il.com>,
Maxime Ripard <mripard@...nel.org>,
Chen-Yu Tsai <wens@...e.org>, Rob Herring <robh+dt@...nel.org>
Cc: devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-sunxi <linux-sunxi@...glegroups.com>,
Piotr Oniszczuk <warpme@...pl>,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v2] arm64: dts: allwinner: h6: Use dummy regulator for
Tanix TX6
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@...pl>
> Fixes: add1e27fb703 ("arm64: dts: allwinner: h6: Enable CPU opp tables for Tanix TX6")
> Signed-off-by: Clément Péron <peron.clem@...il.com>
> ---
> .../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 = <®_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 = <®_vdd_cpu_gpu>;
> + */
> };
>
> &de {
> @@ -68,7 +76,13 @@
> };
>
> &gpu {
> - mali-supply = <®_vdd_cpu_gpu>;
> + /*
> + * Don't specify the GPU regulator, see comment
> + * above for the CPU supply.
> + *
> + * mali-supply = <®_vdd_cpu_gpu>;
> + */
> +
> status = "okay";
> };
>
>
Powered by blists - more mailing lists