From 6c185655c88861f17766bb2a8dcd64a9b201fd97 Mon Sep 17 00:00:00 2001 From: Kaspar Schleiser <kaspar@schleiser.de> Date: Thu, 13 Aug 2015 15:20:39 +0200 Subject: [PATCH] cpu: stm32f1: use periph_common SPI functions --- cpu/stm32f1/Makefile.include | 3 +++ cpu/stm32f1/include/periph_cpu.h | 9 +++++++ cpu/stm32f1/periph/spi.c | 41 -------------------------------- 3 files changed, 12 insertions(+), 41 deletions(-) diff --git a/cpu/stm32f1/Makefile.include b/cpu/stm32f1/Makefile.include index 99de28dcc7..14626ee605 100644 --- a/cpu/stm32f1/Makefile.include +++ b/cpu/stm32f1/Makefile.include @@ -3,4 +3,7 @@ export CPU_ARCH = cortex-m3 # use hwtimer compatibility module USEMODULE += hwtimer_compat +# use common periph functions +USEMODULE += periph_common + include $(RIOTCPU)/Makefile.include.cortexm_common diff --git a/cpu/stm32f1/include/periph_cpu.h b/cpu/stm32f1/include/periph_cpu.h index 1ded7c7065..f883b03b69 100644 --- a/cpu/stm32f1/include/periph_cpu.h +++ b/cpu/stm32f1/include/periph_cpu.h @@ -102,6 +102,15 @@ typedef enum { */ void gpio_init_af(gpio_t pin, gpio_af_out_t af); +/** + * @brief declare needed generic SPI functions + * @{ + */ +#define PERIPH_SPI_NEEDS_TRANSFER_BYTES +#define PERIPH_SPI_NEEDS_TRANSFER_REG +#define PERIPH_SPI_NEEDS_TRANSFER_REGS +/** @} */ + #ifdef __cplusplus } #endif diff --git a/cpu/stm32f1/periph/spi.c b/cpu/stm32f1/periph/spi.c index c605a95286..2cbaa18707 100644 --- a/cpu/stm32f1/periph/spi.c +++ b/cpu/stm32f1/periph/spi.c @@ -190,47 +190,6 @@ int spi_transfer_byte(spi_t dev, char out, char *in) return transferred; } -int spi_transfer_bytes(spi_t dev, char *out, char *in, unsigned int length) -{ - int transferred = 0; - - if (out != NULL) { - DEBUG("out*: %p out: %x length: %x\n", out, *out, length); - while (length--) { - int ret = spi_transfer_byte(dev, *(out)++, 0); - if (ret < 0) { - return ret; - } - transferred += ret; - } - } - if (in != NULL) { - while (length--) { - int ret = spi_transfer_byte(dev, 0, in++); - if (ret < 0) { - return ret; - } - transferred += ret; - } - DEBUG("in*: %p in: %x transferred: %x\n", in, *(in-transferred), transferred); - } - - DEBUG("sent %x byte(s)\n", transferred); - return transferred; -} - -int spi_transfer_reg(spi_t dev, uint8_t reg, char out, char *in) -{ - spi_transfer_byte(dev, reg, NULL); - return spi_transfer_byte(dev, out, in); -} - -int spi_transfer_regs(spi_t dev, uint8_t reg, char *out, char *in, unsigned int length) -{ - spi_transfer_byte(dev, reg, NULL); - return spi_transfer_bytes(dev, out, in, length); -} - void spi_transmission_begin(spi_t dev, char reset_val) { /* slave mode not implemented, yet */ -- GitLab