diff --git a/drivers/pinctrl/nuvoton/pinctrl-ma35.c b/drivers/pinctrl/nuvoton/pinctrl-ma35.c index dafa85c105a1..a79ebf4be2c3 100644 --- a/drivers/pinctrl/nuvoton/pinctrl-ma35.c +++ b/drivers/pinctrl/nuvoton/pinctrl-ma35.c @@ -557,6 +557,8 @@ static int ma35_gpiolib_register(struct platform_device *pdev, struct ma35_pinct static int ma35_get_bank_data(struct ma35_pin_bank *bank) { + int ret; + bank->reg_base = fwnode_iomap(bank->fwnode, 0); if (!bank->reg_base) return -ENOMEM; @@ -569,7 +571,11 @@ static int ma35_get_bank_data(struct ma35_pin_bank *bank) if (IS_ERR(bank->clk)) return PTR_ERR(bank->clk); - return clk_prepare_enable(bank->clk); + ret = clk_prepare_enable(bank->clk); + if (ret) + clk_put(bank->clk); + + return ret; } static int ma35_pinctrl_get_soc_data(struct ma35_pinctrl *pctl, struct platform_device *pdev)