pinctrl: rockchip: enable clock when reading pin direction register
[platform/kernel/linux-rpi.git] / drivers / pinctrl / pinctrl-rockchip.c
index b5cb785..a9bc1e0 100644 (file)
@@ -1989,8 +1989,16 @@ static int rockchip_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
 {
        struct rockchip_pin_bank *bank = gpiochip_get_data(chip);
        u32 data;
+       int ret;
 
+       ret = clk_enable(bank->clk);
+       if (ret < 0) {
+               dev_err(bank->drvdata->dev,
+                       "failed to enable clock for bank %s\n", bank->name);
+               return ret;
+       }
        data = readl_relaxed(bank->reg_base + GPIO_SWPORT_DDR);
+       clk_disable(bank->clk);
 
        return !(data & BIT(offset));
 }