mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-07-09 15:57:56 -06:00
stm32: Unify enable_pclock() code
Unify the handling of the enable_pclock() and is_enabled_pclock() code across all stm32 chips. All chips will now perform a peripheral reset on enable_pclock() (this is a change for stm32f0 and stm32h7). The enable_pclock() code will now also disable irqs during the enable. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
9bdd61758e
commit
8b6753d68f
8 changed files with 129 additions and 242 deletions
|
@ -18,22 +18,28 @@
|
|||
#include "stm32h7xx.h"
|
||||
#endif
|
||||
|
||||
// gpio.c
|
||||
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))
|
||||
|
||||
// gpioperiph.c
|
||||
#define GPIO_INPUT 0
|
||||
#define GPIO_OUTPUT 1
|
||||
#define GPIO_OPEN_DRAIN 0x100
|
||||
#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 gpio_clock_enable(GPIO_TypeDef *regs);
|
||||
void gpio_peripheral(uint32_t gpio, uint32_t mode, int pullup);
|
||||
|
||||
// clockline.c
|
||||
void enable_pclock(uint32_t periph_base);
|
||||
int is_enabled_pclock(uint32_t periph_base);
|
||||
|
||||
// stm32??.c
|
||||
struct cline { volatile uint32_t *en, *rst; uint32_t bit; };
|
||||
struct cline lookup_clock_line(uint32_t periph_base);
|
||||
uint32_t get_pclock_frequency(uint32_t periph_base);
|
||||
void gpio_clock_enable(GPIO_TypeDef *regs);
|
||||
|
||||
#endif // internal.h
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue