]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: dac: adi-axi-dac: support debugfs direct_reg_access
authorNuno Sa <nuno.sa@analog.com>
Tue, 6 Aug 2024 13:35:06 +0000 (15:35 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 10 Aug 2024 10:17:33 +0000 (11:17 +0100)
Make it possible to read/write registers on the backend using the
debugfs interface for it.

Signed-off-by: Nuno Sa <nuno.sa@analog.com>
Link: https://patch.msgid.link/20240806-dev-backend-dac-direct-reg-access-v1-1-b84a6e8ee8a0@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/dac/adi-axi-dac.c

index 9655705b158bec8edbc58362bbe699d366a70e7e..0cb00f3bec0453e56e1317d12fef3573bcc4621a 100644 (file)
@@ -507,6 +507,17 @@ static int axi_dac_set_sample_rate(struct iio_backend *back, unsigned int chan,
        return 0;
 }
 
+static int axi_dac_reg_access(struct iio_backend *back, unsigned int reg,
+                             unsigned int writeval, unsigned int *readval)
+{
+       struct axi_dac_state *st = iio_backend_get_priv(back);
+
+       if (readval)
+               return regmap_read(st->regmap, reg, readval);
+
+       return regmap_write(st->regmap, reg, writeval);
+}
+
 static const struct iio_backend_ops axi_dac_generic_ops = {
        .enable = axi_dac_enable,
        .disable = axi_dac_disable,
@@ -517,6 +528,7 @@ static const struct iio_backend_ops axi_dac_generic_ops = {
        .ext_info_get = axi_dac_ext_info_get,
        .data_source_set = axi_dac_data_source_set,
        .set_sample_rate = axi_dac_set_sample_rate,
+       .debugfs_reg_access = iio_backend_debugfs_ptr(axi_dac_reg_access),
 };
 
 static const struct iio_backend_info axi_dac_generic = {