On Thu, Jul 28, 2022 at 7:21 PM AngeloGioacchino Del Regno
<angelogioacchino.delregno@xxxxxxxxxxxxx> wrote:
Thanks for the suggestion. I'll modify it accordingly in v3.
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@xxxxxxxxxxxx>
---
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@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";
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.
[1]: https://elixir.bootlin.com/linux/latest/source/drivers/watchdog/arm_smc_wdt.c#L138
Regards,
Angelo
+ };
+ };
};
&mfg_async {