stm32-common/spi: add customizable gpio modes for spi pins

This commit is contained in:
Alexandre Abadie 2019-05-08 11:47:24 +02:00
parent e42307188c
commit c2d81fc246
No known key found for this signature in database
GPG Key ID: 1C919A403CAE1405

View File

@ -116,6 +116,28 @@ int spi_init_cs(spi_t bus, spi_cs_t cs)
return SPI_OK; return SPI_OK;
} }
#ifdef MODULE_PERIPH_SPI_GPIO_MODE
int spi_init_with_gpio_mode(spi_t bus, spi_gpio_mode_t mode)
{
assert(bus < SPI_NUMOF);
int ret = 0;
#ifdef CPU_FAM_STM32F1
/* This has no effect on STM32F1 */
return ret;
#else
ret += gpio_init(spi_config[bus].mosi_pin, mode.mosi);
ret += gpio_init(spi_config[bus].miso_pin, mode.miso);
ret += gpio_init(spi_config[bus].sclk_pin, mode.sclk);
gpio_init_af(spi_config[bus].mosi_pin, spi_config[bus].af);
gpio_init_af(spi_config[bus].miso_pin, spi_config[bus].af);
gpio_init_af(spi_config[bus].sclk_pin, spi_config[bus].af);
return ret;
#endif
}
#endif
int spi_acquire(spi_t bus, spi_cs_t cs, spi_mode_t mode, spi_clk_t clk) int spi_acquire(spi_t bus, spi_cs_t cs, spi_mode_t mode, spi_clk_t clk)
{ {
/* lock bus */ /* lock bus */