From d2bb6994eb3b2d9a20f31d9e9e9dac90dd58d6ac Mon Sep 17 00:00:00 2001 From: "S.J.R. van Schaik" Date: Fri, 31 Mar 2017 15:53:56 +0200 Subject: [PATCH] spi: add function to release SPI device --- include/spi.h | 1 + source/drivers/spi_flash.c | 6 ++++++ source/drivers/stm32f0_spi.c | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/include/spi.h b/include/spi.h index 490c145..8cfd934 100644 --- a/include/spi.h +++ b/include/spi.h @@ -14,6 +14,7 @@ struct spi_dev { }; struct spi_dev *spi_probe(void); +void spi_release(struct spi_dev *dev); int spi_set_cs_level(struct spi_dev *dev, int level); int spi_tx_rx(struct spi_dev *dev, void *rx_buf, const void *tx_buf, size_t len); diff --git a/source/drivers/spi_flash.c b/source/drivers/spi_flash.c index ec2462f..765e22a 100644 --- a/source/drivers/spi_flash.c +++ b/source/drivers/spi_flash.c @@ -152,3 +152,9 @@ err_free_dev: free(dev); return NULL; } + +void flash_release(struct flash_dev *dev) +{ + spi_release(dev->priv); + free(dev); +} diff --git a/source/drivers/stm32f0_spi.c b/source/drivers/stm32f0_spi.c index 3aafa7e..3771fd6 100644 --- a/source/drivers/stm32f0_spi.c +++ b/source/drivers/stm32f0_spi.c @@ -62,6 +62,11 @@ struct spi_dev *spi_probe(void) return dev; } +void spi_release(struct spi_dev *dev) +{ + free(dev); +} + static int stm32f0_spi_set_cs_level(struct spi_dev *dev, int level) { (void)dev;