aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/rb532/gpio.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/mips/rb532/gpio.c b/arch/mips/rb532/gpio.c
index e35cb75a3ae7..f5b15a17432f 100644
--- a/arch/mips/rb532/gpio.c
+++ b/arch/mips/rb532/gpio.c
@@ -169,8 +169,8 @@ static int rb532_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
169 169
170 gpch = container_of(chip, struct rb532_gpio_chip, chip); 170 gpch = container_of(chip, struct rb532_gpio_chip, chip);
171 171
172 if (rb532_get_bit(offset, gpch->regbase + GPIOFUNC)) 172 /* disable alternate function in case it's set */
173 return 1; /* alternate function, GPIOCFG is ignored */ 173 rb532_set_bit(0, offset, gpch->regbase + GPIOFUNC);
174 174
175 rb532_set_bit(0, offset, gpch->regbase + GPIOCFG); 175 rb532_set_bit(0, offset, gpch->regbase + GPIOCFG);
176 return 0; 176 return 0;
@@ -186,8 +186,8 @@ static int rb532_gpio_direction_output(struct gpio_chip *chip,
186 186
187 gpch = container_of(chip, struct rb532_gpio_chip, chip); 187 gpch = container_of(chip, struct rb532_gpio_chip, chip);
188 188
189 if (rb532_get_bit(offset, gpch->regbase + GPIOFUNC)) 189 /* disable alternate function in case it's set */
190 return 1; /* alternate function, GPIOCFG is ignored */ 190 rb532_set_bit(0, offset, gpch->regbase + GPIOFUNC);
191 191
192 /* set the initial output value */ 192 /* set the initial output value */
193 rb532_set_bit(value, offset, gpch->regbase + GPIOD); 193 rb532_set_bit(value, offset, gpch->regbase + GPIOD);