114 lines
1.5 KiB
Bash
114 lines
1.5 KiB
Bash
#!/bin/sh
|
|
|
|
USB2514=/usr/bin/usb2514
|
|
GPIODIR=/sys/devices/platform/sob-odu.0
|
|
|
|
DEBUG=0
|
|
DRYRUN=0
|
|
|
|
test -x ${USB2514}
|
|
if [ $? -ne 0 ];
|
|
then
|
|
echo "ERROR - ${USB2514} does not exist or is not exeutable"
|
|
echo
|
|
fi
|
|
|
|
if [ $DRYRUN -ne 0 ] || [ $DEBUG -ne 0 ]; then
|
|
echo "DEBUG=$DEBUG\nDRYRUN=$DRYRUN\n"
|
|
fi;
|
|
|
|
### helper
|
|
echodeb() {
|
|
if [ $DEBUG -ne 0 ]; then
|
|
echo "DEBUG - $*"
|
|
fi;
|
|
}
|
|
|
|
gpioecho() {
|
|
echodeb "echo ${1} > ${2}"
|
|
if [ $DRYRUN -eq 0 ]; then
|
|
echo ${1} > ${2}
|
|
fi;
|
|
}
|
|
|
|
# $1 gpio $2 direction
|
|
init_pin() {
|
|
echodeb init_pin $1 $2
|
|
gpioecho ${1} "${GPIODIR}/export"
|
|
gpioecho ${2} "${GPIODIR}/gpio$_{1}/direction"
|
|
}
|
|
|
|
# $1 gpio $2 value
|
|
set_pin() {
|
|
echodeb set_pin $1 $2
|
|
gpioecho ${2} "${GPIODIR}/gpio_${1}/value"
|
|
}
|
|
|
|
# $1 pin $2 tempvalue $3 endvalue
|
|
toggle_pin() {
|
|
set_pin ${1} ${2}
|
|
sleep 1
|
|
set_pin ${1} ${3}
|
|
}
|
|
|
|
###
|
|
reset_modem1() {
|
|
toggle_pin mdm1_rst 1 0
|
|
}
|
|
|
|
reset_modem2() {
|
|
toggle_pin mdm2_rst 1 0
|
|
}
|
|
|
|
reset_gnss() {
|
|
toggle_pin gnss_rst 1 0
|
|
}
|
|
|
|
reset_adsb() {
|
|
toggle_pin adsb_rst 1 0
|
|
}
|
|
|
|
reset_ais() {
|
|
toggle_pin ais_off 1 0
|
|
}
|
|
|
|
reset_usb() {
|
|
# usb2514 now has internal code to assert/de-assert !hub_reset
|
|
${USB2514} 1
|
|
}
|
|
|
|
reset_all() {
|
|
reset_modem1
|
|
reset_modem2
|
|
reset_gnss
|
|
reset_adsb
|
|
reset_ais
|
|
reset_usb
|
|
}
|
|
|
|
print_help() {
|
|
echo $0 v0.2
|
|
echo
|
|
echo "help - this text"
|
|
echo "reset [device] - reset all/one device(s)"
|
|
echo
|
|
}
|
|
case "$1" in
|
|
start)
|
|
;;
|
|
reset)
|
|
if [ -n "$2" ]; then
|
|
reset_${2}
|
|
else
|
|
reset_all
|
|
fi
|
|
;;
|
|
restart)
|
|
${0} reset
|
|
;;
|
|
*)
|
|
print_help
|
|
;;
|
|
esac
|
|
|