autotest: servo.py: retry checking of recently set GPIOs

During debug of a FAFT flakiness we discovered that occasionally the setting of
warm_reset quietly failed its assertion.  Turns out its due to the slow edge rate
of the pull-up and a fast read by servod to check the result.

This CL adds a retry loop for the read allowing for a maximum of a 1 second
settling time.  It re-checks the value every 100ms in order to not overly delay
faster GPIOs.

For the the particular GPIO, warm_reset, I see only one retry when necessary and
its seen only 1 out of 4 times that I transistion warm_reset to off.

BUG=chromium-os:26808
TEST=run FAFT suite successfully via,

./run_remote_tests.sh suites/control.faft -a \
  'servo_serial=498432-00031 xml_config=servo_stumpy_overlay.xml' \
  --remote=<remote>

Change-Id: I57d363ebd6ef429e20b01d9f5d783576cc93ee42
Reviewed-on: https://gerrit.chromium.org/gerrit/16742
Reviewed-by: Todd Broch <tbroch@chromium.org>
Tested-by: Todd Broch <tbroch@chromium.org>
Commit-Ready: Todd Broch <tbroch@chromium.org>
1 file changed