Increase AVDD on witherspoon

Per request of power team, adding an AVDD override to
our power on sequence

Resolves openbmc/openbmc#2112

Change-Id: I82478e6f3eb30a108c4e7332369d36568e425315
Signed-off-by: Andrew Geissler <andrewg@us.ibm.com>
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds.sh b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds.sh
index 51d3a9a..6c11caa 100644
--- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds.sh
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds.sh
@@ -22,3 +22,36 @@
 # VDN B - PGOOD_ON threshold
 i2cset -y 5 0x71 0x00 0x00 b # PAGE
 i2cset -y 5 0x71 0x5E 0xCD 0x00 i # set to 0.8V
+
+# unbind ucd driver to permit i2cset
+ucd_retries=5
+ucd=
+
+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
+
+# Raise AVDD +100mV
+i2cset -y 11 0x64 0x00 0x09 i # set PAGE
+i2cset -y 11 0x64 0xF5 0x81 i # set margin_config
+i2cset -y 11 0x64 0x21 0x85 0x33 i # set VOUT_COMMAND
+
+# 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