Signed-off-by: guilin.w...@gl-inet.com <guilin.w...@gl-inet.com>
---
 package/kernel/om-watchdog/Makefile               |  2 +-
 package/kernel/om-watchdog/files/om-watchdog      | 40 +++++++++++++++++++----
 package/kernel/om-watchdog/files/om-watchdog.init |  2 ++
 3 files changed, 37 insertions(+), 7 deletions(-)

diff --git a/package/kernel/om-watchdog/Makefile 
b/package/kernel/om-watchdog/Makefile
index 403069b..02520d2 100644
--- a/package/kernel/om-watchdog/Makefile
+++ b/package/kernel/om-watchdog/Makefile
@@ -12,7 +12,7 @@ PKG_RELEASE:=2
 PKG_VERSION:=1
 
 include $(INCLUDE_DIR)/package.mk
-
+PKG_CONFIG_DEPENDS += BUSYBOX_CONFIG_FLOAT_DURATION
 define Package/om-watchdog
   SECTION:=base
   CATEGORY:=Base system
diff --git a/package/kernel/om-watchdog/files/om-watchdog 
b/package/kernel/om-watchdog/files/om-watchdog
index d730c68..b12db3e 100644
--- a/package/kernel/om-watchdog/files/om-watchdog
+++ b/package/kernel/om-watchdog/files/om-watchdog
@@ -1,15 +1,43 @@
 #!/bin/sh
 
+. /lib/functions.sh
+
 GPIO=$1
 
 trap "" INT HUP
 
+om_feed_dog()
+{
+        while true; do
+                echo 1 > /sys/class/gpio/gpio${GPIO}/value
+                sleep 1
+                echo 0 > /sys/class/gpio/gpio${GPIO}/value
+                sleep 180
+        done
+}
+glinet_feed_dog()
+{
+        local count=1
+        for i in $(seq 1 $count);
+        do
+                echo 1 >/sys/class/gpio/gpio14/value
+                sleep 0.01
+                echo 0 >/sys/class/gpio/gpio14/value
+                sleep 0.01
+        done
+}
+
 echo $GPIO > /sys/class/gpio/export
 echo out > /sys/class/gpio/gpio${GPIO}/direction
 
-while true; do
-       echo 1 > /sys/class/gpio/gpio${GPIO}/value
-       sleep 1
-       echo 0 > /sys/class/gpio/gpio${GPIO}/value
-       sleep 180
-done
+board=$(board_name)
+if [ "$board" = "glinet,gl-x1200-nor" -o "$board" = "glinet,gl-x1200-nor-nand" 
];then
+        echo 14 >/sys/class/gpio/export
+        echo out >/sys/class/gpio/gpio14/direction
+        while true;do
+                glinet_feed_dog 
+                sleep 10
+        done
+else
+        om_feed_dog 
+fi
diff --git a/package/kernel/om-watchdog/files/om-watchdog.init 
b/package/kernel/om-watchdog/files/om-watchdog.init
index 4c407da..5d3ffdd 100644
--- a/package/kernel/om-watchdog/files/om-watchdog.init
+++ b/package/kernel/om-watchdog/files/om-watchdog.init
@@ -50,6 +50,8 @@ get_gpio() {
        elif [ "$board" = "teltonika_rut5xx" ]; then
                # ramips
                return 11
+       elif [ "$board" = "glinet,gl-x1200-nor" -o "$board" = 
"glinet,gl-x1200-nor-nand" ];then
+                       return 16
        else
                #we assume it is om1p in this case
                return 3
-- 
2.7.4




_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to