#!/bin/sh
# Copyright (C) 2011 Draytek
# This script will reset(power off/on) the usb port

case $1 in
1)	# reset port 1    
    uci -q -P /var/state revert network.3gdev1
    uci -q -P /var/state revert network.3gif1
	echo "clear" > /proc/gpio/GPIOA12 # USB1
	echo "reset usb port #1" > /dev/console 2>&1
	sleep 1
	echo "set" > /proc/gpio/GPIOA12 # USB1
	;;
2)	# reset port 2  
    uci -q -P /var/state revert network.3gdev2
    uci -q -P /var/state revert network.3gif2
	echo "clear" > /proc/gpio/GPIOA31 # USB2
	echo "reset usb port #2" > /dev/console 2>&1
	sleep 1
	echo "set" > /proc/gpio/GPIOA31 # USB2
	;;
0)	# reset hub	
	echo "clear" > /proc/gpio/GPIOA4 # HUB
	echo "reset usb hub" > /dev/console 2>&1
	sleep 1
	echo "set" > /proc/gpio/GPIOA4 # HUB
	;;
*)	# reset 2 usb ports	 
    uci -q -P /var/state revert network.3gdev1
    uci -q -P /var/state revert network.3gif1
	echo "clear" > /proc/gpio/GPIOA12 # USB1
	echo "reset usb port #1" > /dev/console 2>&1	
    uci -q -P /var/state revert network.3gdev2
    uci -q -P /var/state revert network.3gif2
	echo "clear" > /proc/gpio/GPIOA31 # USB2
	echo "reset usb port #2" > /dev/console 2>&1	
	sleep 2
	echo "set" > /proc/gpio/GPIOA12 # USB1	
	echo "set" > /proc/gpio/GPIOA31 # USB2
	;;

esac
