};
 MODULE_DEVICE_TABLE(of, ams_of_match_table);
 
-static void ams_clk_disable_unprepare(void *data)
-{
-       clk_disable_unprepare(data);
-}
-
 static int ams_probe(struct platform_device *pdev)
 {
        struct iio_dev *indio_dev;
        if (IS_ERR(ams->base))
                return PTR_ERR(ams->base);
 
-       ams->clk = devm_clk_get(&pdev->dev, NULL);
+       ams->clk = devm_clk_get_enabled(&pdev->dev, NULL);
        if (IS_ERR(ams->clk))
                return PTR_ERR(ams->clk);
 
-       ret = clk_prepare_enable(ams->clk);
-       if (ret < 0)
-               return ret;
-
-       ret = devm_add_action_or_reset(&pdev->dev, ams_clk_disable_unprepare, ams->clk);
-       if (ret < 0)
-               return ret;
-
        ret = devm_delayed_work_autocancel(&pdev->dev, &ams->ams_unmask_work,
                                           ams_unmask_worker);
        if (ret < 0)