Merge pull request #9420 from mikeller/exclude_swd_pins_from_pullup

Exclude SWD pins from being initialised as pull up if unused.
This commit is contained in:
Michael Keller 2020-01-31 19:59:55 +13:00 committed by GitHub
commit 971a89e3c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 24 additions and 8 deletions

View File

@ -108,4 +108,5 @@ const char * const ownerNames[OWNER_TOTAL_COUNT] = {
"PULLUP",
"PULLDOWN",
"DSHOT_BITBANG",
"SWD",
};

View File

@ -106,6 +106,7 @@ typedef enum {
OWNER_PULLUP,
OWNER_PULLDOWN,
OWNER_DSHOT_BITBANG,
OWNER_SWD,
OWNER_TOTAL_COUNT
} resourceOwner_e;

View File

@ -273,14 +273,14 @@ void initialiseMemorySections(void)
#endif
}
static void initializeUnusedPin(IO_t io)
static void unusedPinInit(IO_t io)
{
if (IOGetOwner(io) == OWNER_FREE) {
IOConfigGPIO(io, IOCFG_IPU);
}
}
void initializeUnusedPins(void)
void unusedPinsInit(void)
{
IOTraversePins(initializeUnusedPin);
IOTraversePins(unusedPinInit);
}

View File

@ -83,4 +83,4 @@ typedef void extiCallbackHandlerFunc(void);
void registerExtiCallbackHandler(IRQn_Type irqn, extiCallbackHandlerFunc *fn);void unregisterExtiCallbackHandler(IRQn_Type irqn, extiCallbackHandlerFunc *fn);
void initializeUnusedPins(void);
void unusedPinsInit(void);

View File

@ -285,13 +285,25 @@ static void configureSPIAndQuadSPI(void)
}
#ifdef USE_SDCARD
void sdCardAndFSInit()
static void sdCardAndFSInit()
{
sdcard_init(sdcardConfig());
afatfs_init();
}
#endif
static void swdPinsInit(void)
{
IO_t io = IOGetByTag(DEFIO_TAG_E(PA13)); // SWDIO
if (IOGetOwner(io) == OWNER_FREE) {
IOInit(io, OWNER_SWD, 0);
}
io = IOGetByTag(DEFIO_TAG_E(PA14)); // SWCLK
if (IOGetOwner(io) == OWNER_FREE) {
IOInit(io, OWNER_SWD, 0);
}
}
void init(void)
{
#ifdef SERIAL_PORT_COUNT
@ -1006,7 +1018,9 @@ void init(void)
motorEnable();
#endif
initializeUnusedPins();
swdPinsInit();
unusedPinsInit();
tasksInit();

View File

@ -593,7 +593,7 @@ void spektrumBind(rxConfig_t *rxConfig)
printf("spektrumBind\n");
}
void initializeUnusedPins(void)
void unusedPinsInit(void)
{
printf("initializeUnusedPins\n");
printf("unusedPinsInit\n");
}