mirror of https://github.com/ARMmbed/mbed-os.git
Add spi_get_peripheral_name to MCUEpresso spi_api
Fix issue https://github.com/ARMmbed/mbed-os/issues/9149. Port changes from https://github.com/ARMmbed/mbed-os/pull/9845 also to targets: K64F, K66F, KW24D and KW41Zpull/10033/head
parent
ba24cb2875
commit
e1deb88471
|
@ -124,7 +124,7 @@ typedef enum {
|
|||
DAC_0 = 0
|
||||
} DACName;
|
||||
|
||||
|
||||
#define DEVICE_SPI_COUNT 3
|
||||
typedef enum {
|
||||
SPI_0 = 0,
|
||||
SPI_1 = 1,
|
||||
|
|
|
@ -32,6 +32,24 @@ static SPI_Type *const spi_address[] = SPI_BASE_PTRS;
|
|||
/* Array of SPI bus clock frequencies */
|
||||
static clock_name_t const spi_clocks[] = SPI_CLOCK_FREQS;
|
||||
|
||||
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)
|
||||
{
|
||||
// determine the SPI to use
|
||||
|
|
|
@ -93,7 +93,7 @@ typedef enum {
|
|||
DAC_0 = 0
|
||||
} DACName;
|
||||
|
||||
|
||||
#define DEVICE_SPI_COUNT 2
|
||||
typedef enum {
|
||||
SPI_0 = 0,
|
||||
SPI_1 = 1,
|
||||
|
|
|
@ -32,6 +32,24 @@ static SPI_Type *const spi_address[] = SPI_BASE_PTRS;
|
|||
/* Array of SPI bus clock frequencies */
|
||||
static clock_name_t const spi_clocks[] = SPI_CLOCK_FREQS;
|
||||
|
||||
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)
|
||||
{
|
||||
// determine the SPI to use
|
||||
|
|
|
@ -63,7 +63,7 @@ typedef enum {
|
|||
DAC_0 = 0
|
||||
} DACName;
|
||||
|
||||
|
||||
#define DEVICE_SPI_COUNT 2
|
||||
typedef enum {
|
||||
SPI_0 = 0,
|
||||
SPI_1 = 1,
|
||||
|
|
|
@ -64,7 +64,7 @@ typedef enum {
|
|||
DAC_0 = 0
|
||||
} DACName;
|
||||
|
||||
|
||||
#define DEVICE_SPI_COUNT 2
|
||||
typedef enum {
|
||||
SPI_0 = 0,
|
||||
SPI_1 = 1,
|
||||
|
|
|
@ -32,6 +32,24 @@ static SPI_Type *const spi_address[] = SPI_BASE_PTRS;
|
|||
/* Array of SPI bus clock frequencies */
|
||||
static clock_name_t const spi_clocks[] = SPI_CLOCK_FREQS;
|
||||
|
||||
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)
|
||||
{
|
||||
// determine the SPI to use
|
||||
|
|
|
@ -123,7 +123,7 @@ typedef enum {
|
|||
DAC_0 = 0
|
||||
} DACName;
|
||||
|
||||
|
||||
#define DEVICE_SPI_COUNT 3
|
||||
typedef enum {
|
||||
SPI_0 = 0,
|
||||
SPI_1 = 1,
|
||||
|
|
|
@ -33,6 +33,24 @@ static SPI_Type *const spi_address[] = SPI_BASE_PTRS;
|
|||
/* Array of SPI bus clock frequencies */
|
||||
static clock_name_t const spi_clocks[] = SPI_CLOCK_FREQS;
|
||||
|
||||
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)
|
||||
{
|
||||
// determine the SPI to use
|
||||
|
|
Loading…
Reference in New Issue