Skip to content

Commit 7048348

Browse files
dlechjic23
authored andcommitted
iio: adc: ad7173: simplify clock enable/disable
Use devm_clk_get_enabled() instead of devm_clk_get(), clk_prepare_enable(), devm_add_action_or_reset() to simplify the code as it effectively does the same thing. We can also drop ext_clk from struct ad7173_state since it is not used anywhere else. Signed-off-by: David Lechner <dlechner@baylibre.com> Link: https://patch.msgid.link/20250620-iio-adc-ad7173-simplify-clock-enable-disable-v1-1-8bc693b190ec@baylibre.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
1 parent ea39f4c commit 7048348

File tree

1 file changed

+5
-19
lines changed

1 file changed

+5
-19
lines changed

drivers/iio/adc/ad7173.c

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,6 @@ struct ad7173_state {
228228
struct ida cfg_slots_status;
229229
unsigned long long config_usage_counter;
230230
unsigned long long *config_cnts;
231-
struct clk *ext_clk;
232231
struct clk_hw int_clk_hw;
233232
struct regmap *reg_gpiocon_regmap;
234233
struct gpio_regmap *gpio_regmap;
@@ -1344,11 +1343,6 @@ static void ad7173_disable_regulators(void *data)
13441343
regulator_bulk_disable(ARRAY_SIZE(st->regulators), st->regulators);
13451344
}
13461345

1347-
static void ad7173_clk_disable_unprepare(void *clk)
1348-
{
1349-
clk_disable_unprepare(clk);
1350-
}
1351-
13521346
static unsigned long ad7173_sel_clk(struct ad7173_state *st,
13531347
unsigned int clk_sel)
13541348
{
@@ -1718,22 +1712,14 @@ static int ad7173_fw_parse_device_config(struct iio_dev *indio_dev)
17181712
AD7173_ADC_MODE_CLOCKSEL_INT);
17191713
ad7173_register_clk_provider(indio_dev);
17201714
} else {
1715+
struct clk *clk;
1716+
17211717
st->adc_mode |= FIELD_PREP(AD7173_ADC_MODE_CLOCKSEL_MASK,
17221718
AD7173_ADC_MODE_CLOCKSEL_EXT + ret);
1723-
st->ext_clk = devm_clk_get(dev, ad7173_clk_sel[ret]);
1724-
if (IS_ERR(st->ext_clk))
1725-
return dev_err_probe(dev, PTR_ERR(st->ext_clk),
1719+
clk = devm_clk_get_enabled(dev, ad7173_clk_sel[ret]);
1720+
if (IS_ERR(clk))
1721+
return dev_err_probe(dev, PTR_ERR(clk),
17261722
"Failed to get external clock\n");
1727-
1728-
ret = clk_prepare_enable(st->ext_clk);
1729-
if (ret)
1730-
return dev_err_probe(dev, ret,
1731-
"Failed to enable external clock\n");
1732-
1733-
ret = devm_add_action_or_reset(dev, ad7173_clk_disable_unprepare,
1734-
st->ext_clk);
1735-
if (ret)
1736-
return ret;
17371723
}
17381724

17391725
return ad7173_fw_parse_channel_config(indio_dev);

0 commit comments

Comments
 (0)