mirror of https://github.com/ARMmbed/mbed-os.git
Add spi_get_peripheral_name() to stm_spi
This is to have support for per-peripheral mutex introduced in https://github.com/ARMmbed/mbed-os/pull/9469 Together fixes an issue seen in https://github.com/ARMmbed/mbed-os/issues/9149pull/9845/head
parent
15ccb32d31
commit
a9f0924f7b
|
@ -57,6 +57,7 @@ typedef enum {
|
|||
UART_8 = (int)UART8_BASE
|
||||
} UARTName;
|
||||
|
||||
#define SPI_COUNT 6
|
||||
typedef enum {
|
||||
SPI_1 = (int)SPI1_BASE,
|
||||
SPI_2 = (int)SPI2_BASE,
|
||||
|
|
|
@ -92,6 +92,24 @@ void init_spi(spi_t *obj)
|
|||
}
|
||||
}
|
||||
|
||||
SPIName spi_get_peripheral_name(PinName mosi, PinName miso, PinName sclk) {
|
||||
SPIName spi_mosi = (SPIName)pinmap_peripheral(mosi, PinMap_SPI_MOSI);
|
||||
SPIName spi_miso = (SPIName)pinmap_peripheral(miso, PinMap_SPI_MISO);
|
||||
SPIName spi_sclk = (SPIName)pinmap_peripheral(sclk, PinMap_SPI_SCLK);
|
||||
|
||||
SPIName spi_per;
|
||||
|
||||
// If 3 wire SPI is used, the miso is not connected.
|
||||
if (miso == NC) {
|
||||
spi_per = (SPIName)pinmap_merge(spi_mosi, spi_sclk);
|
||||
} else {
|
||||
SPIName spi_data = (SPIName)pinmap_merge(spi_mosi, spi_miso);
|
||||
spi_per = (SPIName)pinmap_merge(spi_data, spi_sclk);
|
||||
}
|
||||
|
||||
return spi_per;
|
||||
}
|
||||
|
||||
void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel)
|
||||
{
|
||||
struct spi_s *spiobj = SPI_S(obj);
|
||||
|
|
Loading…
Reference in New Issue