aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoniu Miclaus <antoniu.miclaus@analog.com>2023-07-31 12:44:55 +0300
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2023-08-05 19:29:39 +0100
commit320b92a4c18246f23c6aa7202caf2b106cbfc206 (patch)
treef4b607efdbde292f468b1af57098bf4ba49a1d98
parenteaf3ada827a96f29eed1f0fd693a0c05d321759d (diff)
downloadiio-320b92a4c18246f23c6aa7202caf2b106cbfc206.tar.gz
drivers: iio: admv1013: add vcc regulators
Add regulators for the VCC supplies of the admv1013. The patch aims to align the implementation with the current admv1014 driver where all the VCC supplies are handled as regulators. Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com> Link: https://lore.kernel.org/r/20230731094455.26742-2-antoniu.miclaus@analog.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-rw-r--r--drivers/iio/frequency/admv1013.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/iio/frequency/admv1013.c b/drivers/iio/frequency/admv1013.c
index 9bf8337806fcf1..cc01fac2dfee42 100644
--- a/drivers/iio/frequency/admv1013.c
+++ b/drivers/iio/frequency/admv1013.c
@@ -379,6 +379,11 @@ static const struct iio_info admv1013_info = {
.debugfs_reg_access = &admv1013_reg_access,
};
+static const char * const admv1013_vcc_regs[] = {
+ "vcc-drv", "vcc2-drv", "vcc-vva", "vcc-amp1", "vcc-amp2",
+ "vcc-env", "vcc-bg", "vcc-bg2", "vcc-mixer", "vcc-quad"
+};
+
static int admv1013_freq_change(struct notifier_block *nb, unsigned long action, void *data)
{
struct admv1013_state *st = container_of(nb, struct admv1013_state, nb);
@@ -554,6 +559,15 @@ static int admv1013_properties_parse(struct admv1013_state *st)
return dev_err_probe(&spi->dev, PTR_ERR(st->reg),
"failed to get the common-mode voltage\n");
+ ret = devm_regulator_bulk_get_enable(&st->spi->dev,
+ ARRAY_SIZE(admv1013_vcc_regs),
+ admv1013_vcc_regs);
+ if (ret) {
+ dev_err_probe(&spi->dev, ret,
+ "Failed to request VCC regulators\n");
+ return ret;
+ }
+
return 0;
}