ar71xx: build ALFA AP96 images with default profile as well
[oweals/openwrt.git] / target / linux / ar71xx / files / drivers / watchdog / ar71xx_wdt.c
index 688b9152c43c528930111693f571622a6721fac6..d5e1f8a3ca92282f595c72a8763a0b75baec9075 100644 (file)
@@ -219,6 +219,19 @@ static int __devinit ar71xx_wdt_probe(struct platform_device *pdev)
        int ret;
 
        switch (ar71xx_soc) {
+       case AR71XX_SOC_AR7130:
+       case AR71XX_SOC_AR7141:
+       case AR71XX_SOC_AR7161:
+       case AR71XX_SOC_AR7240:
+       case AR71XX_SOC_AR7241:
+       case AR71XX_SOC_AR7242:
+       case AR71XX_SOC_AR9130:
+       case AR71XX_SOC_AR9132:
+               wdt_clk_freq = ar71xx_ahb_freq;
+               break;
+
+       case AR71XX_SOC_AR9330:
+       case AR71XX_SOC_AR9331:
        case AR71XX_SOC_AR9341:
        case AR71XX_SOC_AR9342:
        case AR71XX_SOC_AR9344:
@@ -226,8 +239,7 @@ static int __devinit ar71xx_wdt_probe(struct platform_device *pdev)
                break;
 
        default:
-               wdt_clk_freq = ar71xx_ahb_freq;
-               break;
+               BUG();
        }
 
        max_timeout = (0xfffffffful / wdt_clk_freq);
@@ -257,9 +269,15 @@ static int __devexit ar71xx_wdt_remove(struct platform_device *pdev)
        return 0;
 }
 
+static void ar71xx_wdt_shutdown(struct platform_device *pdev)
+{
+       ar71xx_wdt_disable();
+}
+
 static struct platform_driver ar71xx_wdt_driver = {
        .probe          = ar71xx_wdt_probe,
        .remove         = __devexit_p(ar71xx_wdt_remove),
+       .shutdown       = ar71xx_wdt_shutdown,
        .driver         = {
                .name   = DRV_NAME,
                .owner  = THIS_MODULE,