[PATCH v2] arm64: dts: mt8173-oak: Switch to SMC watchdog

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Thu Jul 28 08:51:46 PDT 2022


Il 28/07/22 17:39, Pin-yen Lin ha scritto:
> On Thu, Jul 28, 2022 at 7:21 PM AngeloGioacchino Del Regno
> <angelogioacchino.delregno at collabora.com> wrote:
>>
>> Il 27/07/22 11:40, Pin-yen Lin ha scritto:
>>> Switch to SMC watchdog because we need direct control of HW watchdog
>>> registers from kernel. The corresponding firmware was uploaded in
>>> https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/3405.
>>>
>>> Signed-off-by: Pin-yen Lin <treapking at chromium.org>
>>> ---
>>>
>>> Changes in v2:
>>> - Move the modifications to mt8173-elm.dtsi and add some comments.
>>>
>>>    arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi | 12 ++++++++++++
>>>    1 file changed, 12 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi b/arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi
>>> index e21feb85d822..b2269770abc3 100644
>>> --- a/arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi
>>> +++ b/arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi
>>> @@ -161,6 +161,18 @@ hdmi_connector_in: endpoint {
>>>                        };
>>>                };
>>>        };
>>> +
>>> +     soc {
>>> +             /*
>>> +              * Disable the original MMIO watch dog and switch to the SMC watchdog,
>>> +              * which operates on the same MMIO.
>>> +              */
>>> +             /delete-node/ watchdog at 10007000;
>>
>> Unfortunately, we're not quite there yet.
>> The comment is fine, but...
>>
>> There's no need to /delete-node/: you can just do it like
>>
>> /*
>>    * Disable the original MMIO watch dog and switch to the SMC watchdog,
>>    * which operates on the same MMIO.
>>    */
>> &watchdog {
>>          status = "disabled";
>> };
>>
>> and...
>>
>>> +
>>> +             watchdog {
>>
>> This isn't addressable, hence it belongs to the root node, not to soc.
>> If you did that because of naming issues, I would propose to call it
>> smc-watchdog instead of watchdog.
>>
>>
>>> +                     compatible = "arm,smc-wdt";
>>
> Thanks for the suggestion. I'll modify it accordingly in v3.
> 
>> P.S.: No timeout-sec?
> 
> The example in the binding file has a timeout-sec property, but it is
> not defined in the binding nor used in the driver...
> The driver seems to talk with the firmware to get a timeout value[1]
> instead of reading it from the devicetree.
> 

Oh. I admit I trusted the binding blindly, didn't check the actual driver code.

On a note, we should check why is that binding partially wrong and eventually
fix it (remove the property), or add the capability to the driver, but feel free
to ignore that for now, as this is not relevant for the context of this specific
change that you're trying to do here.

P.S.: I just noticed that the commit title is also wrong. s/mt8173-oak/mt8173-elm/g

Waiting for a v3!


> [1]: https://elixir.bootlin.com/linux/latest/source/drivers/watchdog/arm_smc_wdt.c#L138
>>
>> Regards,
>> Angelo
>>
>>> +             };
>>> +     };
>>>    };
>>>
>>>    &mfg_async {
>>>
>>




More information about the linux-arm-kernel mailing list