From: Rodrigo Alencar <[email protected]> Add human-readable labels for all AD9910 IIO channels via the read_label callback.
Signed-off-by: Rodrigo Alencar <[email protected]> --- drivers/iio/frequency/ad9910.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/iio/frequency/ad9910.c b/drivers/iio/frequency/ad9910.c index e43df6265fd4..50d97ce937c7 100644 --- a/drivers/iio/frequency/ad9910.c +++ b/drivers/iio/frequency/ad9910.c @@ -1816,10 +1816,36 @@ static const struct fw_upload_ops ad9910_ram_fwu_ops = { .cancel = ad9910_ram_fwu_cancel }; +static const char * const ad9910_channel_str[] = { + [AD9910_CHAN_IDX_PHY] = "phy", + [AD9910_CHAN_IDX_PROFILE_0] = "profile[0]", + [AD9910_CHAN_IDX_PROFILE_1] = "profile[1]", + [AD9910_CHAN_IDX_PROFILE_2] = "profile[2]", + [AD9910_CHAN_IDX_PROFILE_3] = "profile[3]", + [AD9910_CHAN_IDX_PROFILE_4] = "profile[4]", + [AD9910_CHAN_IDX_PROFILE_5] = "profile[5]", + [AD9910_CHAN_IDX_PROFILE_6] = "profile[6]", + [AD9910_CHAN_IDX_PROFILE_7] = "profile[7]", + [AD9910_CHAN_IDX_PARALLEL_PORT] = "parallel_port", + [AD9910_CHAN_IDX_DRG] = "digital_ramp_generator", + [AD9910_CHAN_IDX_DRG_RAMP_UP] = "digital_ramp_up", + [AD9910_CHAN_IDX_DRG_RAMP_DOWN] = "digital_ramp_down", + [AD9910_CHAN_IDX_RAM] = "ram_control", + [AD9910_CHAN_IDX_OSK] = "output_shift_keying", +}; + +static int ad9910_read_label(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + char *label) +{ + return sysfs_emit(label, "%s\n", ad9910_channel_str[chan->address]); +} + static const struct iio_info ad9910_info = { .read_raw = ad9910_read_raw, .write_raw = ad9910_write_raw, .write_raw_get_fmt = ad9910_write_raw_get_fmt, + .read_label = ad9910_read_label, .debugfs_reg_access = &ad9910_debugfs_reg_access, }; -- 2.43.0

