5c442c689687e898e7adf887902ef6938e7ea2f5
[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" | \
20                         "om2p-hs" | \
21                         "om2p-hsv2")
22                                 return 12
23                                 ;;
24                         "om2pv2" | \
25                         "om2p-lc")
26                                 return 26
27                                 ;;
28                         "om5p" | \
29                         "om5p-an")
30                                 return 11
31                                 ;;
32                         "om5p-ac")
33                                 return 17
34                                 ;;
35                         "mr600v2")
36                                 return 15
37                                 ;;
38                         "mr900" | \
39                         "mr900v2" | \
40                         "mr1750")
41                                 return 16
42                                 ;;
43                 esac
44         else
45                 #we assume it is om1p in this case
46                 return 3
47         fi
48
49         return 255
50 }
51
52 start_service() {
53         get_gpio
54         gpio="$?"
55         [ "$gpio" != "255" ] || return
56
57         procd_open_instance
58         procd_set_param command "${PROG}" "${gpio}"
59         procd_set_param respawn
60         procd_close_instance
61 }