Merge pull request #9396 from jflyper/bfdev-g4-io-and-rcc
[G4] IO and RCC support
This commit is contained in:
commit
9e596a6716
|
@ -92,6 +92,15 @@ const struct ioPortDef_s ioPortDefs[] = {
|
|||
{ RCC_AHB4(GPIOH) },
|
||||
{ RCC_AHB4(GPIOI) },
|
||||
};
|
||||
#elif defined(STM32G4)
|
||||
const struct ioPortDef_s ioPortDefs[] = {
|
||||
{ RCC_AHB2(GPIOA) },
|
||||
{ RCC_AHB2(GPIOB) },
|
||||
{ RCC_AHB2(GPIOC) },
|
||||
{ RCC_AHB2(GPIOD) },
|
||||
{ RCC_AHB2(GPIOE) },
|
||||
{ RCC_AHB2(GPIOF) },
|
||||
};
|
||||
#endif
|
||||
|
||||
ioRec_t* IO_Rec(IO_t io)
|
||||
|
@ -155,7 +164,7 @@ uint32_t IO_EXTI_Line(IO_t io)
|
|||
if (!io) {
|
||||
return 0;
|
||||
}
|
||||
#if defined(STM32F1) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7)
|
||||
#if defined(STM32F1) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
|
||||
return 1 << IO_GPIOPinIdx(io);
|
||||
#elif defined(STM32F3)
|
||||
return IO_GPIOPinIdx(io);
|
||||
|
@ -323,7 +332,7 @@ void IOConfigGPIO(IO_t io, ioConfig_t cfg)
|
|||
GPIO_Init(IO_GPIO(io), &init);
|
||||
}
|
||||
|
||||
#elif defined(STM32H7)
|
||||
#elif defined(STM32H7) || defined(STM32G4)
|
||||
|
||||
void IOConfigGPIO(IO_t io, ioConfig_t cfg)
|
||||
{
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
#define IOCFG_IPU IO_CONFIG(GPIO_Mode_IPU, GPIO_Speed_2MHz)
|
||||
#define IOCFG_IN_FLOATING IO_CONFIG(GPIO_Mode_IN_FLOATING, GPIO_Speed_2MHz)
|
||||
|
||||
#elif defined(STM32F7) || defined(STM32H7)
|
||||
#elif defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
|
||||
|
||||
//speed is packed inside modebits 5 and 2,
|
||||
#define IO_CONFIG(mode, speed, pupd) ((mode) | ((speed) << 2) | ((pupd) << 5))
|
||||
|
@ -122,7 +122,7 @@ bool IOIsFreeOrPreinit(IO_t io);
|
|||
IO_t IOGetByTag(ioTag_t tag);
|
||||
|
||||
void IOConfigGPIO(IO_t io, ioConfig_t cfg);
|
||||
#if defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7)
|
||||
#if defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
|
||||
void IOConfigGPIOAF(IO_t io, ioConfig_t cfg, uint8_t af);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -39,6 +39,11 @@ enum rcc_reg {
|
|||
RCC_APB3,
|
||||
RCC_AHB4,
|
||||
RCC_APB4,
|
||||
#elif defined(STM32G4)
|
||||
RCC_AHB2,
|
||||
RCC_APB2,
|
||||
RCC_APB1,
|
||||
RCC_AHB1,
|
||||
#else
|
||||
RCC_AHB,
|
||||
RCC_APB2,
|
||||
|
@ -64,5 +69,13 @@ enum rcc_reg {
|
|||
#define RCC_APB1H(periph) RCC_ENCODE(RCC_APB1H, RCC_APB1HENR_ ## periph ## EN)
|
||||
#endif
|
||||
|
||||
#ifdef STM32G4
|
||||
#undef RCC_APB1
|
||||
#define RCC_APB11(periph) RCC_ENCODE(RCC_APB1, RCC_APB1ENR1_ ## periph ## EN)
|
||||
#define RCC_APB12(periph) RCC_ENCODE(RCC_APB1, RCC_APB1ENR2_ ## periph ## EN)
|
||||
#define RCC_AHB1(periph) RCC_ENCODE(RCC_AHB1, RCC_AHB1ENR_ ## periph ## EN)
|
||||
#define RCC_AHB2(periph) RCC_ENCODE(RCC_AHB2, RCC_AHB2ENR_ ## periph ## EN)
|
||||
#endif
|
||||
|
||||
void RCC_ClockCmd(rccPeriphTag_t periphTag, FunctionalState NewState);
|
||||
void RCC_ResetCmd(rccPeriphTag_t periphTag, FunctionalState NewState);
|
||||
|
|
Loading…
Reference in New Issue