In the current code, all MPC5200 timers are registered by the mpc52xx_gpt driver, even if gpt0 (the only one with this capability) shall be used as hardware watchdog which is indicated by the "fsl,has-wdt" or "has-wdt" property in the device tree. Thus, the watchdog driver does never find any watchdog and simply doesn't work.

This trivial patch protects timers with a "(fsl,)?has-wdt" property from being probed as gpt's. The watchdog timer now works just fine.

Tested on a custom (roughly Icecube based) MPC5200B board, with the 5200 watchdog driver built into the kernel.

Signed-off-by: Albrecht Dreß <albrecht.dr...@arcor.de>

---

--- linux-2.6.30.3.orig/arch/powerpc/platforms/52xx/mpc52xx_gpt.c 2009-07-24 23:47:51.000000000 +0200 +++ linux-2.6.30.3/arch/powerpc/platforms/52xx/mpc52xx_gpt.c 2009-08-03 14:20:10.000000000 +0200
@@ -343,6 +343,14 @@
 {
        struct mpc52xx_gpt_priv *gpt;

+       /* do not grab devices which shall be used as watchdog */
+       if (of_get_property(ofdev->node, "fsl,has-wdt", NULL) ||
+               of_get_property(ofdev->node, "has-wdt", NULL)) {
+               pr_notice("%s: ignore wdt %s\n", __func__,
+                         ofdev->node->full_name);
+               return -ENODEV;
+       }
+
        gpt = kzalloc(sizeof *gpt, GFP_KERNEL);
        if (!gpt)
                return -ENOMEM;

Attachment: pgpe9HqkyMwKg.pgp
Description: PGP signature

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to