diff --git a/src/avr/gpio.c b/src/avr/gpio.c index a6b7aa41b..fdb185627 100644 --- a/src/avr/gpio.c +++ b/src/avr/gpio.c @@ -438,6 +438,10 @@ spi_setup(uint32_t bus, uint8_t mode, uint32_t rate) return config; } +void spi_prepare(struct spi_config config) +{ +} + void spi_transfer(struct spi_config config, uint8_t receive_data , uint8_t len, uint8_t *data) diff --git a/src/avr/gpio.h b/src/avr/gpio.h index 515e4c9a5..2f769cb92 100644 --- a/src/avr/gpio.h +++ b/src/avr/gpio.h @@ -39,6 +39,7 @@ struct spi_config { uint8_t spcr, spsr; }; struct spi_config spi_setup(uint32_t bus, uint8_t mode, uint32_t rate); +void spi_prepare(struct spi_config config); void spi_transfer(struct spi_config config, uint8_t receive_data , uint8_t len, uint8_t *data); diff --git a/src/generic/gpio.h b/src/generic/gpio.h index e6ef1280e..11f2f3943 100644 --- a/src/generic/gpio.h +++ b/src/generic/gpio.h @@ -35,6 +35,7 @@ struct spi_config { uint32_t cfg; }; struct spi_config spi_setup(uint32_t bus, uint8_t mode, uint32_t rate); +void spi_prepare(struct spi_config config); void spi_transfer(struct spi_config config, uint8_t receive_data , uint8_t len, uint8_t *data); diff --git a/src/linux/gpio.h b/src/linux/gpio.h index b18e5d3d2..8d8785976 100644 --- a/src/linux/gpio.h +++ b/src/linux/gpio.h @@ -23,6 +23,7 @@ struct spi_config { int fd; }; struct spi_config spi_setup(uint32_t bus, uint8_t mode, uint32_t rate); +void spi_prepare(struct spi_config config); void spi_transfer(struct spi_config config, uint8_t receive_data , uint8_t len, uint8_t *data); diff --git a/src/linux/spidev.c b/src/linux/spidev.c index cb511205b..2d6f55ac4 100644 --- a/src/linux/spidev.c +++ b/src/linux/spidev.c @@ -56,6 +56,11 @@ spi_setup(uint32_t bus, uint8_t mode, uint32_t rate) return (struct spi_config) { fd }; } +void +spi_prepare(struct spi_config config) +{ +} + void spi_transfer(struct spi_config config, uint8_t receive_data , uint8_t len, uint8_t *data) diff --git a/src/sam3x8e/gpio.h b/src/sam3x8e/gpio.h index e70166659..d40eec21f 100644 --- a/src/sam3x8e/gpio.h +++ b/src/sam3x8e/gpio.h @@ -33,6 +33,7 @@ struct spi_config { uint32_t cfg; }; struct spi_config spi_setup(uint32_t bus, uint8_t mode, uint32_t rate); +void spi_prepare(struct spi_config config); void spi_transfer(struct spi_config config, uint8_t receive_data , uint8_t len, uint8_t *data); diff --git a/src/sam3x8e/spi.c b/src/sam3x8e/spi.c index 3bbf6548c..c11373183 100644 --- a/src/sam3x8e/spi.c +++ b/src/sam3x8e/spi.c @@ -95,6 +95,11 @@ spi_setup(uint32_t bus, uint8_t mode, uint32_t rate) return (struct spi_config){.cfg = config}; } +void +spi_prepare(struct spi_config config) +{ +} + void spi_transfer(struct spi_config config, uint8_t receive_data , uint8_t len, uint8_t *data) diff --git a/src/simulator/gpio.c b/src/simulator/gpio.c index 327c05ce2..095fc3843 100644 --- a/src/simulator/gpio.c +++ b/src/simulator/gpio.c @@ -44,6 +44,10 @@ spi_setup(uint32_t bus, uint8_t mode, uint32_t rate) return (struct spi_config){ }; } void +spi_prepare(struct spi_config config) +{ +} +void spi_transfer(struct spi_config config, uint8_t receive_data , uint8_t len, uint8_t *data) { diff --git a/src/spicmds.c b/src/spicmds.c index f87972a06..3c9c29281 100644 --- a/src/spicmds.c +++ b/src/spicmds.c @@ -58,10 +58,12 @@ spidev_transfer(struct spidev_s *spi, uint8_t receive_data , uint8_t data_len, uint8_t *data) { if (spi->flags & SF_HAVE_PIN) { + spi_prepare(spi->spi_config); gpio_out_write(spi->pin, 0); spi_transfer(spi->spi_config, receive_data, data_len, data); gpio_out_write(spi->pin, 1); } else { + spi_prepare(spi->spi_config); spi_transfer(spi->spi_config, receive_data, data_len, data); } } diff --git a/src/stm32f1/gpio.c b/src/stm32f1/gpio.c index ed5074965..832febd84 100644 --- a/src/stm32f1/gpio.c +++ b/src/stm32f1/gpio.c @@ -300,6 +300,11 @@ spi_setup(uint32_t bus, uint8_t mode, uint32_t rate) return config; } +void +spi_prepare(struct spi_config config) +{ +} + void spi_transfer(struct spi_config config, uint8_t receive_data, uint8_t len, uint8_t *data) diff --git a/src/stm32f1/gpio.h b/src/stm32f1/gpio.h index 8c2a00ca1..c5f0775e6 100644 --- a/src/stm32f1/gpio.h +++ b/src/stm32f1/gpio.h @@ -34,6 +34,7 @@ struct spi_config { SPI_TypeDef config; }; struct spi_config spi_setup(uint32_t bus, uint8_t mode, uint32_t rate); +void spi_prepare(struct spi_config config); void spi_transfer(struct spi_config config, uint8_t receive_data, uint8_t len, uint8_t *data);