diff options
Diffstat (limited to 'src/stm32/internal.h')
-rw-r--r-- | src/stm32/internal.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/stm32/internal.h b/src/stm32/internal.h new file mode 100644 index 00000000..0edfefe5 --- /dev/null +++ b/src/stm32/internal.h @@ -0,0 +1,30 @@ +#ifndef __STM32_INTERNAL_H +#define __STM32_INTERNAL_H +// Local definitions for STM32 code + +#include "autoconf.h" // CONFIG_MACH_STM32F1 + +#if CONFIG_MACH_STM32F1 +#include "stm32f1xx.h" +#else +#include "stm32f4xx.h" +#endif + +extern GPIO_TypeDef * const digital_regs[]; + +#define GPIO(PORT, NUM) (((PORT)-'A') * 16 + (NUM)) +#define GPIO2PORT(PIN) ((PIN) / 16) +#define GPIO2BIT(PIN) (1<<((PIN) % 16)) + +#define GPIO_INPUT 0 +#define GPIO_OUTPUT 1 +#define GPIO_FUNCTION(fn) (2 | ((fn) << 4)) +#define GPIO_ANALOG 3 + +void enable_pclock(uint32_t periph_base); +int is_enabled_pclock(uint32_t periph_base); +uint32_t get_pclock_frequency(uint32_t periph_base); +void clock_setup(void); +void gpio_peripheral(uint32_t gpio, uint32_t mode, int pullup); + +#endif // internal.h |