Re: [PATCH 2/2] iio: afe: unit-converter: add support for adi,lt6106

From: Peter Rosin
Date: Thu Apr 12 2018 - 18:31:27 EST


On 2018-04-12 17:35, Andrew F. Davis wrote:
> On 04/12/2018 09:29 AM, Peter Rosin wrote:
>> On 2018-04-11 18:13, Andrew F. Davis wrote:
>>> On 04/11/2018 10:51 AM, Lars-Peter Clausen wrote:
>>>> On 04/11/2018 05:43 PM, Andrew F. Davis wrote:
>>>>> On 04/11/2018 09:15 AM, Peter Rosin wrote:
>>>>>> This is a current sense amplifier from Analog Devices.
>>>>>>
>>>>>> Signed-off-by: Peter Rosin <peda@xxxxxxxxxx>
>>>>>> ---
>>>>>> drivers/iio/afe/Kconfig | 3 +-
>>>>>> drivers/iio/afe/iio-unit-converter.c | 54 ++++++++++++++++++++++++++++++++++++
>>>>>> 2 files changed, 56 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/drivers/iio/afe/Kconfig b/drivers/iio/afe/Kconfig
>>>>>> index 642ce4eb12a6..0e10fe8f459a 100644
>>>>>> --- a/drivers/iio/afe/Kconfig
>>>>>> +++ b/drivers/iio/afe/Kconfig
>>>>>> @@ -10,7 +10,8 @@ config IIO_UNIT_CONVERTER
>>>>>> depends on OF || COMPILE_TEST
>>>>>> help
>>>>>> Say yes here to build support for the IIO unit converter
>>>>>> - that handles voltage dividers and current sense shunts.
>>>>>> + that handles voltage dividers, current sense shunts and
>>>>>> + the LT6106 Current Sense Amplifier from Analog Devices.
>>>>>
>>>>> Could work better to split these out into separate drivers. Maybe a
>>>>> iio-shunt-resistor.c that does just voltage->current with the
>>>>> appropriate scaling. Then make a a separate lt6106.c.
>>>>
>>>> I don't think we need a separate driver here. There are tons of circuits
>>>> that all work the same way and all require the same properties. If we'd add
>>>> a driver for each of them we'd get buried in boilerplate code.
>>>>
>>>
>>> Fair enough, then it should at least be renamed to something generic
>>> like current-sense-amplifier, as you said lots of circuits do this, not
>>> just lt6106s. We will have then have support for:
>>>
>>> current-sense-amplifier
>>> current-sense-shunt
>>> voltage-divider
>>
>> For the compatible "current-sense-amplifier", I would advocate the
>> properties...
>>
>> sense-resistor-micro-ohms
>> sense-gain
>>
>> (or something close to that)
>>
>> ...and not input-resistor-ohms and output-resistor-ohms which are way
>> more particular to the LT6106.
>>
>> But as I said in the cover letter, I didn't go with sense-gain since I
>> thought I would end up with requests for non-integer gains. There is
>> yet to be a comment on the non-integer gain problem, and before there
>> is a path forward for that case, I'm reluctant.
>>
>
> Why not similar to what you had before with the resistor:
>
> sense-gain-multiplier
> sense-gain-divider
>
> if either are missing assume they are 1.

Hmm, how about sense-gain for the normal integer case, and then divide
by sense-attenuation if needed? I.e. exactly the same functionality as
you describe, just different names.

>>> compatibles in this driver called "unit-converter" which is still a
>>> misnomer IMHO.
>>
>> I don't remember you having presented your preference, and I think
>> that goes against the established bike-shedding protocol?
>>
>
> True, how about "current-sense-from-voltage" ?

Doesn't cover "voltage-divider" (and we don't need separate drivers
doing the exact same calculations, that's a maintenance nightmare).

Cheers,
Peter