The built-in watchdog is redundant when the device has an external
GPIO based hardware watchdog. And there is a conflict that both of
them will attempt to register the same device entry in sysfs. This
resulted in the built-in watchdog being unable to be activated.
This patch explicitly disables the built-in watchdog for devices
that use GPIO watchdog to fix the error:
[ 1.779206] ath79-wdt
18060008.wdt: unable to register misc device, err=-16
[ 1.786355] ath79-wdt: probe of
18060008.wdt failed with error -16
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18395
Signed-off-by: Robert Marko <robimarko@gmail.com>
gpio-controller;
};
};
+
+&wdt {
+ status = "disabled";
+};
nvmem-cell-names = "mac-address";
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
nvmem-cell-names = "mac-address";
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
};
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
always-running;
};
};
+
+&wdt {
+ status = "disabled";
+};
nvmem-cell-names = "mac-address";
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
nvmem-cell-names = "mac-address";
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
watchdog {
compatible = "linux,wdt-gpio";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&enable_gpio21>;
gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
hw_algo = "toggle";
hw_margin_ms = <30000>;
};
&wdt {
- status = "okay";
-
- pinctrl-names = "default";
- pinctrl-0 = <&enable_gpio21>;
+ status = "disabled";
};
&gpio {
status = "okay";
};
-&wdt {
- status = "okay";
-};
-
&spi {
status = "okay";
status = "okay";
};
-&wdt {
- status = "okay";
-};
-
&spi {
status = "okay";
status = "okay";
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
nvmem-cell-names = "mac-address";
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
nvmem-cell-names = "mac-address";
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
nvmem-cell-names = "mac-address";
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
};
&wdt {
- status = "okay";
+ status = "disabled";
};
&rst {
nvmem-cell-names = "mac-address";
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
nvmem-cell-names = "mac-address";
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
};
&wdt {
- status = "okay";
+ status = "disabled";
};
&wmac {
};
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
};
};
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
};
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
phy-handle = <&phy2>;
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
};
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
phy-handle = <&phy2>;
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
phy-handle = <&phy1>;
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";
phy-handle = <&phy0>;
};
+&wdt {
+ status = "disabled";
+};
+
&wmac {
status = "okay";