mbox series

[0/2] iio: adc: Add a current from voltage driver

Message ID BN6PR04MB066014AF936EF8ADCBF011A1A3BA0@BN6PR04MB0660.namprd04.prod.outlook.com
Headers show
Series iio: adc: Add a current from voltage driver | expand

Message

Jonathan Bakker May 16, 2020, 2:26 a.m. UTC
In the discussion around adding the GP2A002 light driver, there came
up the question of what to do when a system emulates a current ADC
by using a voltage ADC and a resistor.  Rather than adding it on
a per-driver basis, it was suggested(1) to add a minimal IIO driver
to support this situation.

The new driver is fairly simple - it simply takes a voltage ADC and
a resistor value in ohms exposed as the scale and outputs a current.

It has been tested on a first-gen Galaxy S device which has the above
mentioned GP2A002 chip connected to the voltage ADC resistor complex.

1) https://lore.kernel.org/linux-iio/20200202150843.762c6897@archlinux/

Jonathan Bakker (2):
  dt-bindings: iio: adc: Add binding for current-from-voltage
  iio: adc: Add current-from-voltage driver

 .../iio/adc/linux,current-from-voltage.yaml   |  47 +++++++
 MAINTAINERS                                   |   8 ++
 drivers/iio/adc/Kconfig                       |   9 ++
 drivers/iio/adc/Makefile                      |   1 +
 drivers/iio/adc/current-from-voltage.c        | 123 ++++++++++++++++++
 5 files changed, 188 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/adc/linux,current-from-voltage.yaml
 create mode 100644 drivers/iio/adc/current-from-voltage.c

Comments

Lars-Peter Clausen May 16, 2020, 6:28 a.m. UTC | #1
On 5/16/20 4:26 AM, Jonathan Bakker wrote:
> In the discussion around adding the GP2A002 light driver, there came
> up the question of what to do when a system emulates a current ADC
> by using a voltage ADC and a resistor.  Rather than adding it on
> a per-driver basis, it was suggested(1) to add a minimal IIO driver
> to support this situation.
>
> The new driver is fairly simple - it simply takes a voltage ADC and
> a resistor value in ohms exposed as the scale and outputs a current.
>
> It has been tested on a first-gen Galaxy S device which has the above
> mentioned GP2A002 chip connected to the voltage ADC resistor complex.
>
> 1) https://lore.kernel.org/linux-iio/20200202150843.762c6897@archlinux/

Hi,

There is afe/iio-rescale.c, which I think already implements this 
functionality.

- Lars
Jonathan Bakker May 16, 2020, 3:01 p.m. UTC | #2
Oops, sorry about that, you're absolutely right.  The current-sense-shunt part
of iio-rescale is exactly what I was looking for.

Thanks,
Jonathan

On 2020-05-15 11:28 p.m., Lars-Peter Clausen wrote:
> On 5/16/20 4:26 AM, Jonathan Bakker wrote:
>> In the discussion around adding the GP2A002 light driver, there came
>> up the question of what to do when a system emulates a current ADC
>> by using a voltage ADC and a resistor.  Rather than adding it on
>> a per-driver basis, it was suggested(1) to add a minimal IIO driver
>> to support this situation.
>>
>> The new driver is fairly simple - it simply takes a voltage ADC and
>> a resistor value in ohms exposed as the scale and outputs a current.
>>
>> It has been tested on a first-gen Galaxy S device which has the above
>> mentioned GP2A002 chip connected to the voltage ADC resistor complex.
>>
>> 1) https://lore.kernel.org/linux-iio/20200202150843.762c6897@archlinux/
> 
> Hi,
> 
> There is afe/iio-rescale.c, which I think already implements this functionality.
> 
> - Lars
> 
>