diff --git a/arch/arm/src/stm32h7/Kconfig b/arch/arm/src/stm32h7/Kconfig index 64d518fc035..ee9b51681f5 100644 --- a/arch/arm/src/stm32h7/Kconfig +++ b/arch/arm/src/stm32h7/Kconfig @@ -843,6 +843,19 @@ config STM32H7_I2CTIMEOTICKS endmenu # "I2C Configuration" +menu "OTG Configuration" + depends on STM32H7_OTGFS + +config OTG_ID_GPIO_DISABLE + bool "Disable the use of GPIO_OTG_ID pin." + default n + ---help--- + Disables/Enabled the use of GPIO_OTG_ID pin. This allows non OTG use + cases to reuse this GPIO pin and ensure it is not set incorrectlty + during OS boot. + +endmenu + menu "SPI Configuration" depends on STM32H7_SPI diff --git a/arch/arm/src/stm32h7/stm32_otgdev.c b/arch/arm/src/stm32h7/stm32_otgdev.c index adea1a11d1b..c9ef115cdd6 100644 --- a/arch/arm/src/stm32h7/stm32_otgdev.c +++ b/arch/arm/src/stm32h7/stm32_otgdev.c @@ -5586,7 +5586,11 @@ void arm_usbinitialize(void) stm32_configgpio(GPIO_OTG_DM); stm32_configgpio(GPIO_OTG_DP); - stm32_configgpio(GPIO_OTG_ID); /* Only needed for OTG */ + + /* Only needed for OTG */ +# ifndef CONFIG_OTG_ID_GPIO_DISABLE + stm32_configgpio(GPIO_OTG_ID); +# endif /* SOF output pin configuration is configurable. */