From 2aaa54722c78e4739026d8ed608e8c7ff162a38c Mon Sep 17 00:00:00 2001 From: Uros Majstorovic Date: Mon, 10 May 2021 16:53:58 +0200 Subject: spi_dev: deselect not mandatory prior to select --- fw/fe310/eos/spi_dev.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'fw') diff --git a/fw/fe310/eos/spi_dev.c b/fw/fe310/eos/spi_dev.c index d279faf..4713826 100644 --- a/fw/fe310/eos/spi_dev.c +++ b/fw/fe310/eos/spi_dev.c @@ -38,9 +38,13 @@ void eos_spi_dev_init(void) { int eos_spi_select(unsigned char dev) { if (dev == EOS_SPI_DEV_NET) return EOS_ERR; - if (spi_dev != EOS_SPI_DEV_NET) return EOS_ERR; + if (spi_lock) return EOS_ERR_BUSY; - eos_net_stop(); + if (spi_dev == EOS_SPI_DEV_NET) { + eos_net_stop(); + } else { + eos_spi_stop(); + } spi_dev = dev; eos_spi_start(spi_div[dev], spi_cfg[dev].csid, spi_cfg[dev].cspin, spi_cfg[dev].evt); @@ -49,8 +53,8 @@ int eos_spi_select(unsigned char dev) { } int eos_spi_deselect(void) { - if (spi_lock) return EOS_ERR_BUSY; if (spi_dev == EOS_SPI_DEV_NET) return EOS_ERR; + if (spi_lock) return EOS_ERR_BUSY; eos_spi_stop(); -- cgit v1.2.3