summaryrefslogtreecommitdiff
path: root/recipes-bsp/multitech/mts-io/mts-io.init
blob: e770f904381dcadce1a6ab1010453ad202f9095b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/bash

sysdir=/sys/devices/platform/mts-io
gpiodir=/sys/class/gpio

RS9113RST=${sysdir}/wifi-bt-reset

reset_rs9113() {
	/usr/bin/logger -t "mts-io" -p info Reset the WiFi Bluetooth device
	
	if [[ -f ${RS9113RST} ]] ; then
		if ! ( (echo 1 >${RS9113RST}) && (echo 0 >${RS9113RST}) && (echo 1 >${RS9113RST}) ) ; then
			/usr/bin/logger -t "mts-io" -p error -s "Failed write to ${RS9113RST}"
		fi
	fi
}
read_card_info() {
  ap1_product_id=""
  ap2_product_id=""
  mts_hw_version=""

  if [[ -d $sysdir/ap1 ]]; then
    ap1_product_id=$(cat $sysdir/ap1/product-id)
  fi
  if [[ -d $sysdir/ap2 ]]; then
    ap2_product_id=$(cat $sysdir/ap2/product-id)
  fi
}

mfser_init() {
  found_ap1=0

  if [[ $ap1_product_id =~ ^MTAC-MFSER- ]]; then
    /usr/bin/logger -t "mts-io" -p info -s "Linking /dev/mfser to /dev/ttyAP1"
    ln -sf /dev/ttyAP1 /dev/mfser
    found_ap1=1
  fi

  if [[ $ap2_product_id =~ ^MTAC-MFSER- ]]; then
    if [[ $found_ap1 = 1 ]]; then
      /usr/bin/logger -t "mts-io" -p info -s "Linking /dev/mfser-2 to /dev/ttyAP2"
      ln -sf /dev/ttyAP2 /dev/mfser-2
    else
      /usr/bin/logger -t "mts-io" -p info -s "Linking /dev/mfser to /dev/ttyAP2"
      ln -sf /dev/ttyAP2 /dev/mfser
    fi
  fi

}

case $1 in
  start)
    /usr/bin/logger -t "mts-io" -p info -s "Loading mts-io module"
    modprobe mts_io
    read_card_info
    reset_rs9113
    mfser_init
    ;;

  stop)
    /usr/bin/logger -t "mts-io" -p info -s "Unloading mts-io module"
    modprobe -r mts_io
    ;;
  status)
  	if [[ -d ${sysdir} ]] ; then
  		echo Driver is loaded
  		exit 0
  	else
  		echo Driver is not loaded
  		exit 3
  	fi
  	;;
  *)
    echo "Usage: $0 {start|stop}"
    exit 2
    ;;
esac