summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2018-04-11 16:14:58 +1000
committerDamien George <damien.p.george@gmail.com>2018-04-11 16:14:58 +1000
commit0041396f05bc1f43657c343df6b291fc4bbdc901 (patch)
tree9b94c469899ca9737de050a4ed395bcf981b6617
parentf1073e747d0489154942a0d0e0585bc6943df448 (diff)
stm32/pin: In pin AF object, remove union of periph ptr types.
The individual union members (like SPI, I2C) are never used, only the generic "reg" entry is. And the union names can clash with macro definitions in the HAL so better to remove them.
-rw-r--r--ports/stm32/boards/stm32f4xx_prefix.c2
-rw-r--r--ports/stm32/pin.h7
-rw-r--r--ports/stm32/pin_defs_stm32.h12
-rw-r--r--ports/teensy/mk20dx256_prefix.c2
-rw-r--r--ports/teensy/pin_defs_teensy.h6
5 files changed, 3 insertions, 26 deletions
diff --git a/ports/stm32/boards/stm32f4xx_prefix.c b/ports/stm32/boards/stm32f4xx_prefix.c
index f4ffdab68..3bcd6e641 100644
--- a/ports/stm32/boards/stm32f4xx_prefix.c
+++ b/ports/stm32/boards/stm32f4xx_prefix.c
@@ -14,7 +14,7 @@
.fn = AF_FN_ ## af_fn, \
.unit = (af_unit), \
.type = AF_PIN_TYPE_ ## af_fn ## _ ## af_type, \
- .af_fn = (af_ptr) \
+ .reg = (af_ptr) \
}
#define PIN(p_port, p_pin, p_af, p_adc_num, p_adc_channel) \
diff --git a/ports/stm32/pin.h b/ports/stm32/pin.h
index b0e05256f..ea57b0a27 100644
--- a/ports/stm32/pin.h
+++ b/ports/stm32/pin.h
@@ -39,12 +39,7 @@ typedef struct {
uint8_t fn;
uint8_t unit;
uint8_t type;
-
- union {
- void *reg;
-
- PIN_DEFS_PORT_AF_UNION
- };
+ void *reg; // The peripheral associated with this AF
} pin_af_obj_t;
typedef struct {
diff --git a/ports/stm32/pin_defs_stm32.h b/ports/stm32/pin_defs_stm32.h
index c5b286283..feaf56ae9 100644
--- a/ports/stm32/pin_defs_stm32.h
+++ b/ports/stm32/pin_defs_stm32.h
@@ -115,17 +115,5 @@ enum {
PIN_ADC3 = (1 << 2),
};
-// Note that SPI and I2S are really the same peripheral as far as the HAL
-// is concerned, so there is no I2S_TypeDef.
-// We use void* for SDMMC because not all MCUs have the SDMMC_TypeDef type.
-#define PIN_DEFS_PORT_AF_UNION \
- TIM_TypeDef *TIM; \
- I2C_TypeDef *I2C; \
- USART_TypeDef *USART; \
- USART_TypeDef *UART; \
- SPI_TypeDef *SPI;\
- SPI_TypeDef *I2S; \
- void *SDMMC; \
-
typedef GPIO_TypeDef pin_gpio_t;
diff --git a/ports/teensy/mk20dx256_prefix.c b/ports/teensy/mk20dx256_prefix.c
index d8e7480b5..58ab07d6e 100644
--- a/ports/teensy/mk20dx256_prefix.c
+++ b/ports/teensy/mk20dx256_prefix.c
@@ -15,7 +15,7 @@
.fn = AF_FN_ ## af_fn, \
.unit = (af_unit), \
.type = AF_PIN_TYPE_ ## af_fn ## _ ## af_type, \
- .af_fn = (af_ptr) \
+ .reg = (af_ptr) \
}
#define PIN(p_port, p_pin, p_num_af, p_af, p_adc_num, p_adc_channel) \
diff --git a/ports/teensy/pin_defs_teensy.h b/ports/teensy/pin_defs_teensy.h
index 54a6055f1..d3a700be2 100644
--- a/ports/teensy/pin_defs_teensy.h
+++ b/ports/teensy/pin_defs_teensy.h
@@ -40,10 +40,4 @@ enum {
AF_PIN_TYPE_UART_RTS,
};
-#define PIN_DEFS_PORT_AF_UNION \
- FTM_TypeDef *FTM; \
- I2C_TypeDef *I2C; \
- UART_TypeDef *UART; \
- SPI_TypeDef *SPI;
-
typedef GPIO_TypeDef pin_gpio_t;