stm32/spi: Reset peripheral after every packet
stm32/spi: Reset peripheral after every packet

RX DMA seems to get misaligned sometimes yielding to extra bytes before the
first byte on the wire.
in_msg=[00 00 00 03 f4 09 00 00 ...]
                ^ real first byte

To fix this we want to reset and reinit the SPI peripheral after every packet,
in the same place where setup_for_transaction() is called.

This bug applies to the STM32F0 line but resetting the peripheral on other STM32
ECs should not break anything.

BUG=chrome-os-partner:31390
TEST=On STM32F0:
ap# cd /sys/class/power_supply/sbs-20-000b/; while true; do grep "" * >/dev/null 2>&1; done
You should not see "SPI rx bad data" with in_msg packets that have extra bytes
in the beggining. Wait though, it might take up to a few minutes for stuff to
break.
BRANCH=None

Change-Id: If9ab93c5c9040a2c7bda33d7cc990603f1121f3f
Signed-off-by: Alexandru M Stan <1784cbba6d7675b1eba55eaefe41c7672ad9da3b@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/217527
Reviewed-by: Randall Spangler <62698fdbb84d1779579ee80c3f39fac22017e5bc@chromium.org>

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