Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / src / drivers / ao_watchdog.c
index 096a5564ccef144d39e30921e16b57c137c850ba..612496bcd6a1a371b00cde5abfdfb65b567f1d9e 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -17,7 +18,7 @@
 
 #include <ao.h>
 
-static int     ao_watchdog_enabled = TRUE;
+static int     ao_watchdog_enabled = true;
 
 static void
 ao_watchdog(void)
@@ -27,9 +28,9 @@ ao_watchdog(void)
                        ao_sleep(&ao_watchdog_enabled);
                while (ao_watchdog_enabled) {
                        ao_delay(AO_WATCHDOG_INTERVAL);
-                       ao_gpio_set(AO_WATCHDOG_PORT, AO_WATCHDOG_BIT, AO_WATCHDOG_PIN, 1);
+                       ao_gpio_set(AO_WATCHDOG_PORT, AO_WATCHDOG_BIT, 1);
                        ao_delay(1);
-                       ao_gpio_set(AO_WATCHDOG_PORT, AO_WATCHDOG_BIT, AO_WATCHDOG_PIN, 0);
+                       ao_gpio_set(AO_WATCHDOG_PORT, AO_WATCHDOG_BIT, 0);
                }
        }
 }
@@ -37,15 +38,15 @@ ao_watchdog(void)
 static void
 ao_watchdog_set(void)
 {
-       ao_cmd_hex();
+       uint32_t r = ao_cmd_hex();
        if (ao_cmd_status == ao_cmd_success) {
-               ao_watchdog_enabled = ao_cmd_lex_i != 0;
+               ao_watchdog_enabled = r != 0;
                ao_wakeup(&ao_watchdog_enabled);
        }
 }
        
 
-static __code struct ao_cmds ao_watchdog_cmds[] = {
+static const struct ao_cmds ao_watchdog_cmds[] = {
        { ao_watchdog_set,      "Q <0 off, 1 on>\0Enable or disable watchdog timer" },
        { 0,                    NULL },
 };
@@ -55,7 +56,7 @@ static struct ao_task watchdog_task;
 void
 ao_watchdog_init(void)
 {
-       ao_enable_output(AO_WATCHDOG_PORT, AO_WATCHDOG_BIT, AO_WATCHDOG, 0);
+       ao_enable_output(AO_WATCHDOG_PORT, AO_WATCHDOG_BIT, 0);
        ao_cmd_register(&ao_watchdog_cmds[0]);
        ao_add_task(&watchdog_task, ao_watchdog, "watchdog");
 }