On 6/7/24 9:53 AM, Dumitru Ceclan via B4 Relay wrote: > This patch series adds support for the Analog Devices AD4111, AD4112, > AD4114, AD4115, AD4116 within the existing AD7173 driver. > > The AD411X family encompasses a series of low power, low noise, 24-bit, > sigma-delta analog-to-digital converters that offer a versatile range of > specifications. They integrate an analog front end suitable for processing > fully differential/single-ended and bipolar voltage inputs. > > Particularities of the models: > - All ADCs have inputs with a precision voltage divider with a division > ratio of 10. > - AD4116 has 5 low level inputs without a voltage divider. > - AD4111 and AD4112 support current inputs (0 mA to 20 mA) using a 50ohm > shunt resistor. > > Discussions from this patch series have concluded with: > -Datasheets mention single-ended and pseudo differential capabilities by > the means of connecting the negative input of a differential pair (IN-) > to a constant voltage supply and letting the positive input fluctuate. > This is not a special operating mode, it is a capability of the > differential channels to also measure such signals. > > -Single-ended and pseudo differential do not need any specific > configuration and cannot be differentiated from differential usage by > the driver side => > offer adi,channel-type attribute to flag the usage of the channel > > -VINCOM is described as a dedicated pin for single-ended channels but as > seen in AD4116, it is a normal input connected to the cross-point > multiplexer (VIN10, VINCOM (single-ended or differential pair)). > This does not mean full functionality in any configuration: > AD4111:"If any two voltage inputs are paired in a configuration other > than what is described in this data sheet, the accuracy of the device > cannot be guaranteed". > > -ADCIN15 input pin from AD4116 is specified as the dedicated pin for > pseudo-differential but from the datasheet it results that this pin is > also able to measure single-ended and fully differential channels > ("ADCIN11, ADCIN15. (pseudo differential or differential pair)"; > "An example is to connect the ADCIN15 pin externally to the AVSS > pin in a single-ended configuration") > > As such, detecting the type of usage of a channel is not possible and > will be the responsibility of the user to specify. > If the user has connected a non 0V (in regards to AVSS) supply to > the negative input pin of a channel in a pseudo differential > configuration, the offset of the measurement from AVSS will not be known > from the driver and will need to be measured by other means. > > Datasheets: > https://www.analog.com/media/en/technical-documentation/data-sheets/AD4111.pdf > https://www.analog.com/media/en/technical-documentation/data-sheets/AD4112.pdf > https://www.analog.com/media/en/technical-documentation/data-sheets/AD4114.pdf > https://www.analog.com/media/en/technical-documentation/data-sheets/AD4115.pdf > https://www.analog.com/media/en/technical-documentation/data-sheets/AD4116.pdf > > This series depends on patches: > (iio: adc: ad7173: Use device_for_each_child_node_scoped() to simplify error paths.) > https://lore.kernel.org/all/20240330190849.1321065-6-jic23@xxxxxxxxxx > (dt-bindings: iio: adc: Add single-channel property) > https://lore.kernel.org/linux-iio/20240514120222.56488-5-alisa.roman@xxxxxxxxxx/ > > And patch series: > (AD7173 fixes) > https://lore.kernel.org/all/20240521-ad7173-fixes-v1-0-8161cc7f3ad1@xxxxxxxxxx/ > > Signed-off-by: Dumitru Ceclan <mitrutzceclan@xxxxxxxxx> > --- Reviewed-by: David Lechner <dlechner@xxxxxxxxxxxx>