[PATCH] arm64: dts: rockchip: Add optional GPU OPP voltage ranges to RK356x SoC dtsi

Dragan Simic dsimic at manjaro.org
Sat Jun 29 08:39:34 PDT 2024


On 2024-06-29 17:25, Dragan Simic wrote:
> On 2024-06-29 17:10, Heiko Stübner wrote:
>> Am Samstag, 29. Juni 2024, 07:11:24 CEST schrieb Dragan Simic:
>> 
>>> +#ifndef RK356X_GPU_NPU_SHARED_REGULATOR
>> 
>> is there some reason for this duplicating of opps?
>> 
>> The regulator framework should pick the lowest supported voltage
>> anyway, so it seems you're just extending them upwards a bit.
>> 
>> So I really don't so why we'd need to sets here.
> 
> The reason is improved strictness.  Having the exact GPU OPP voltages
> required for the boards whose GPU regulators can provide those exact
> voltages makes it possible to detect misconfigurations much easier,
> just like it was the case with the board dts misconfiguration that
> resulted in the recent DCDC_REG2 patch. [1]
> 
> If we had GPU OPP voltage ranges in place instead, the aforementioned
> issue would probably remain undetected for some time.  It wouldn't be
> the end of the world, :) of course, but the resulting increased power
> consumption isn't one of the desired outcomes.
> 
> [1] 
> https://lore.kernel.org/linux-rockchip/e70742ea2df432bf57b3f7de542d81ca22b0da2f.1716225483.git.dsimic@manjaro.org/

On second thought, after seeing that the RK3399 CPU and GPU OPPs
already specify voltage ranges, I think it would be better to drop
the distinction between the separate strict voltages and the voltage
ranges in this patch, and to add some additional debugging messages
to drivers/opp/of.c that would allow any misconfiguration issues to
be rather easily detected.

>> Also the voltage-range thing makes sense for non-gpu-npu-sharing
>> boards, when the supplying regulator does not fully support the
>> direct single-value voltage.
>> 
>> (rk3399-puma was such a case if I remember correctly)
>> 
>> So I really see no reason for this duplication.
> 
> Perhaps we could rename the RK356X_GPU_NPU_SHARED_REGULATOR macro
> accordingly in the v2, to RK356X_GPU_OPP_VOLTAGE_RANGES, for example,
> with some additional explanations in the patch description and the
> RK356x SoC dtsi file itself.
> 
>>>  		opp-200000000 {
>>>  			opp-hz = /bits/ 64 <200000000>;
>>>  			opp-microvolt = <825000>;
>>> @@ -222,6 +229,37 @@ opp-800000000 {
>>>  			opp-hz = /bits/ 64 <800000000>;
>>>  			opp-microvolt = <1000000>;
>>>  		};
>>> +#else
>>> +		opp-200000000 {
>>> +			opp-hz = /bits/ 64 <200000000>;
>>> +			opp-microvolt = <825000 825000 1000000>;
>>> +		};
>>> +
>>> +		opp-300000000 {
>>> +			opp-hz = /bits/ 64 <300000000>;
>>> +			opp-microvolt = <825000 825000 1000000>;
>>> +		};
>>> +
>>> +		opp-400000000 {
>>> +			opp-hz = /bits/ 64 <400000000>;
>>> +			opp-microvolt = <825000 825000 1000000>;
>>> +		};
>>> +
>>> +		opp-600000000 {
>>> +			opp-hz = /bits/ 64 <600000000>;
>>> +			opp-microvolt = <825000 825000 1000000>;
>>> +		};
>>> +
>>> +		opp-700000000 {
>>> +			opp-hz = /bits/ 64 <700000000>;
>>> +			opp-microvolt = <900000 900000 1000000>;
>>> +		};
>>> +
>>> +		opp-800000000 {
>>> +			opp-hz = /bits/ 64 <800000000>;
>>> +			opp-microvolt = <1000000 1000000 1000000>;
>>> +		};
>>> +#endif /* RK356X_GPU_NPU_SHARED_REGULATOR */
>>>  	};
>>> 
>>>  	hdmi_sound: hdmi-sound {
>>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Linux-rockchip mailing list
>> Linux-rockchip at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-rockchip
> 
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip



More information about the linux-arm-kernel mailing list