st->vdet_out_en = device_property_read_bool(&spi->dev, "adi,vdet-out-en");
 }
 
-static void adrf6780_clk_disable(void *data)
-{
-       clk_disable_unprepare(data);
-}
-
 static void adrf6780_powerdown(void *data)
 {
        /* Disable all components in the Enable Register */
 
        adrf6780_properties_parse(st);
 
-       st->clkin = devm_clk_get(&spi->dev, "lo_in");
+       st->clkin = devm_clk_get_enabled(&spi->dev, "lo_in");
        if (IS_ERR(st->clkin))
                return dev_err_probe(&spi->dev, PTR_ERR(st->clkin),
                                     "failed to get the LO input clock\n");
 
-       ret = clk_prepare_enable(st->clkin);
-       if (ret)
-               return ret;
-
-       ret = devm_add_action_or_reset(&spi->dev, adrf6780_clk_disable,
-                                      st->clkin);
-       if (ret)
-               return ret;
-
        mutex_init(&st->lock);
 
        ret = adrf6780_init(st);