summaryrefslogtreecommitdiff
path: root/stmhal/spi.c
diff options
context:
space:
mode:
authorDave Hylands <dhylands@gmail.com>2015-01-15 21:45:21 -0800
committerDamien George <damien.p.george@gmail.com>2015-01-21 00:11:04 +0000
commitd7f199465f229e95b1ac1a1b6b74a3e0ce1f98c7 (patch)
treeaf0abe2241e41e74387da448d2ba0f30aad5f1a1 /stmhal/spi.c
parent73533247cb2602c968229d2c102e925c5b702677 (diff)
stmhal: Add support for FEZ Cerb40 II board from ghielectronics.com.
Diffstat (limited to 'stmhal/spi.c')
-rw-r--r--stmhal/spi.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/stmhal/spi.c b/stmhal/spi.c
index 364bf2169..109bfe49e 100644
--- a/stmhal/spi.c
+++ b/stmhal/spi.c
@@ -63,7 +63,9 @@
#if MICROPY_HW_ENABLE_SPI1
SPI_HandleTypeDef SPIHandle1 = {.Instance = NULL};
#endif
+#if MICROPY_HW_ENABLE_SPI2
SPI_HandleTypeDef SPIHandle2 = {.Instance = NULL};
+#endif
#if MICROPY_HW_ENABLE_SPI3
SPI_HandleTypeDef SPIHandle3 = {.Instance = NULL};
#endif
@@ -110,10 +112,12 @@ void SPI1_RX_DMA_IRQ_HANDLER(void) { HAL_DMA_IRQHandler(&spi1_rx_dma_handle); }
void SPI1_TX_DMA_IRQ_HANDLER(void) { HAL_DMA_IRQHandler(&spi1_tx_dma_handle); }
#endif
+#if MICROPY_HW_ENABLE_SPI2
STATIC DMA_HandleTypeDef spi2_rx_dma_handle;
STATIC DMA_HandleTypeDef spi2_tx_dma_handle;
void SPI2_RX_DMA_IRQ_HANDLER(void) { HAL_DMA_IRQHandler(&spi2_rx_dma_handle); }
void SPI2_TX_DMA_IRQ_HANDLER(void) { HAL_DMA_IRQHandler(&spi2_tx_dma_handle); }
+#endif
#if MICROPY_HW_ENABLE_SPI3
STATIC DMA_HandleTypeDef spi3_rx_dma_handle;
@@ -128,8 +132,10 @@ void spi_init0(void) {
memset(&SPIHandle1, 0, sizeof(SPI_HandleTypeDef));
SPIHandle1.Instance = SPI1;
#endif
+#if MICROPY_HW_ENABLE_SPI2
memset(&SPIHandle2, 0, sizeof(SPI_HandleTypeDef));
SPIHandle2.Instance = SPI2;
+#endif
#if MICROPY_HW_ENABLE_SPI3
memset(&SPIHandle3, 0, sizeof(SPI_HandleTypeDef));
SPIHandle3.Instance = SPI3;
@@ -169,6 +175,7 @@ void spi_init(SPI_HandleTypeDef *spi, bool enable_nss_pin) {
rx_dma_irqn = SPI1_RX_DMA_IRQN;
tx_dma_irqn = SPI1_TX_DMA_IRQN;
#endif
+#if MICROPY_HW_ENABLE_SPI2
} else if (spi->Instance == SPI2) {
// Y-skin: Y5=PB12=SPI2_NSS, Y6=PB13=SPI2_SCK, Y7=PB14=SPI2_MISO, Y8=PB15=SPI2_MOSI
pins[0] = &pin_B12;
@@ -187,6 +194,7 @@ void spi_init(SPI_HandleTypeDef *spi, bool enable_nss_pin) {
tx_dma = &spi2_tx_dma_handle;
rx_dma_irqn = SPI2_RX_DMA_IRQN;
tx_dma_irqn = SPI2_TX_DMA_IRQN;
+#endif
#if MICROPY_HW_ENABLE_SPI3
} else if (spi->Instance == SPI3) {
pins[0] = &pin_A4;
@@ -266,10 +274,12 @@ void spi_deinit(SPI_HandleTypeDef *spi) {
__SPI1_RELEASE_RESET();
__SPI1_CLK_DISABLE();
#endif
+#if MICROPY_HW_ENABLE_SPI2
} else if (spi->Instance == SPI2) {
__SPI2_FORCE_RESET();
__SPI2_RELEASE_RESET();
__SPI2_CLK_DISABLE();
+#endif
#if MICROPY_HW_ENABLE_SPI3
} else if (spi->Instance == SPI3) {
__SPI3_FORCE_RESET();
@@ -304,7 +314,11 @@ STATIC const pyb_spi_obj_t pyb_spi_obj[] = {
#else
{{&pyb_spi_type}, NULL},
#endif
+#if MICROPY_HW_ENABLE_SPI2
{{&pyb_spi_type}, &SPIHandle2},
+#else
+ {{&pyb_spi_type}, NULL},
+#endif
#if MICROPY_HW_ENABLE_SPI3
{{&pyb_spi_type}, &SPIHandle3},
#else