From ce639ba1855ddda4ae4cf1fc3ef585420fd996ca Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Wed, 4 Jan 2012 17:30:39 +0000
Subject: [PATCH] package: add om-watchdog package

om2p-watchdog package is OM2P specific. However a similar watchdog
mechanism exists on OM1P as well. This new package wants to substitute
om2p-watchdog with a new one which is suitable either for OM1P and OM2P.

Signed-off-by: Antonio Quartulli <ordex@autistici.org>

SVN-Revision: 29647
---
 package/om-watchdog/Makefile               | 45 ++++++++++++++++++++++
 package/om-watchdog/files/om-watchdog      | 15 ++++++++
 package/om-watchdog/files/om-watchdog.init | 22 +++++++++++
 3 files changed, 82 insertions(+)
 create mode 100644 package/om-watchdog/Makefile
 create mode 100644 package/om-watchdog/files/om-watchdog
 create mode 100644 package/om-watchdog/files/om-watchdog.init

diff --git a/package/om-watchdog/Makefile b/package/om-watchdog/Makefile
new file mode 100644
index 0000000000..7d517a11eb
--- /dev/null
+++ b/package/om-watchdog/Makefile
@@ -0,0 +1,45 @@
+#
+# Copyright (C) 2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=om-watchdog
+PKG_RELEASE:=1
+PKG_VERSION:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/om-watchdog
+  SECTION:=base
+  CATEGORY:=Base system
+  TITLE:=om watchdog
+  URL:=http://openwrt.org/
+endef
+
+define Package/om-watchdog/description
+ This package contains the hw watchdog script for the OM1P and OM2P device.
+endef
+
+define Build/Prepare
+endef
+
+define Build/Compile
+endef
+
+define Build/Compile
+endef
+
+define Package/om-watchdog/install
+	$(INSTALL_DIR) $(1)/etc/init.d/
+	$(INSTALL_DIR) $(1)/sbin/
+	$(INSTALL_BIN) ./files/om-watchdog.init $(1)/etc/init.d/om-watchdog
+	$(INSTALL_BIN) ./files/om-watchdog $(1)/sbin/om-watchdog
+endef
+
+
+$(eval $(call BuildPackage,om-watchdog))
+
diff --git a/package/om-watchdog/files/om-watchdog b/package/om-watchdog/files/om-watchdog
new file mode 100644
index 0000000000..d730c68447
--- /dev/null
+++ b/package/om-watchdog/files/om-watchdog
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+GPIO=$1
+
+trap "" INT HUP
+
+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
diff --git a/package/om-watchdog/files/om-watchdog.init b/package/om-watchdog/files/om-watchdog.init
new file mode 100644
index 0000000000..d598c86a38
--- /dev/null
+++ b/package/om-watchdog/files/om-watchdog.init
@@ -0,0 +1,22 @@
+#!/bin/sh /etc/rc.common
+#
+# Copyright (C) 2011 OpenWrt.org
+#
+
+START=11
+
+SERVICE_DAEMONIZE=1
+
+boot() {
+	if [ -r /lib/ar71xx.sh ]; then
+		. /lib/ar71xx.sh
+		local board=$(ar71xx_board_name)
+	fi
+
+	if [ "$board" = "om2p" ]; then
+		service_start /sbin/om-watchdog 12
+	else
+		#we assume it is om1p in this case
+		service_start /sbin/om-watchdog 3
+	fi
+}
-- 
GitLab