diff --git a/epicardium/modules/gpio.c b/epicardium/modules/gpio.c index 872aaee7a1d31b9f3c341ea2c0b67e3323b8a4ce..72ce3ba6a83f3b492e63f2837f3aa3369e004e24 100644 --- a/epicardium/modules/gpio.c +++ b/epicardium/modules/gpio.c @@ -137,18 +137,15 @@ int epic_gpio_read_pin(uint8_t pin) } else if (cfg->func == GPIO_FUNC_IN) { return GPIO_InGet(cfg) != 0; } else if (cfg->func == GPIO_FUNC_ALT1) { - int rc = hwlock_acquire_timeout(HWLOCK_ADC, portMAX_DELAY); - if (!rc) { - ADC_StartConvert(s_adc_channels[pin], 0, 0); - uint16_t value; - int rc = ADC_GetData(&value); - hwlock_release(HWLOCK_ADC); - if (rc < 0) { - return -EIO; - } - return (int)value; + hwlock_acquire(HWLOCK_ADC); + ADC_StartConvert(s_adc_channels[pin], 0, 0); + uint16_t value; + int rc = ADC_GetData(&value); + hwlock_release(HWLOCK_ADC); + if (rc < 0) { + return -EIO; } - return rc; + return (int)value; } else { return -EINVAL; }