#!/bin/sh
# #############################################################
# script to disable UCD VCS rails.
# This REQUIRES unaltered/original UCD cfg file.
# 10/28/16 PGR -
# 11/10/16 PGR - unbind/bind UCD driver

ucd_retries=5
ucd=

# unbind ucd driver to permit i2cset
ucdpath="/sys/bus/i2c/drivers/ucd9000"
if [ -e $ucdpath ]
then
  ucd=`ls -1 $ucdpath | grep 64`
  if [ -n "$ucd" ]
  then
    echo $ucd > $ucdpath/unbind
  fi
fi

## program UCD to bypass VCS (DD1 issue)
## move memory enables to align with VDN (VDN to VDDR leakage issue)
## remove GPU PGOOD from system reset.
#GPO_CONFIG_1 (GPIO15)
i2cset -y 11 0x64 0xF7 0x00 i
i2cset -y 11 0x64 0xF8 0x15 0x6E 0x80 0x08 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 i
#GPO_CONFIG_2 (GPIO7)
i2cset -y 11 0x64 0xF7 0x01 i
i2cset -y 11 0x64 0xF8 0x15 0x16 0x80 0x08 0x00 0x00 0x20 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 i
#SYSTEM_RESET_CONFIG
i2cset -y 11 0x64 0xD2 0x09 0x3F 0xFF 0x27 0x0A 0x00 0x06 0x00 0x00 0x02 i
#ON_OFF_CONFIG rail 15
i2cset -y 11 0x64 0x00 0x0E i
i2cset -y 11 0x64 0x02 0x1A i
#ON_OFF_CONFIG rail 16
i2cset -y 11 0x64 0x00 0x0F i
i2cset -y 11 0x64 0x02 0x1A i
# change VDN delays based on UCD MFR_REVISION setting
REV=`i2cget -y 11 0x64 0x9B i 2|cut -f2 -d' '`
if [ "$REV" == "0x01" -o "$REV" == "0x02" ] ; then
  # use 20ms delay for VDN
  #TON_DELAY rail 8
  i2cset -y 11 0x64 0x00 0x07 i
  i2cset -y 11 0x64 0x60 0x80 0xDA i
  #TON_DELAY rail 9
  i2cset -y 11 0x64 0x00 0x08 i
  i2cset -y 11 0x64 0x60 0x80 0xDA i
else
  # use 70ms delay for VDN
  #TON_DELAY rail 8
  i2cset -y 11 0x64 0x00 0x07 i
  i2cset -y 11 0x64 0x60 0x30 0xEA i
  #TON_DELAY rail 9
  i2cset -y 11 0x64 0x00 0x08 i
  i2cset -y 11 0x64 0x60 0x30 0xEA i
fi

# re-bind ucd driver only if we unbound it (i.e. ucd has been set with a value)
if [ -e $ucdpath -a -n "$ucd" ]; then
  j=0
  until [ $j -ge $ucd_retries ] || [ -e $ucdpath/$ucd ]; do
    j=$((j+1))
    echo $ucd > $ucdpath/bind || ret=$?
    if [ $j -gt 1 ]; then
      echo "rebinding UCD driver. Retry number $j"
      sleep 1
    fi
  done
  if [ ! -e $ucdpath/$ucd ]; then exit $ret; fi
fi

