summaryrefslogtreecommitdiff
path: root/recipes-bsp
diff options
context:
space:
mode:
authorBrandon Bayer <bbayer@multitech.com>2016-11-02 17:18:51 -0500
committerBrandon Bayer <bbayer@multitech.com>2016-11-02 17:18:51 -0500
commit47bab11486b952e842f956250bce4c378d471bea (patch)
tree0ea4742eb177f05c5d150f6267d3e73ee06895fe /recipes-bsp
parent1eb436893b7f5a24e62eebc4850bc7e35d9e9367 (diff)
parent284d483bdf2742334221ad10f9e9b151c540368f (diff)
downloadmeta-multitech-47bab11486b952e842f956250bce4c378d471bea.tar.gz
meta-multitech-47bab11486b952e842f956250bce4c378d471bea.tar.bz2
meta-multitech-47bab11486b952e842f956250bce4c378d471bea.zip
Merge remote-tracking branch 'public/master'
Diffstat (limited to 'recipes-bsp')
-rw-r--r--recipes-bsp/multitech/mts-io/mts-io.init111
1 files changed, 80 insertions, 31 deletions
diff --git a/recipes-bsp/multitech/mts-io/mts-io.init b/recipes-bsp/multitech/mts-io/mts-io.init
index 03bb5b0..45d45df 100644
--- a/recipes-bsp/multitech/mts-io/mts-io.init
+++ b/recipes-bsp/multitech/mts-io/mts-io.init
@@ -10,74 +10,106 @@
### END INIT INFO
((fail=0))
+# To log debug, set LOGDBG to /usr/bin/LOGGER
+if ((DEBUG)) ; then
+ LOGDBG=/usr/bin/logger
+else
+ LOGDBG=":"
+fi
+${LOGDBG} -p daemon.info 'mts-io script'
sysdir=/sys/devices/platform/mts-io
gpiodir=/sys/class/gpio
USBRST=${sysdir}/usbhub-reset
-RST[0]="${sysdir}/mtq-reset"
-RST[1]="${sysdir}/ap1-reset"
-RST[2]="${sysdir}/ap2-reset"
-RST[3]="${sysdir}/gnss-reset"
-RST[4]="${sysdir}/secure-reset"
-RST[5]="${sysdir}/eth-reset"
-RS9113RST="${sysdir}/wifi-bt-reset"
+RST[0]="${sysdir}/wifi-bt-reset"
+RST[1]="${sysdir}/mtq-reset"
+RST[2]="${sysdir}/ap1/reset"
+RST[3]="${sysdir}/ap1/creset"
+RST[4]="${sysdir}/ap2/reset"
+RST[5]="${sysdir}/ap2/creset"
+RST[6]="${sysdir}/gnss-reset"
+RST[7]="${sysdir}/secure-reset"
+RST[8]="${sysdir}/eth-reset"
+RST[9]="${sysdir}/sm1-reset"
-USLPTIME=30000 # 30 milliseconds from Redpine Signals Reset Spec
+
+USLPTIME=60000 # 30 milliseconds from Redpine Signals Reset Spec
WAIT="/bin/busybox usleep ${USLPTIME}"
reset_path() {
pin=$1
- /usr/bin/logger -t "mts-io" -p info Reset $pin
-
+ ${LOGDBG} -t "mts-io" -p daemon.info Reset $pin
if [[ -f ${pin} ]] ; then
if ! ( (echo 1 >${pin}) && (echo 0 >${pin}) && ${WAIT} && (echo 1 >${pin}) ) ; then
- /usr/bin/logger -t "mts-io" -p error -s "Failed write to ${pin}"
+ /usr/bin/logger -t "mts-io" -p daemon.error -s "Failed write to ${pin}"
+ return 1
fi
+ sleep 2
+
+ ${LOGDBG} -t "mts-io" -p daemon.info Completeed reset $pin
else
- /usr/bin/logger -t "mts-io" -p error -s "${pin} does not exist"
- return 1
+ ${LOGDBG} -t "mts-io" -p daemon.info "${pin} does not exist"
fi
return 0
}
reset_array() {
+ fail=0
((i=${#RST[@]}-1))
while ((i>=0)) ; do
if [[ -f ${RST[$i]} ]] ; then
if ! ( (echo 1 >${RST[i]}) ) ; then
- /usr/bin/logger -t "mts-io" -p error -s "Failed write to ${RST[$i]}"
+ /usr/bin/logger -t "mts-io" -p daemon.error -s "Failed write to ${RST[$i]}"
+ fail=1
+ else
+ ${LOGDBG} -t "mts-io" -p daemon.error -s "Wrote 1 to ${RST[$i]}"
fi
else
- /usr/bin/logger -t "mts-io" -p info -s "${RST[$i]} does not exist"
+ ${LOGDBG} -t "mts-io" -p daemon.info "${RST[$i]} does not exist"
RST[$i]=""
fi
((i--))
done
- while ((i>0)) ; do
- if ((${#RST[$i] > 0)) && [[ -f ${RST[$i]} ]] ; then
+ ((DBG)) && (cd $sysdir ; head gnss-reset eth-reset wifi-bt-reset usbhub-reset | logger -p daemon.info)
+ ((i=${#RST[@]}-1))
+ while ((i>=0)) ; do
+ ${LOGDBG} -s -p daemon.info "i value is $i RST is ${RST[$i]} count is ${#RST[$i]}"
+ if ((${#RST[$i]} > 0)) && [[ -f ${RST[$i]} ]] ; then
if ! ( (echo 0 >${RST[i]}) ) ; then
- /usr/bin/logger -t "mts-io" -p error -s "Failed write to ${RST[$i]}"
+ /usr/bin/logger -t "mts-io" -p daemon.error -s "Failed write to ${RST[$i]}"
+ fail=1
+ else
+ ${LOGDBG} -t "mts-io" -p daemon.error -s "Wrote 0 to ${RST[$i]}"
+ :
fi
else
- /usr/bin/logger -t "mts-io" -p info -s "${RST[$i]} does not exist"
+ ${LOGDBG} -t "mts-io" -p daemon.info "${RST[$i]} does not exist"
fi
+ ((i--))
done
${WAIT}
- while ((i>0)) ; do
- if ((${#RST[$i] > 0)) && [[ -f ${RST[$i]} ]] ; then
- if ! ( (echo 1 >${RST[i]}) ) ; then
- /usr/bin/logger -t "mts-io" -p error -s "Failed write to ${RST[$i]}"
+ ((DBG)) && (cd $sysdir ; head gnss-reset eth-reset wifi-bt-reset usbhub-reset | logger -p daemon.info)
+ ((i=${#RST[@]}-1))
+ while ((i>=0)) ; do
+ if ((${#RST[$i]} > 0)) && [[ -f ${RST[$i]} ]] ; then
+ if ! ( (echo 1 >${RST[$i]}) ) ; then
+ /usr/bin/logger -t "mts-io" -p daemon.error -s "Failed write to ${RST[$i]}"
+ fail=1
+ else
+ ${LOGDBG} -t "mts-io" -p daemon.error -s "Wrote 1 to ${RST[$i]}"
fi
else
- /usr/bin/logger -t "mts-io" -p info -s "${RST[$i]} does not exist"
+ ${LOGDBG} -t "mts-io" -p daemon.info "${RST[$i]} does not exist"
fi
+ ((i--))
done
+ ((DBG)) && (cd $sysdir ; head gnss-reset eth-reset wifi-bt-reset usbhub-reset | logger -p daemon.info)
+ return $fail
}
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)
@@ -91,17 +123,17 @@ 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"
+ /usr/bin/logger -t "mts-io" -p daemon.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"
+ /usr/bin/logger -t "mts-io" -p daemon.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"
+ /usr/bin/logger -t "mts-io" -p daemon.info -s "Linking /dev/mfser to /dev/ttyAP2"
ln -sf /dev/ttyAP2 /dev/mfser
fi
fi
@@ -110,15 +142,16 @@ mfser_init() {
case $1 in
start)
- /usr/bin/logger -t "mts-io" -p info -s "Loading mts-io module"
+ /usr/bin/logger -t "mts-io" -p daemon.info -s "Loading mts-io module"
if ! modprobe mts_io ; then
((fail++))
fi
+ /usr/bin/logger -t "mts-io" -p daemon.info -s "Resetting system modules"
read_card_info
if ! reset_path $USBRST ; then
((fail++))
fi
- /bin/busybox usleep 100000
+ /bin/busybox usleep $USLPTIME
reset_array
mts-io-sysfs store radio-reset 0
mfser_init
@@ -135,7 +168,7 @@ case $1 in
;;
stop)
- /usr/bin/logger -t "mts-io" -p info -s "Unloading mts-io module"
+ /usr/bin/logger -t "mts-io" -p daemon.info -s "Unloading mts-io module"
modprobe -r mts_io
RETVAL=$?
if ((RETVAL == 0)) ; then
@@ -149,6 +182,22 @@ case $1 in
sleep 1
$0 start
;;
+ reload)
+ /usr/bin/logger -t "mts-io" -p daemon.info -s "Resetting system modules"
+ if ! reset_path $USBRST ; then
+ ((fail++))
+ fi
+ /bin/busybox usleep $USLPTIME
+ reset_array
+ mts-io-sysfs store radio-reset 0
+ mfser_init
+ if ((fail == 0)) ; then
+ echo "OK"
+ else
+ echo "FAIL"
+ fi
+ exit $fail
+ ;;
status)
if [[ -d ${sysdir} ]] ; then
echo Driver is loaded