snow: i2c: Reset i2c if we get a timeout in slave mode
snow: i2c: Reset i2c if we get a timeout in slave mode

This is important to do because if we don't reset we could leave
the i2c bus in a wedged state (it's possible that whoever was
mastering us could have reset halfway through a transaction).

BUG=chrome-os-partner:14430
BRANCH=snow
TEST=From vt2 type: "echo bug > /proc/breakme" several times
and see good reboots.  Check scope trace and see that reset of
i2c bus helped (SDA low for 100ms and then fixed).
TEST=Run hacky "repro" script from bug see that i2c doesn't get
wedged.

Change-Id: I57010dcc5f4baa63278b6a025d44f10f00eb9e9d
Signed-off-by: Doug Anderson <49983c4a76b998672954ed5edf4a62db4a336502@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/35115
Reviewed-by: Simon Glass <c00b0378376498bd9cd974c388df8854c0131d27@chromium.org>
Reviewed-by: Vincent Palatin <70a9964ec8fd10b0b08fcc8623c2add25ddf99ac@chromium.org>
Reviewed-by: Charlie Mooney <c4f45ade001857f07012a75265a97cb07f1531f2@chromium.org>

coreboot/chrome-ec,longsleep/ec,akappy7/ChromeOS_EC_LED_Diagnostics,gelraen/cros-ec,mtk09422/chromiumos-platform-ec,fourier49/BIZ_EC,akappy7/ChromeOS_EC_LED_Diagnostics,eatbyte/chromium-ec,md5555/ec,md5555/ec,eatbyte/chromium-ec,md5555/ec,alterapraxisptyltd/chromium-ec,coreboot/chrome-ec,fourier49/BIZ_EC,gelraen/cros-ec,gelraen/cros-ec,fourier49/BZ_DEV_EC,longsleep/ec,fourier49/BIZ_EC,mtk09422/chromiumos-platform-ec,akappy7/ChromeOS_EC_LED_Diagnostics,eatbyte/chromium-ec,thehobn/ec,akappy7/ChromeOS_EC_LED_Diagnostics,alterapraxisptyltd/chromium-ec,fourier49/BZ_DEV_EC,fourier49/BZ_DEV_EC,eatbyte/chromium-ec,thehobn/ec,fourier49/BZ_DEV_EC,thehobn/ec,gelraen/cros-ec,fourier49/BIZ_EC,coreboot/chrome-ec,alterapraxisptyltd/chromium-ec,md5555/ec,mtk09422/chromiumos-platform-ec,longsleep/ec,alterapraxisptyltd/chromium-ec,coreboot/chrome-ec,coreboot/chrome-ec,thehobn/ec,akappy7/ChromeOS_EC_LED_Diagnostics,mtk09422/chromiumos-platform-ec,coreboot/chrome-ec,longsleep/ec