#!/bin/sh
# /etc/init.d/usb-peripherials
#
### BEGIN INIT INFO
# Provides:          usb-peripherials
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     5
# Default-Stop:      0 6
# Short-Description: startupcounter
# Description:       Records number of entries into each run level to $logdirectory
### END INIT INFO

##GPIO3_9
USB_SERIAL_RESET_N=73

##GPIO3_15
PH_USB_SERIAL_RESET_N=79

##GPIO3_23
USB_TOUCHSCREEN_RESET_N=87

#set -x

PLATFORM=`cat /etc/raven/platform`

set_gpio()
{
	if [ ! -d /sys/class/gpio/gpio$1 ]; then
		echo $1 > /sys/class/gpio/export

		if [ $2 -eq 1 ]; then
			echo high > /sys/class/gpio/gpio$1/direction
		else
			echo low > /sys/class/gpio/gpio$1/direction
		fi
	fi
	
	echo $2 > /sys/class/gpio/gpio$1/value
}

case "$1" in
  start)

	if [ "${PLATFORM}" = "PINEHURST" ]; then
		set_gpio ${PH_USB_SERIAL_RESET_N} 1	
		exit 0    
	fi

 	set_gpio ${USB_SERIAL_RESET_N} 1
	set_gpio ${USB_TOUCHSCREEN_RESET_N} 1
  ;;
  stop)

	if [ "${PLATFORM}" = "PINEHURST" ]; then
		set_gpio ${PH_USB_SERIAL_RESET_N} 0	
		exit 0    
	fi

 	set_gpio ${USB_SERIAL_RESET_N} 0
	set_gpio ${USB_TOUCHSCREEN_RESET_N} 0
  ;;
  reset)

	if [ "${PLATFORM}" = "PINEHURST" ]; then
		set_gpio ${PH_USB_SERIAL_RESET_N} 0	
		sleep 1
		set_gpio ${PH_USB_SERIAL_RESET_N} 1	
		exit 0    
	fi

 	set_gpio ${USB_SERIAL_RESET_N} 0
	set_gpio ${USB_TOUCHSCREEN_RESET_N} 0

	sleep 1

 	set_gpio ${USB_SERIAL_RESET_N} 1
	set_gpio ${USB_TOUCHSCREEN_RESET_N} 1
  ;;
  *)
	echo "Usage /etc/init.d/usb-peripherials [start|stop|reset]"
	exit -1
  ;;
esac

exit 0
