From 56bbc5bf6d5c017c588102000e6efe27bed06933 Mon Sep 17 00:00:00 2001 From: Thomas Tromp Date: Fri, 12 Mar 2021 16:05:14 -0500 Subject: [PATCH] Fix fe310 SPI read --- src/machine/machine_fe310.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/machine/machine_fe310.go b/src/machine/machine_fe310.go index dab69e9d..062abf6d 100644 --- a/src/machine/machine_fe310.go +++ b/src/machine/machine_fe310.go @@ -174,11 +174,13 @@ func (spi SPI) Transfer(w byte) (byte, error) { spi.Bus.TXDATA.Set(uint32(w)) // wait until receive has data - for spi.Bus.RXDATA.HasBits(sifive.QSPI_RXDATA_EMPTY) { + data := spi.Bus.RXDATA.Get() + for data&sifive.QSPI_RXDATA_EMPTY > 0 { + data = spi.Bus.RXDATA.Get() } // return data - return byte(spi.Bus.RXDATA.Get() & sifive.QSPI_RXDATA_DATA_Msk), nil + return byte(data), nil } // I2C on the FE310-G002.