cpu/sam0_common: spi: implement the periph_spi_reconfigure feature
This commit is contained in:
parent
896fcd43b0
commit
3e91914831
@ -15,6 +15,7 @@ config CPU_COMMON_SAM0
|
|||||||
select HAS_PERIPH_GPIO
|
select HAS_PERIPH_GPIO
|
||||||
select HAS_PERIPH_GPIO_IRQ
|
select HAS_PERIPH_GPIO_IRQ
|
||||||
select HAS_PERIPH_I2C_RECONFIGURE
|
select HAS_PERIPH_I2C_RECONFIGURE
|
||||||
|
select HAS_PERIPH_SPI_RECONFIGURE
|
||||||
select HAS_PERIPH_TIMER_PERIODIC
|
select HAS_PERIPH_TIMER_PERIODIC
|
||||||
select HAS_PERIPH_UART_MODECFG
|
select HAS_PERIPH_UART_MODECFG
|
||||||
select HAS_PERIPH_UART_NONBLOCKING
|
select HAS_PERIPH_UART_NONBLOCKING
|
||||||
|
|||||||
@ -5,6 +5,7 @@ FEATURES_PROVIDED += periph_flashpage_raw
|
|||||||
FEATURES_PROVIDED += periph_flashpage_rwee
|
FEATURES_PROVIDED += periph_flashpage_rwee
|
||||||
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
|
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
|
||||||
FEATURES_PROVIDED += periph_i2c_reconfigure
|
FEATURES_PROVIDED += periph_i2c_reconfigure
|
||||||
|
FEATURES_PROVIDED += periph_spi_reconfigure
|
||||||
FEATURES_PROVIDED += periph_timer_periodic # implements timer_set_periodic()
|
FEATURES_PROVIDED += periph_timer_periodic # implements timer_set_periodic()
|
||||||
FEATURES_PROVIDED += periph_uart_modecfg
|
FEATURES_PROVIDED += periph_uart_modecfg
|
||||||
FEATURES_PROVIDED += periph_uart_nonblocking
|
FEATURES_PROVIDED += periph_uart_nonblocking
|
||||||
|
|||||||
@ -263,6 +263,16 @@ typedef enum {
|
|||||||
SPI_CLK_10MHZ = 10000000U /**< drive the SPI bus with 10MHz */
|
SPI_CLK_10MHZ = 10000000U /**< drive the SPI bus with 10MHz */
|
||||||
} spi_clk_t;
|
} spi_clk_t;
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SPI pin getters
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define spi_pin_mosi(dev) spi_config[dev].mosi_pin
|
||||||
|
#define spi_pin_miso(dev) spi_config[dev].miso_pin
|
||||||
|
#define spi_pin_clk(dev) spi_config[dev].clk_pin
|
||||||
|
/** @} */
|
||||||
|
|
||||||
#endif /* ndef DOXYGEN */
|
#endif /* ndef DOXYGEN */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -134,6 +134,16 @@ void spi_init_pins(spi_t bus)
|
|||||||
gpio_init_mux(spi_config[bus].miso_pin, spi_config[bus].miso_mux);
|
gpio_init_mux(spi_config[bus].miso_pin, spi_config[bus].miso_mux);
|
||||||
gpio_init_mux(spi_config[bus].mosi_pin, spi_config[bus].mosi_mux);
|
gpio_init_mux(spi_config[bus].mosi_pin, spi_config[bus].mosi_mux);
|
||||||
/* clk_pin will be muxed during acquire / release */
|
/* clk_pin will be muxed during acquire / release */
|
||||||
|
|
||||||
|
mutex_unlock(&locks[bus]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void spi_deinit_pins(spi_t bus)
|
||||||
|
{
|
||||||
|
mutex_lock(&locks[bus]);
|
||||||
|
|
||||||
|
gpio_disable_mux(spi_config[bus].miso_pin);
|
||||||
|
gpio_disable_mux(spi_config[bus].mosi_pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user