diff options
-rw-r--r-- | drivers/pwm/pwm-imx-tpm.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/pwm/pwm-imx-tpm.c b/drivers/pwm/pwm-imx-tpm.c index b04b974c5f32..c50ddbac43c8 100644 --- a/drivers/pwm/pwm-imx-tpm.c +++ b/drivers/pwm/pwm-imx-tpm.c @@ -337,6 +337,7 @@ static int pwm_imx_tpm_probe(struct platform_device *pdev) { struct pwm_chip *chip; struct imx_tpm_pwm_chip *tpm; + struct clk *clk; void __iomem *base; int ret; unsigned int npwm; @@ -346,6 +347,11 @@ static int pwm_imx_tpm_probe(struct platform_device *pdev) if (IS_ERR(base)) return PTR_ERR(base); + clk = devm_clk_get_enabled(&pdev->dev, NULL); + if (IS_ERR(clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(clk), + "failed to get PWM clock\n"); + /* get number of channels */ val = readl(base + PWM_IMX_TPM_PARAM); npwm = FIELD_GET(PWM_IMX_TPM_PARAM_CHAN, val); @@ -358,11 +364,7 @@ static int pwm_imx_tpm_probe(struct platform_device *pdev) platform_set_drvdata(pdev, tpm); tpm->base = base; - - tpm->clk = devm_clk_get_enabled(&pdev->dev, NULL); - if (IS_ERR(tpm->clk)) - return dev_err_probe(&pdev->dev, PTR_ERR(tpm->clk), - "failed to get PWM clock\n"); + tpm->clk = clk; chip->ops = &imx_tpm_pwm_ops; |