#!/bin/bash function detect_hw { if [ ! -d /sys/devices/platform/mts-io/xdot ]; then echo "XDOT hardware not found" exit fi } function detect_hw_dev { if [ ! -h /dev/disk/by-label/XDOT ]; then echo "XDOT dev hardware not found" exit fi } function flash { echo "Flashing new firmware" cp $FIRMWARE_FILE $TEMP_DIR } function mount_xdot { TEMP_DIR=`mktemp -d` mount /dev/disk/by-label/XDOT $TEMP_DIR } function reset { mts-io-sysfs store xdot/reset 0 mts-io-sysfs store xdot/reset 1 mts-io-sysfs store xdot/reset -- -1 &>/dev/null } function usb_reset { echo 0 > /sys/bus/usb/devices/1-2.1/authorized sleep 1 echo 1 > /sys/bus/usb/devices/1-2.1/authorized } function clean_up { umount $TEMP_DIR rm -fr $TEMP_DIR } case "$1" in "flash") detect_hw_dev FIRMWARE_FILE=$2 mts-io-sysfs store xdot/reset -- -1 &>/dev/null mount_xdot flash clean_up sleep 1 reset echo done ;; "mount") detect_hw_dev mount_xdot echo Mounted at $TEMP_DIR ;; "reset") detect_hw reset ;; "usb-reset") detect_hw usb_reset ;; *) ## If no parameters are given, print which are avaiable. echo "Usage: $0 {flash|mount|reset|usb-reset}" ;; esac