iio: adc: ingenic-adc: Benefit from devm_clk_get_prepared() to simplify
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Mon, 8 Aug 2022 20:47:31 +0000 (22:47 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 15 Aug 2022 21:30:02 +0000 (22:30 +0100)
Make use of devm_clk_get_prepared() to replace some code that effectively
open codes this new function.

Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20220808204740.307667-4-u.kleine-koenig@pengutronix.de
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ingenic-adc.c

index 9e08f3a..a7325db 100644 (file)
@@ -734,11 +734,6 @@ static int ingenic_adc_fwnode_xlate(struct iio_dev *iio_dev,
        return -EINVAL;
 }
 
-static void ingenic_adc_clk_cleanup(void *data)
-{
-       clk_unprepare(data);
-}
-
 static const struct iio_info ingenic_adc_info = {
        .write_raw = ingenic_adc_write_raw,
        .read_raw = ingenic_adc_read_raw,
@@ -858,13 +853,13 @@ static int ingenic_adc_probe(struct platform_device *pdev)
        if (IS_ERR(adc->base))
                return PTR_ERR(adc->base);
 
-       adc->clk = devm_clk_get(dev, "adc");
+       adc->clk = devm_clk_get_prepared(dev, "adc");
        if (IS_ERR(adc->clk)) {
                dev_err(dev, "Unable to get clock\n");
                return PTR_ERR(adc->clk);
        }
 
-       ret = clk_prepare_enable(adc->clk);
+       ret = clk_enable(adc->clk);
        if (ret) {
                dev_err(dev, "Failed to enable clock\n");
                return ret;
@@ -893,12 +888,6 @@ static int ingenic_adc_probe(struct platform_device *pdev)
        usleep_range(2000, 3000); /* Must wait at least 2ms. */
        clk_disable(adc->clk);
 
-       ret = devm_add_action_or_reset(dev, ingenic_adc_clk_cleanup, adc->clk);
-       if (ret) {
-               dev_err(dev, "Unable to add action\n");
-               return ret;
-       }
-
        iio_dev->name = "jz-adc";
        iio_dev->modes = INDIO_DIRECT_MODE | INDIO_BUFFER_SOFTWARE;
        iio_dev->setup_ops = &ingenic_buffer_setup_ops;