altos/stm: Add ao_spi_put_pins for MS5607 driver
authorKeith Packard <keithp@keithp.com>
Tue, 6 Dec 2022 03:29:28 +0000 (19:29 -0800)
committerKeith Packard <keithp@keithp.com>
Sun, 18 Dec 2022 02:02:09 +0000 (18:02 -0800)
This function re-configures the GPIO mux to disconnect the SPI block
from the pins driving the MS5607.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/stm/ao_arch_funcs.h
src/stm/ao_spi_stm.c

index 9f31a36fa6f9e8bc5a58b98f46b6b1ce3a2aa038..9922513be007bf005c19c9d9d1cd5021e3266300 100644 (file)
@@ -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);
 
index 0215f03ebd6a56bf173c16e16e8c0a53cd008955..ad8f55b5b0941f9955ad260b7c35ad144f07e40b 100644 (file)
@@ -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)
 {