aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/stm32f1/include/series/spi.h
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2012-06-03 02:11:07 -0400
committerMarti Bolivar <mbolivar@leaflabs.com>2012-06-03 02:15:22 -0400
commitf5c37f28fd9be3bd8e2c7159a09891d5e571bc43 (patch)
tree5a1fdc7cc45a8583df6a4b7b3412a25cfd180d23 /libmaple/stm32f1/include/series/spi.h
parentff56b76d41a390ed193da180316690f6e2dcbb75 (diff)
downloadlibrambutan-f5c37f28fd9be3bd8e2c7159a09891d5e571bc43.tar.gz
librambutan-f5c37f28fd9be3bd8e2c7159a09891d5e571bc43.zip
Globally switch style for GPIO config routines.
Stupidly, spi_gpio_cfg() didn't take a spi_dev* argument on F1, because it doesn't matter there. On F2, where we need to set an alternate function when configuring GPIOs for SPI, we need to know the dev. We can't add break backwards compatibility, so we need a new function. However, we've since added a bunch of foo_gpio_cfg() routines, and we don't want confusing asymmetry in the names. So a global style change is needed. (Fortunately, the new functions weren't part of a release, so it's no problem to change their names). Change all foo_gpio_cfg() routines to foo_config_gpios() (or foo_config_gpio(), if there's only one GPIO to configure). For backwards compatibility, make spi_gpio_cfg() on F1 an __always_inline call to spi_config_gpios(). Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
Diffstat (limited to 'libmaple/stm32f1/include/series/spi.h')
-rw-r--r--libmaple/stm32f1/include/series/spi.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/libmaple/stm32f1/include/series/spi.h b/libmaple/stm32f1/include/series/spi.h
index 167df0c..8cc4c4d 100644
--- a/libmaple/stm32f1/include/series/spi.h
+++ b/libmaple/stm32f1/include/series/spi.h
@@ -34,6 +34,8 @@
#ifndef _LIBMAPLE_STM32F1_SPI_H_
#define _LIBMAPLE_STM32F1_SPI_H_
+#include <libmaple/libmaple_types.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -63,6 +65,36 @@ extern struct spi_dev *SPI2;
extern struct spi_dev *SPI3;
#endif
+/*
+ * Routines
+ */
+
+/* spi_gpio_cfg(): Backwards compatibility shim to spi_config_gpios() */
+struct gpio_dev;
+extern void spi_config_gpios(struct spi_dev*, uint8,
+ struct gpio_dev*, uint8,
+ struct gpio_dev*, uint8, uint8, uint8);
+/**
+ * @brief Deprecated. Use spi_config_gpios() instead.
+ * @see spi_config_gpios()
+ */
+static __always_inline void spi_gpio_cfg(uint8 as_master,
+ struct gpio_dev *nss_dev,
+ uint8 nss_bit,
+ struct gpio_dev *comm_dev,
+ uint8 sck_bit,
+ uint8 miso_bit,
+ uint8 mosi_bit) {
+ /* We switched style globally to foo_config_gpios() and always
+ * taking a foo_dev* argument (that last bit is the important
+ * part) after this function was written.
+ *
+ * However, spi_config_gpios() just ignores the spi_dev* on F1, so
+ * we can still keep this around for older code. */
+ spi_config_gpios(NULL, as_master, nss_dev, nss_bit,
+ comm_dev, sck_bit, miso_bit, mosi_bit);
+}
+
#ifdef __cplusplus
}
#endif