om-watchdog: Stop om-watchdog via procd before rebooting
[oweals/openwrt.git] / package / kernel / om-watchdog / files / om-watchdog.init
1 #!/bin/sh /etc/rc.common
2 #
3 # Copyright (C) 2011 OpenWrt.org
4 #
5
6 START=11
7 STOP=11
8
9 USE_PROCD=1
10 NAME=om-watchdog
11 PROG=/sbin/om-watchdog
12
13 get_gpio() {
14         if [ -r /lib/ar71xx.sh ]; then
15                 . /lib/ar71xx.sh
16                 local board=$(ar71xx_board_name)
17
18                 case "$board" in
19                         "om2p"|"om2p-hs"|"om2p-hsv2")
20                                 return 12
21                                 ;;
22                         "om2pv2"|"om2p-lc")
23                                 return 26
24                                 ;;
25                         "om5p"|"om5p-an")
26                                 return 11
27                                 ;;
28                         "mr600v2")
29                                 return 15
30                                 ;;
31                         "mr900"|"mr900v2"|"mr1750")
32                                 return 16
33                                 ;;
34                 esac
35         else
36                 #we assume it is om1p in this case
37                 return 3
38         fi
39
40         return 255
41 }
42
43 start_service() {
44         get_gpio
45         gpio="$?"
46         [ "$gpio" != "255" ] || return
47
48         procd_open_instance
49         procd_set_param command "${PROG}" "${gpio}"
50         procd_set_param respawn
51         procd_close_instance
52 }