From 2ea3f551b3c4649320efe2fd999f01012bca03bd Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 5 Dec 2022 19:29:28 -0800 Subject: [PATCH] altos/stm: Add ao_spi_put_pins for MS5607 driver This function re-configures the GPIO mux to disconnect the SPI block from the pins driving the MS5607. Signed-off-by: Keith Packard --- src/stm/ao_arch_funcs.h | 3 +++ src/stm/ao_spi_stm.c | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/stm/ao_arch_funcs.h b/src/stm/ao_arch_funcs.h index 9f31a36f..9922513b 100644 --- a/src/stm/ao_arch_funcs.h +++ b/src/stm/ao_arch_funcs.h @@ -92,6 +92,9 @@ ao_spi_get(uint8_t spi_index, uint32_t speed); void ao_spi_put(uint8_t spi_index); +void +ao_spi_put_pins(uint8_t spi_index); + void ao_spi_send(const void *block, uint16_t len, uint8_t spi_index); diff --git a/src/stm/ao_spi_stm.c b/src/stm/ao_spi_stm.c index 0215f03e..ad8f55b5 100644 --- a/src/stm/ao_spi_stm.c +++ b/src/stm/ao_spi_stm.c @@ -427,6 +427,16 @@ ao_spi_put(uint8_t spi_index) ao_mutex_put(&ao_spi_mutex[id]); } +void +ao_spi_put_pins(uint8_t spi_index) +{ + uint8_t id = AO_SPI_INDEX(spi_index); + + ao_spi_disable_pin_config(ao_spi_pin_config[id]); + ao_spi_pin_config[id] = AO_SPI_CONFIG_NONE; + ao_spi_put(spi_index); +} + static void ao_spi_channel_init(uint8_t spi_index) { -- 2.39.5