Merge pull request #2644 from kasjer/kasjer/fix-spi_hal-bus_write_read
hw/bus/spi_hal: Fix bus_spi_write_read
diff --git a/hw/bus/drivers/spi_hal/src/spi_hal.c b/hw/bus/drivers/spi_hal/src/spi_hal.c
index 1404456..5832fee 100644
--- a/hw/bus/drivers/spi_hal/src/spi_hal.c
+++ b/hw/bus/drivers/spi_hal/src/spi_hal.c
@@ -212,7 +212,7 @@
#if MYNEWT_VAL(SPI_HAL_USE_NOBLOCK)
if (wlength + rlength <= sizeof(buf)) {
memcpy(buf, wbuf, wlength);
- memset(buf + wlength, 0, rlength);
+ memset(buf + wlength, 0xFF, rlength);
rc = hal_spi_txrx_noblock(dev->spi_dev.cfg.spi_num, buf, buf, wlength + rlength);
if (rc == 0) {
os_sem_pend(&dev->sem, OS_TIMEOUT_NEVER);
@@ -222,7 +222,7 @@
rc = hal_spi_txrx_noblock(dev->spi_dev.cfg.spi_num, (uint8_t *)wbuf, NULL, wlength);
if (rc == 0) {
os_sem_pend(&dev->sem, OS_TIMEOUT_NEVER);
- memset(rbuf, 0, rlength);
+ memset(rbuf, 0xFF, rlength);
rc = hal_spi_txrx_noblock(dev->spi_dev.cfg.spi_num, rbuf, rbuf, rlength);
if (rc == 0) {
os_sem_pend(&dev->sem, OS_TIMEOUT_NEVER);
@@ -239,7 +239,8 @@
} else {
rc = hal_spi_txrx(dev->spi_dev.cfg.spi_num, (uint8_t *)wbuf, NULL, wlength);
if (rc == 0) {
- rc = hal_spi_txrx(dev->spi_dev.cfg.spi_num, NULL, rbuf, rlength);
+ memset(rbuf, 0xFF, rlength);
+ rc = hal_spi_txrx(dev->spi_dev.cfg.spi_num, rbuf, rbuf, rlength);
}
}
#endif