From: Dragan Simic <dsimic@manjaro.org>
To: Alexey Charkov <alchark@gmail.com>
Cc: wens@kernel.org, Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Conor Dooley <conor+dt@kernel.org>,
Heiko Stuebner <heiko@sntech.de>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Viresh Kumar <viresh.kumar@linaro.org>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/4] arm64: dts: rockchip: enable temperature driven fan control on Rock 5B
Date: Thu, 01 Feb 2024 20:43:01 +0100 [thread overview]
Message-ID: <bd6e93cf907572e86697dc10a50bfe66@manjaro.org> (raw)
In-Reply-To: <a8aa04ca0061cd09c7b3eb5336e534a4@manjaro.org>
On 2024-02-01 20:31, Dragan Simic wrote:
> On 2024-02-01 20:15, Alexey Charkov wrote:
>> On Thu, Feb 1, 2024 at 9:34 PM Dragan Simic <dsimic@manjaro.org>
>> wrote:
>>> On 2024-02-01 15:26, Chen-Yu Tsai wrote:
>>> > On Wed, Jan 31, 2024 at 2:22 AM Alexey Charkov <alchark@gmail.com>
>>> > wrote:
>>> >>
>>> >> This enables thermal monitoring on Radxa Rock 5B and links the PWM
>>> >> fan as an active cooling device managed automatically by the thermal
>>> >> subsystem, with a target SoC temperature of 65C and a minimum-spin
>>> >> interval from 55C to 65C to ensure airflow when the system gets warm
>>> >>
>>> >> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>>> >> Signed-off-by: Alexey Charkov <alchark@gmail.com>
>>> >> ---
>>> >> arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 34
>>> >> ++++++++++++++++++++++++-
>>> >> 1 file changed, 33 insertions(+), 1 deletion(-)
>>> >>
>>> >> diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
>>> >> b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
>>> >> index a0e303c3a1dc..b485edeef876 100644
>>> >> --- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
>>> >> +++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
>>> >> @@ -52,7 +52,7 @@ led_rgb_b {
>>> >>
>>> >> fan: pwm-fan {
>>> >> compatible = "pwm-fan";
>>> >> - cooling-levels = <0 95 145 195 255>;
>>> >> + cooling-levels = <0 120 150 180 210 240 255>;
>>> >> fan-supply = <&vcc5v0_sys>;
>>> >> pwms = <&pwm1 0 50000 0>;
>>> >> #cooling-cells = <2>;
>>> >> @@ -173,6 +173,34 @@ &cpu_l3 {
>>> >> cpu-supply = <&vdd_cpu_lit_s0>;
>>> >> };
>>> >>
>>> >> +&package_thermal {
>>> >> + polling-delay = <1000>;
>>> >> +
>>> >> + trips {
>>> >> + package_fan0: package-fan0 {
>>> >> + temperature = <55000>;
>>> >> + hysteresis = <2000>;
>>> >> + type = "active";
>>> >> + };
>>> >> + package_fan1: package-fan1 {
>>> >> + temperature = <65000>;
>>> >> + hysteresis = <2000>;
>>> >> + type = "active";
>>> >> + };
>>> >> + };
>>> >> +
>>> >> + cooling-maps {
>>> >> + map0 {
>>> >> + trip = <&package_fan0>;
>>> >> + cooling-device = <&fan THERMAL_NO_LIMIT 1>;
>>> >> + };
>>> >> + map1 {
>>> >> + trip = <&package_fan1>;
>>> >> + cooling-device = <&fan 1 THERMAL_NO_LIMIT>;
>>> >> + };
>>> >> + };
>>> >> +};
>>> >> +
>>> >> &i2c0 {
>>> >> pinctrl-names = "default";
>>> >> pinctrl-0 = <&i2c0m2_xfer>;
>>> >> @@ -731,6 +759,10 @@ regulator-state-mem {
>>> >> };
>>> >> };
>>> >>
>>> >> +&tsadc {
>>> >> + status = "okay";
>>> >> +};
>>> >> +
>>> >
>>> > Is there any reason this can't be enabled by default in the .dtsi file?
>>> > The thermal sensor doesn't depend on anything external, so there should
>>> > be no reason to push this down to the board level.
>>>
>>> Actually, there is a reason. Different boards can handle the
>>> critical
>>> overheating differently, by letting the CRU or the PMIC handle it.
>>> This
>>> was also the case for the RK3399.
>>>
>>> Please, have a look at the following DT properties, which are
>>> consumed
>>> by drivers/thermal/rockchip_thermal.c:
>>> - "rockchip,hw-tshut-mode"
>>> - "rockchip,hw-tshut-polarity"
>>>
>>> See also page 1,372 of the RK3588 TRM v1.0.
>>>
>>> This has also reminded me to check how is the Rock 5B actually wired,
>>> just to make sure. We actually need to provide the two DT properties
>>> listed above, at least to avoid emitting the warnings.
>>
>> Well the defaults are already provided in rk3588s.dtsi, so there won't
>> be any warnings (see lines 2222-2223 in Linus' master version), and
>> according to the vendor kernel those are also what Rock 5B uses.
>
> Yes, I noticed the same a couple of minutes after sending my last
> message, but didn't want to make more noise about it. :) I would've
> mentioned it in my next message, of course.
Just checked the Rock 5B schematic and it expects the CRU to be used
to perform the hardware reset in case of a thermal runaway, so the
defaults in the RK3588s dtsi are fine. I had to double-check it. :)
However, now I have some open questions related to interrupt-driven
operation. I'll research it further and come back with an update.
>> This made me think however: what if a board doesn't enable TSADC, but
>> has OPPs in place for higher voltage and frequency states? There won't
>> be any throttling (as there won't be any thermal monitoring) and there
>> might not be a critical shutdown at all if it heats up - possibly even
>> causing hardware damage. In this case it seems that having TSADC
>> enabled by default would at least trigger passive cooling, hopefully
>> avoiding the critical shutdown altogether and making those properties
>> irrelevant in 99% cases.
>
> Those are very good questions. Thumbs up!
>
> The trouble is that the boards can use different wiring to handle the
> thermal runaways, by expecting the PMIC to handle it or not. Thus,
> it's IMHO better to simply leave that to be tested and enabled on a
> board-by-board basis, whenever a new RK3588(s)-based board is added.
>
> Thus, the only right way at this point would be to merge the addition
> of the OPPs and the enabling of the TSADC for all currently supported
> RK3588(s)-based boards at once, instead of just for the Rock 5B.
>
> I can handle the required changes for the QuartzPro64 dts file. For
> other supported RK3588(s)-based boards, if there are no people having
> access to them and willing to perform the dts changes and the testing,
> I'd be willing to go through the board schematics, to enable the
> TSADC for them as well.
Please, let me know are you fine with the above-described approach.
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2024-02-01 19:43 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-30 18:21 [PATCH v2 0/4] RK3588 and Rock 5B dts additions: thermal, OPP and fan Alexey Charkov
2024-01-30 18:21 ` [PATCH v2 1/4] arm64: dts: rockchip: enable built-in thermal monitoring on rk3588 Alexey Charkov
2024-01-31 5:05 ` Dragan Simic
2024-01-31 9:56 ` Alexey Charkov
2024-01-31 10:08 ` Dragan Simic
2024-01-30 18:21 ` [PATCH v2 2/4] arm64: dts: rockchip: enable temperature driven fan control on Rock 5B Alexey Charkov
2024-01-31 5:08 ` Dragan Simic
2024-01-31 9:43 ` Alexey Charkov
2024-02-01 14:26 ` Chen-Yu Tsai
2024-02-01 17:34 ` Dragan Simic
2024-02-01 19:15 ` Alexey Charkov
2024-02-01 19:31 ` Dragan Simic
2024-02-01 19:43 ` Dragan Simic [this message]
2024-02-02 14:42 ` Alexey Charkov
2024-02-02 20:14 ` Dragan Simic
2024-01-30 18:21 ` [PATCH v2 3/4] arm64: dts: rockchip: Add OPP data for CPU cores on RK3588 Alexey Charkov
2024-01-31 9:12 ` Heiko Stübner
2024-01-31 9:34 ` Alexey Charkov
2024-01-30 18:21 ` [PATCH v2 4/4] arm64: dts: rockchip: Add further granularity in RK3588 CPU OPPs Alexey Charkov
2024-01-31 5:08 ` Dragan Simic
2024-02-08 12:19 ` Dragan Simic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bd6e93cf907572e86697dc10a50bfe66@manjaro.org \
--to=dsimic@manjaro.org \
--cc=alchark@gmail.com \
--cc=conor+dt@kernel.org \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=heiko@sntech.de \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=robh+dt@kernel.org \
--cc=viresh.kumar@linaro.org \
--cc=wens@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox