* [PATCH v2 0/2] iio: adc: ad7173: add calibration support to chip family
@ 2024-11-27 9:06 Guillaume Ranquet
2024-11-27 9:06 ` [PATCH v2 1/2] iio: adc: ad7173: add calibration support Guillaume Ranquet
2024-11-27 9:06 ` [PATCH v2 2/2] iio: adc: ad-sigma-delta: Document ABI for sigma delta adc Guillaume Ranquet
0 siblings, 2 replies; 6+ messages in thread
From: Guillaume Ranquet @ 2024-11-27 9:06 UTC (permalink / raw)
To: Lars-Peter Clausen, Michael Hennerich, Jonathan Cameron
Cc: linux-iio, linux-kernel, Guillaume Ranquet
Calibration on the ad7173 family is the same as on the ad7192 family of
chips and mostly uses the ad_sigma_delta common code.
Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
---
Changes in v2:
- Add a common ad sigma delta ABI documentation to describe calibration
nodes that are common in the sigma delta family.
- Link to v1: https://lore.kernel.org/r/20241115-ad411x_calibration-v1-1-5f820dfb5c80@baylibre.com
---
Guillaume Ranquet (2):
iio: adc: ad7173: add calibration support
iio: adc: ad-sigma-delta: Document ABI for sigma delta adc
.../ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta | 23 ++++
Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 | 24 ----
drivers/iio/adc/ad7173.c | 123 +++++++++++++++++++++
3 files changed, 146 insertions(+), 24 deletions(-)
---
base-commit: 744cf71b8bdfcdd77aaf58395e068b7457634b2c
change-id: 20241115-ad411x_calibration-2c663171d988
Best regards,
--
Guillaume Ranquet <granquet@baylibre.com>
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v2 1/2] iio: adc: ad7173: add calibration support 2024-11-27 9:06 [PATCH v2 0/2] iio: adc: ad7173: add calibration support to chip family Guillaume Ranquet @ 2024-11-27 9:06 ` Guillaume Ranquet 2024-11-30 19:11 ` Jonathan Cameron 2024-11-27 9:06 ` [PATCH v2 2/2] iio: adc: ad-sigma-delta: Document ABI for sigma delta adc Guillaume Ranquet 1 sibling, 1 reply; 6+ messages in thread From: Guillaume Ranquet @ 2024-11-27 9:06 UTC (permalink / raw) To: Lars-Peter Clausen, Michael Hennerich, Jonathan Cameron Cc: linux-iio, linux-kernel, Guillaume Ranquet The ad7173 family of chips has up to four calibration modes. Internal zero scale: removes ADC core offset errors. Internal full scale: removes ADC core gain errors. System zero scale: reduces offset error to the order of channel noise. System full scale: reduces gain error to the order of channel noise. All voltage channels will undergo an internal zero/full scale calibration at bootup. System zero/full scale can be done after bootup using the newly created iio interface 'sys_calibration' and 'sys_calibration_mode' Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> --- drivers/iio/adc/ad7173.c | 123 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/drivers/iio/adc/ad7173.c b/drivers/iio/adc/ad7173.c index a0fca16c3be07534547a5b914d525d05f7425340..11ff148cb5a315d32485acf04b8d6f7d0fb6e5fa 100644 --- a/drivers/iio/adc/ad7173.c +++ b/drivers/iio/adc/ad7173.c @@ -150,6 +150,11 @@ #define AD7173_FILTER_ODR0_MASK GENMASK(5, 0) #define AD7173_MAX_CONFIGS 8 +#define AD7173_MODE_CAL_INT_ZERO 0x4 /* Internal Zero-Scale Calibration */ +#define AD7173_MODE_CAL_INT_FULL 0x5 /* Internal Full-Scale Calibration */ +#define AD7173_MODE_CAL_SYS_ZERO 0x6 /* System Zero-Scale Calibration */ +#define AD7173_MODE_CAL_SYS_FULL 0x7 /* System Full-Scale Calibration */ + struct ad7173_device_info { const unsigned int *sinc5_data_rates; unsigned int num_sinc5_data_rates; @@ -175,6 +180,7 @@ struct ad7173_device_info { bool has_input_buf; bool has_int_ref; bool has_ref2; + bool has_internal_fs_calibration; bool higher_gpio_bits; u8 num_gpios; }; @@ -215,6 +221,7 @@ struct ad7173_state { struct regmap *reg_gpiocon_regmap; struct gpio_regmap *gpio_regmap; #endif + u8 *syscalib_mode; }; static unsigned int ad4115_sinc5_data_rates[] = { @@ -272,6 +279,7 @@ static const struct ad7173_device_info ad4111_device_info = { .has_input_buf = true, .has_current_inputs = true, .has_int_ref = true, + .has_internal_fs_calibration = true, .clock = 2 * HZ_PER_MHZ, .sinc5_data_rates = ad7173_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), @@ -291,6 +299,7 @@ static const struct ad7173_device_info ad4112_device_info = { .has_input_buf = true, .has_current_inputs = true, .has_int_ref = true, + .has_internal_fs_calibration = true, .clock = 2 * HZ_PER_MHZ, .sinc5_data_rates = ad7173_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), @@ -326,6 +335,7 @@ static const struct ad7173_device_info ad4114_device_info = { .has_temp = true, .has_input_buf = true, .has_int_ref = true, + .has_internal_fs_calibration = true, .clock = 2 * HZ_PER_MHZ, .sinc5_data_rates = ad7173_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), @@ -343,6 +353,7 @@ static const struct ad7173_device_info ad4115_device_info = { .has_temp = true, .has_input_buf = true, .has_int_ref = true, + .has_internal_fs_calibration = true, .clock = 8 * HZ_PER_MHZ, .sinc5_data_rates = ad4115_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad4115_sinc5_data_rates), @@ -360,6 +371,7 @@ static const struct ad7173_device_info ad4116_device_info = { .has_temp = true, .has_input_buf = true, .has_int_ref = true, + .has_internal_fs_calibration = true, .clock = 4 * HZ_PER_MHZ, .sinc5_data_rates = ad4116_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad4116_sinc5_data_rates), @@ -505,6 +517,105 @@ static const struct regmap_config ad7173_regmap_config = { .read_flag_mask = BIT(6), }; +enum { + AD7173_SYSCALIB_ZERO_SCALE, + AD7173_SYSCALIB_FULL_SCALE, +}; + +static const char * const ad7173_syscalib_modes[] = { + [AD7173_SYSCALIB_ZERO_SCALE] = "zero_scale", + [AD7173_SYSCALIB_FULL_SCALE] = "full_scale", +}; + +static int ad7173_set_syscalib_mode(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + unsigned int mode) +{ + struct ad7173_state *st = iio_priv(indio_dev); + + st->syscalib_mode[chan->channel] = mode; + + return 0; +} + +static int ad7173_get_syscalib_mode(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan) +{ + struct ad7173_state *st = iio_priv(indio_dev); + + return st->syscalib_mode[chan->channel]; +} + +static ssize_t ad7173_write_syscalib(struct iio_dev *indio_dev, + uintptr_t private, + const struct iio_chan_spec *chan, + const char *buf, size_t len) +{ + struct ad7173_state *st = iio_priv(indio_dev); + bool sys_calib; + int ret, mode; + + ret = kstrtobool(buf, &sys_calib); + if (ret) + return ret; + + mode = st->syscalib_mode[chan->channel]; + if (sys_calib) { + if (mode == AD7173_SYSCALIB_ZERO_SCALE) + ret = ad_sd_calibrate(&st->sd, AD7173_MODE_CAL_SYS_ZERO, + chan->address); + else + ret = ad_sd_calibrate(&st->sd, AD7173_MODE_CAL_SYS_FULL, + chan->address); + } + + return ret ? : len; +} + +static const struct iio_enum ad7173_syscalib_mode_enum = { + .items = ad7173_syscalib_modes, + .num_items = ARRAY_SIZE(ad7173_syscalib_modes), + .set = ad7173_set_syscalib_mode, + .get = ad7173_get_syscalib_mode +}; + +static const struct iio_chan_spec_ext_info ad7173_calibsys_ext_info[] = { + { + .name = "sys_calibration", + .write = ad7173_write_syscalib, + .shared = IIO_SEPARATE, + }, + IIO_ENUM("sys_calibration_mode", IIO_SEPARATE, + &ad7173_syscalib_mode_enum), + IIO_ENUM_AVAILABLE("sys_calibration_mode", IIO_SHARED_BY_TYPE, + &ad7173_syscalib_mode_enum), + { } +}; + +static int ad7173_calibrate_all(struct ad7173_state *st, struct iio_dev *indio_dev) +{ + int ret; + int i; + + for (i = 0; i < st->num_channels; i++) { + if (indio_dev->channels[i].type != IIO_VOLTAGE) + continue; + + ret = ad_sd_calibrate(&st->sd, AD7173_MODE_CAL_INT_ZERO, st->channels[i].ain); + if (ret < 0) + return ret; + + if (st->info->has_internal_fs_calibration) { + ret = ad_sd_calibrate(&st->sd, AD7173_MODE_CAL_INT_FULL, + st->channels[i].ain); + if (ret < 0) + return ret; + } + } + + return 0; +} + static int ad7173_mask_xlate(struct gpio_regmap *gpio, unsigned int base, unsigned int offset, unsigned int *reg, unsigned int *mask) @@ -801,6 +912,10 @@ static int ad7173_setup(struct iio_dev *indio_dev) if (!st->config_cnts) return -ENOMEM; + ret = ad7173_calibrate_all(st, indio_dev); + if (ret) + return ret; + /* All channels are enabled by default after a reset */ return ad7173_disable_all(&st->sd); } @@ -1023,6 +1138,7 @@ static const struct iio_chan_spec ad7173_channel_template = { .storagebits = 32, .endianness = IIO_BE, }, + .ext_info = ad7173_calibsys_ext_info, }; static const struct iio_chan_spec ad7173_temp_iio_channel_template = { @@ -1213,6 +1329,7 @@ static int ad7173_fw_parse_channel_config(struct iio_dev *indio_dev) struct iio_chan_spec *chan_arr, *chan; unsigned int ain[AD7173_NO_AINS_PER_CHANNEL], chan_index = 0; int ref_sel, ret, num_channels; + u8 *calib_mode; num_channels = device_get_child_node_count(dev); @@ -1240,8 +1357,14 @@ static int ad7173_fw_parse_channel_config(struct iio_dev *indio_dev) if (!chans_st_arr) return -ENOMEM; + calib_mode = devm_kcalloc(dev, st->num_channels, sizeof(*st->syscalib_mode), + GFP_KERNEL); + if (!calib_mode) + return -ENOMEM; + indio_dev->channels = chan_arr; st->channels = chans_st_arr; + st->syscalib_mode = calib_mode; if (st->info->has_temp) { chan_arr[chan_index] = ad7173_temp_iio_channel_template; -- 2.47.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] iio: adc: ad7173: add calibration support 2024-11-27 9:06 ` [PATCH v2 1/2] iio: adc: ad7173: add calibration support Guillaume Ranquet @ 2024-11-30 19:11 ` Jonathan Cameron 0 siblings, 0 replies; 6+ messages in thread From: Jonathan Cameron @ 2024-11-30 19:11 UTC (permalink / raw) To: Guillaume Ranquet Cc: Lars-Peter Clausen, Michael Hennerich, linux-iio, linux-kernel On Wed, 27 Nov 2024 10:06:13 +0100 Guillaume Ranquet <granquet@baylibre.com> wrote: > The ad7173 family of chips has up to four calibration modes. > > Internal zero scale: removes ADC core offset errors. > Internal full scale: removes ADC core gain errors. > System zero scale: reduces offset error to the order of channel noise. > System full scale: reduces gain error to the order of channel noise. > > All voltage channels will undergo an internal zero/full scale > calibration at bootup. > > System zero/full scale can be done after bootup using the newly created > iio interface 'sys_calibration' and 'sys_calibration_mode' > > Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> > static const struct iio_chan_spec ad7173_temp_iio_channel_template = { > @@ -1213,6 +1329,7 @@ static int ad7173_fw_parse_channel_config(struct iio_dev *indio_dev) > struct iio_chan_spec *chan_arr, *chan; > unsigned int ain[AD7173_NO_AINS_PER_CHANNEL], chan_index = 0; > int ref_sel, ret, num_channels; > + u8 *calib_mode; > > num_channels = device_get_child_node_count(dev); > > @@ -1240,8 +1357,14 @@ static int ad7173_fw_parse_channel_config(struct iio_dev *indio_dev) > if (!chans_st_arr) > return -ENOMEM; > > + calib_mode = devm_kcalloc(dev, st->num_channels, sizeof(*st->syscalib_mode), > + GFP_KERNEL); As it is per channel, can we put it in struct ad7173_channel? This driver already has a lot of small allocations. Avoiding an extra one would nice! > + if (!calib_mode) > + return -ENOMEM; > + > indio_dev->channels = chan_arr; > st->channels = chans_st_arr; > + st->syscalib_mode = calib_mode; > > if (st->info->has_temp) { > chan_arr[chan_index] = ad7173_temp_iio_channel_template; > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] iio: adc: ad-sigma-delta: Document ABI for sigma delta adc 2024-11-27 9:06 [PATCH v2 0/2] iio: adc: ad7173: add calibration support to chip family Guillaume Ranquet 2024-11-27 9:06 ` [PATCH v2 1/2] iio: adc: ad7173: add calibration support Guillaume Ranquet @ 2024-11-27 9:06 ` Guillaume Ranquet 2024-11-30 19:06 ` Jonathan Cameron 1 sibling, 1 reply; 6+ messages in thread From: Guillaume Ranquet @ 2024-11-27 9:06 UTC (permalink / raw) To: Lars-Peter Clausen, Michael Hennerich, Jonathan Cameron Cc: linux-iio, linux-kernel, Guillaume Ranquet Add common calibration nodes for sigma delta adc. Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> --- .../ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta | 23 +++++++++++++++++++++ Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 | 24 ---------------------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta new file mode 100644 index 0000000000000000000000000000000000000000..c2c55a966163736aea8d46fc5089c08dac747b84 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta @@ -0,0 +1,23 @@ +What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration +KernelVersion: +Contact: linux-iio@vger.kernel.org +Description: + This attribute, if available, initiates the system calibration procedure. This is done on a + single channel at a time. Write '1' to start the calibration. + +What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode_available +KernelVersion: +Contact: linux-iio@vger.kernel.org +Description: + This attribute, if available, returns a list with the possible calibration modes. + There are two available options: + "zero_scale" - calibrate to zero scale + "full_scale" - calibrate to full scale + +What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode +KernelVersion: +Contact: linux-iio@vger.kernel.org +Description: + This attribute, if available, sets up the calibration mode used in the system calibration + procedure. Reading returns the current calibration mode. + Writing sets the system calibration mode. diff --git a/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 index f8315202c8f0df2bd4b7216f5cf8d3c2780fcf3f..28be1cabf1124ac7593392e17e4759ddfac829e8 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 +++ b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 @@ -19,33 +19,9 @@ Description: the bridge can be disconnected (when it is not being used using the bridge_switch_en attribute. -What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration -KernelVersion: -Contact: linux-iio@vger.kernel.org -Description: - Initiates the system calibration procedure. This is done on a - single channel at a time. Write '1' to start the calibration. - What: /sys/bus/iio/devices/iio:deviceX/in_voltage2-voltage2_shorted_raw KernelVersion: Contact: linux-iio@vger.kernel.org Description: Measure voltage from AIN2 pin connected to AIN(+) and AIN(-) shorted. - -What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode_available -KernelVersion: -Contact: linux-iio@vger.kernel.org -Description: - Reading returns a list with the possible calibration modes. - There are two available options: - "zero_scale" - calibrate to zero scale - "full_scale" - calibrate to full scale - -What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode -KernelVersion: -Contact: linux-iio@vger.kernel.org -Description: - Sets up the calibration mode used in the system calibration - procedure. Reading returns the current calibration mode. - Writing sets the system calibration mode. -- 2.47.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] iio: adc: ad-sigma-delta: Document ABI for sigma delta adc 2024-11-27 9:06 ` [PATCH v2 2/2] iio: adc: ad-sigma-delta: Document ABI for sigma delta adc Guillaume Ranquet @ 2024-11-30 19:06 ` Jonathan Cameron 2024-12-02 9:28 ` Guillaume Ranquet 0 siblings, 1 reply; 6+ messages in thread From: Jonathan Cameron @ 2024-11-30 19:06 UTC (permalink / raw) To: Guillaume Ranquet Cc: Lars-Peter Clausen, Michael Hennerich, linux-iio, linux-kernel On Wed, 27 Nov 2024 10:06:14 +0100 Guillaume Ranquet <granquet@baylibre.com> wrote: > Add common calibration nodes for sigma delta adc. > > Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> Hi Guillaume. I think there are some issues with the old docs that should be tidied up whilst we are here :( Just fix them up in this patch then mention it in the patch description. Or if you prefer move and then fix in separate patches. Jonathan > --- > .../ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta | 23 +++++++++++++++++++++ > Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 | 24 ---------------------- > 2 files changed, 23 insertions(+), 24 deletions(-) > > diff --git a/Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta > new file mode 100644 > index 0000000000000000000000000000000000000000..c2c55a966163736aea8d46fc5089c08dac747b84 > --- /dev/null > +++ b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta > @@ -0,0 +1,23 @@ > +What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration in_voltageY_sys_calibration (as indices are capital letters and X is used earlier). > +KernelVersion: Make an estimate of this I'll never remember to fill them in whilst applying. It should make the next merge window I hope! > +Contact: linux-iio@vger.kernel.org > +Description: > + This attribute, if available, initiates the system calibration procedure. This is done on a > + single channel at a time. Write '1' to start the calibration. > + > +What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode_available > +KernelVersion: > +Contact: linux-iio@vger.kernel.org > +Description: > + This attribute, if available, returns a list with the possible calibration modes. > + There are two available options: > + "zero_scale" - calibrate to zero scale > + "full_scale" - calibrate to full scale > + > +What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode > +KernelVersion: > +Contact: linux-iio@vger.kernel.org > +Description: > + This attribute, if available, sets up the calibration mode used in the system calibration > + procedure. Reading returns the current calibration mode. > + Writing sets the system calibration mode. > diff --git a/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 > index f8315202c8f0df2bd4b7216f5cf8d3c2780fcf3f..28be1cabf1124ac7593392e17e4759ddfac829e8 100644 > --- a/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 > +++ b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 > @@ -19,33 +19,9 @@ Description: > the bridge can be disconnected (when it is not being used > using the bridge_switch_en attribute. > > -What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration Huh. That would explain the x above. I assume it is per channel? > -KernelVersion: > -Contact: linux-iio@vger.kernel.org > -Description: > - Initiates the system calibration procedure. This is done on a > - single channel at a time. Write '1' to start the calibration. > - > What: /sys/bus/iio/devices/iio:deviceX/in_voltage2-voltage2_shorted_raw > KernelVersion: > Contact: linux-iio@vger.kernel.org > Description: > Measure voltage from AIN2 pin connected to AIN(+) > and AIN(-) shorted. > - > -What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode_available > -KernelVersion: > -Contact: linux-iio@vger.kernel.org > -Description: > - Reading returns a list with the possible calibration modes. > - There are two available options: > - "zero_scale" - calibrate to zero scale > - "full_scale" - calibrate to full scale > - > -What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode > -KernelVersion: > -Contact: linux-iio@vger.kernel.org > -Description: > - Sets up the calibration mode used in the system calibration > - procedure. Reading returns the current calibration mode. > - Writing sets the system calibration mode. > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] iio: adc: ad-sigma-delta: Document ABI for sigma delta adc 2024-11-30 19:06 ` Jonathan Cameron @ 2024-12-02 9:28 ` Guillaume Ranquet 0 siblings, 0 replies; 6+ messages in thread From: Guillaume Ranquet @ 2024-12-02 9:28 UTC (permalink / raw) To: Jonathan Cameron Cc: Lars-Peter Clausen, Michael Hennerich, linux-iio, linux-kernel On Sat, 30 Nov 2024 20:06, Jonathan Cameron <jic23@kernel.org> wrote: >On Wed, 27 Nov 2024 10:06:14 +0100 >Guillaume Ranquet <granquet@baylibre.com> wrote: > >> Add common calibration nodes for sigma delta adc. >> >> Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> >Hi Guillaume. > >I think there are some issues with the old docs that should be tidied up whilst >we are here :( Hi Jonathan, No problem, will do :) > >Just fix them up in this patch then mention it in the patch description. >Or if you prefer move and then fix in separate patches. > > >Jonathan > >> --- >> .../ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta | 23 +++++++++++++++++++++ >> Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 | 24 ---------------------- >> 2 files changed, 23 insertions(+), 24 deletions(-) >> >> diff --git a/Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta >> new file mode 100644 >> index 0000000000000000000000000000000000000000..c2c55a966163736aea8d46fc5089c08dac747b84 >> --- /dev/null >> +++ b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta >> @@ -0,0 +1,23 @@ >> +What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration >in_voltageY_sys_calibration > >(as indices are capital letters and X is used earlier). > > >> +KernelVersion: >Make an estimate of this I'll never remember to fill them in whilst applying. > >It should make the next merge window I hope! > >> +Contact: linux-iio@vger.kernel.org >> +Description: >> + This attribute, if available, initiates the system calibration procedure. This is done on a >> + single channel at a time. Write '1' to start the calibration. >> + >> +What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode_available >> +KernelVersion: >> +Contact: linux-iio@vger.kernel.org >> +Description: >> + This attribute, if available, returns a list with the possible calibration modes. >> + There are two available options: >> + "zero_scale" - calibrate to zero scale >> + "full_scale" - calibrate to full scale >> + >> +What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode >> +KernelVersion: >> +Contact: linux-iio@vger.kernel.org >> +Description: >> + This attribute, if available, sets up the calibration mode used in the system calibration >> + procedure. Reading returns the current calibration mode. >> + Writing sets the system calibration mode. >> diff --git a/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 >> index f8315202c8f0df2bd4b7216f5cf8d3c2780fcf3f..28be1cabf1124ac7593392e17e4759ddfac829e8 100644 >> --- a/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 >> +++ b/Documentation/ABI/testing/sysfs-bus-iio-adc-ad7192 >> @@ -19,33 +19,9 @@ Description: >> the bridge can be disconnected (when it is not being used >> using the bridge_switch_en attribute. >> >> -What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration >Huh. That would explain the x above. I assume it is per channel? > Yes, calibration is per channel. >> -KernelVersion: >> -Contact: linux-iio@vger.kernel.org >> -Description: >> - Initiates the system calibration procedure. This is done on a >> - single channel at a time. Write '1' to start the calibration. >> - >> What: /sys/bus/iio/devices/iio:deviceX/in_voltage2-voltage2_shorted_raw >> KernelVersion: >> Contact: linux-iio@vger.kernel.org >> Description: >> Measure voltage from AIN2 pin connected to AIN(+) >> and AIN(-) shorted. >> - >> -What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode_available >> -KernelVersion: >> -Contact: linux-iio@vger.kernel.org >> -Description: >> - Reading returns a list with the possible calibration modes. >> - There are two available options: >> - "zero_scale" - calibrate to zero scale >> - "full_scale" - calibrate to full scale >> - >> -What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode >> -KernelVersion: >> -Contact: linux-iio@vger.kernel.org >> -Description: >> - Sets up the calibration mode used in the system calibration >> - procedure. Reading returns the current calibration mode. >> - Writing sets the system calibration mode. >> ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-12-02 9:28 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-11-27 9:06 [PATCH v2 0/2] iio: adc: ad7173: add calibration support to chip family Guillaume Ranquet 2024-11-27 9:06 ` [PATCH v2 1/2] iio: adc: ad7173: add calibration support Guillaume Ranquet 2024-11-30 19:11 ` Jonathan Cameron 2024-11-27 9:06 ` [PATCH v2 2/2] iio: adc: ad-sigma-delta: Document ABI for sigma delta adc Guillaume Ranquet 2024-11-30 19:06 ` Jonathan Cameron 2024-12-02 9:28 ` Guillaume Ranquet
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox