Skip to content
Snippets Groups Projects
Commit 4ef889f9 authored by Oleg Hahm's avatar Oleg Hahm
Browse files

Merge pull request #4226 from DipSwitch/stm32f1_add_spi_12

cpu/stm32f1/spi: add SPI peripheral 1 and 2
parents 6378be10 2e2ec378
No related branches found
No related tags found
No related merge requests found
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#include "debug.h" #include "debug.h"
/* guard file in case no SPI device is defined */ /* guard file in case no SPI device is defined */
#if SPI_0_EN #if SPI_0_EN || SPI_1_EN || SPI_2_EN
/** /**
* @brief Array holding one pre-initialized mutex for each SPI device * @brief Array holding one pre-initialized mutex for each SPI device
...@@ -63,6 +63,22 @@ int spi_init_master(spi_t dev, spi_conf_t conf, spi_speed_t speed) ...@@ -63,6 +63,22 @@ int spi_init_master(spi_t dev, spi_conf_t conf, spi_speed_t speed)
SPI_0_CLKEN(); SPI_0_CLKEN();
break; break;
#endif #endif
#ifdef SPI_1_EN
case SPI_1:
spi = SPI_1_DEV;
bus_div = SPI_1_BUS_DIV;
SPI_1_CLKEN();
break;
#endif
#ifdef SPI_2_EN
case SPI_2:
spi = SPI_2_DEV;
bus_div = SPI_2_BUS_DIV;
SPI_2_CLKEN();
break;
#endif
default: default:
return -1; return -1;
} }
...@@ -119,6 +135,22 @@ int spi_conf_pins(spi_t dev) ...@@ -119,6 +135,22 @@ int spi_conf_pins(spi_t dev)
miso = SPI_0_MISO_PIN; miso = SPI_0_MISO_PIN;
break; break;
#endif #endif
#ifdef SPI_1_EN
case SPI_1:
clk = SPI_1_CLK_PIN;
mosi = SPI_1_MOSI_PIN;
miso = SPI_1_MISO_PIN;
break;
#endif
#ifdef SPI_2_EN
case SPI_2:
clk = SPI_2_CLK_PIN;
mosi = SPI_2_MOSI_PIN;
miso = SPI_2_MISO_PIN;
break;
#endif
default: default:
return -1; return -1;
} }
...@@ -159,6 +191,18 @@ int spi_transfer_byte(spi_t dev, char out, char *in) ...@@ -159,6 +191,18 @@ int spi_transfer_byte(spi_t dev, char out, char *in)
spi = SPI_0_DEV; spi = SPI_0_DEV;
break; break;
#endif #endif
#ifdef SPI_1_EN
case SPI_1:
spi = SPI_1_DEV;
break;
#endif
#ifdef SPI_2_EN
case SPI_2:
spi = SPI_2_DEV;
break;
#endif
default: default:
return -1; return -1;
} }
...@@ -204,6 +248,20 @@ void spi_poweron(spi_t dev) ...@@ -204,6 +248,20 @@ void spi_poweron(spi_t dev)
SPI_0_DEV->CR1 |= SPI_CR1_SPE; /* turn SPI peripheral on */ SPI_0_DEV->CR1 |= SPI_CR1_SPE; /* turn SPI peripheral on */
break; break;
#endif #endif
#ifdef SPI_1_EN
case SPI_1:
SPI_1_CLKEN();
SPI_1_DEV->CR1 |= SPI_CR1_SPE; /* turn SPI peripheral on */
break;
#endif
#ifdef SPI_2_EN
case SPI_2:
SPI_2_CLKEN();
SPI_2_DEV->CR1 |= SPI_CR1_SPE; /* turn SPI peripheral on */
break;
#endif
} }
} }
...@@ -216,6 +274,20 @@ void spi_poweroff(spi_t dev) ...@@ -216,6 +274,20 @@ void spi_poweroff(spi_t dev)
SPI_0_CLKDIS(); SPI_0_CLKDIS();
break; break;
#endif #endif
#ifdef SPI_1_EN
case SPI_1:
SPI_1_DEV->CR1 &= ~(SPI_CR1_SPE); /* turn SPI peripheral off */
SPI_1_CLKDIS();
break;
#endif
#ifdef SPI_2_EN
case SPI_2:
SPI_2_DEV->CR1 &= ~(SPI_CR1_SPE); /* turn SPI peripheral off */
SPI_2_CLKDIS();
break;
#endif
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment