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;
 	}