diff --git a/kernel/spec-fmc.c b/kernel/spec-fmc.c
index dbd2db33f6c980620fee9fbb9b4cdd765087e141..296cade36e1f5bb90e7a67c9c213d71922768890 100644
--- a/kernel/spec-fmc.c
+++ b/kernel/spec-fmc.c
@@ -181,6 +181,7 @@ static int spec_cfg_pin(struct fmc_device *fmc, int pin, int mode, int imode)
 		return -EINVAL;
 	if (mode & GPIOF_DIR_IN) {
 		/* 1 = input */
+		gennum_mask_val(spec, bit, 0, GNGPIO_OUTPUT_ENABLE);
 		gennum_mask_val(spec, bit, bit, GNGPIO_DIRECTION_MODE);
 		ret = !!(gennum_readl(spec, GNGPIO_INPUT_VALUE) & bit);
 	} else {