diff --git a/targets/FreeRTOS_ESP32/ESP32_WROOM_32/nanoCLR/Windows.Devices.Gpio/cpu_gpio.cpp b/targets/FreeRTOS_ESP32/ESP32_WROOM_32/nanoCLR/Windows.Devices.Gpio/cpu_gpio.cpp index b03c5134fb..840b61d5aa 100644 --- a/targets/FreeRTOS_ESP32/ESP32_WROOM_32/nanoCLR/Windows.Devices.Gpio/cpu_gpio.cpp +++ b/targets/FreeRTOS_ESP32/ESP32_WROOM_32/nanoCLR/Windows.Devices.Gpio/cpu_gpio.cpp @@ -414,14 +414,14 @@ bool CPU_GPIO_DriveModeSupported(GPIO_PIN pinNumber, GpioPinDriveMode driveMode) { if (!GPIO_IS_VALID_GPIO(pinNumber)) return false; - // Output pins + // Output & input pins any valid drivemode if (GPIO_IS_VALID_OUTPUT_GPIO(pinNumber)) { - return (driveMode >= GpioPinDriveMode_Output && driveMode <= GpioPinDriveMode_OutputOpenSourcePullDown); + return (driveMode >= GpioPinDriveMode_Input && driveMode <= GpioPinDriveMode_OutputOpenSourcePullDown); } - // Input only pins - return (driveMode >= GpioPinDriveMode_Input && driveMode <= GpioPinDriveMode_OutputOpenSourcePullDown); + // Input only pins only input drive modes + return (driveMode >= GpioPinDriveMode_Input && driveMode <= GpioPinDriveMode_InputPullUp); } uint32_t CPU_GPIO_GetPinDebounce(GPIO_PIN pinNumber)