From: David Lechner <dlechner@baylibre.com>
To: "Miclaus, Antoniu" <Antoniu.Miclaus@analog.com>
Cc: Jonathan Cameron <jic23@kernel.org>,
Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
"Sa, Nuno" <Nuno.Sa@analog.com>,
"Bogdan, Dragos" <Dragos.Bogdan@analog.com>,
"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-pwm@vger.kernel.org" <linux-pwm@vger.kernel.org>
Subject: Re: [PATCH v3 6/6] iio: adc: ad4851: add ad485x driver
Date: Fri, 25 Oct 2024 14:55:13 -0500 [thread overview]
Message-ID: <315f158e-0c3b-48e3-b288-27170f0659ed@baylibre.com> (raw)
In-Reply-To: <f3351a7f-318b-42d6-aa1a-e8279eb06b78@baylibre.com>
On 10/25/24 9:29 AM, David Lechner wrote:
> On 10/25/24 6:35 AM, Miclaus, Antoniu wrote:
>>>
> ...
>
>>>
>>> See the ad7380 driver as an example of how to impelemt this. [2]
>>>
>>> [2]: https://urldefense.com/v3/__https://lore.kernel.org/linux-
>>> iio/20240530-iio-add-support-for-multiple-scan-types-v3-5-
>>> cbc4acea2cfa@baylibre.com/__;!!A3Ni8CS0y2Y!4LS7UI11XqIHRgT3ckx76VYn
>>> CyeikpTumyjO0qDTn7eF7Fd-
>>> jFFL8yqpYcMAxP_u3VC09bfIAB7gW_rvGoM_sEA$
>>>
>>> Also, I would expect the .sign value to depend on how the
>>> input is being used. If it is differential or single-ended
>>> bipolar, then it is signed, but if it is signle-ended unipoloar
>>> then it is unsiged.
>>>
>>> Typically, this is coming from the devicetree because it
>>> depends on what is wired up to the input.
>>
>> This topic is mentioned in the cover letter, maybe not argued enough there.
>> Yes, the go-to approach is to specify the unipolar/bipolar configuration in the devicetree.
>> But this is a request from the actual users of the driver: to have the softspan fully
>> controlled from userspace. That's why the offset and scale implementations were added.
>> Both these attributes are influencing the softspan.
>>
>>>> + }, \
>>>> +}
>>>
>
> The cover letter did not get sent, so we did not see this.
So please resend it so we can get the full explanation.
>
> Still, I have doubts about using the offset attribute for
> this since a 0 raw value is always 0V for both unipolar
> and bipolar cases. There is never an offset to apply to
> the raw value.
>
> So I think we will need to find a different way to control
> this other than the offset attribute.
I thought about this some more and I have an idea to solve the
issue without using devicetree or the offset attribute.
But we should see what Jonathan thinks before implementing this
in case it isn't a good idea.
We can expose each voltage input to userspace as two different
channels, a single-ended channel and a differential channel.
For an 8 channel chip, we would have 16 IIO channels (in order
of scan_index):
in_voltage0_raw
in_voltage0-voltage8_raw
in_voltage1_raw
in_voltage1-voltage9_raw
...
in_voltage7_raw
in_voltage7-voltage15_raw
If you read the voltage using in_voltageX_raw, then the SoftSpan
for that channel gets set to the 0V to +V value based on
in_voltageX_scale. Likewise, if you read the in_voltageX-voltageY_raw
attribute, the SoftSpan gets set to -V to +V according to
in_voltageX-voltageY_scale.
For buffered reads, only one of each in_voltageX_raw/in_voltageX-voltageY_raw
pair can be enabled at the same time (because the chip is simultaneous
sampling).
next prev parent reply other threads:[~2024-10-25 19:55 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-14 9:40 [PATCH v3 1/6] iio: backend: add API for interface get Antoniu Miclaus
2024-10-14 9:40 ` [PATCH v3 2/6] iio: backend: add support for data size set Antoniu Miclaus
2024-10-14 9:40 ` [PATCH v3 3/6] iio: adc: adi-axi-adc: add interface type Antoniu Miclaus
2024-10-14 11:42 ` Andy Shevchenko
2024-10-14 9:40 ` [PATCH v3 4/6] iio: adc: adi-axi-adc: set data format Antoniu Miclaus
2024-10-14 11:45 ` Andy Shevchenko
2024-10-14 9:40 ` [PATCH v3 5/6] dt-bindings: iio: adc: add ad4851 Antoniu Miclaus
2024-10-14 9:40 ` [PATCH v3 6/6] iio: adc: ad4851: add ad485x driver Antoniu Miclaus
2024-10-14 13:14 ` Andy Shevchenko
2024-10-14 19:15 ` Jonathan Cameron
2024-10-15 11:11 ` Andy Shevchenko
2024-10-15 16:08 ` David Lechner
2024-10-14 22:08 ` David Lechner
2024-10-15 11:13 ` Andy Shevchenko
2024-10-15 0:12 ` David Lechner
2024-10-25 11:35 ` Miclaus, Antoniu
2024-10-25 14:29 ` David Lechner
2024-10-25 19:55 ` David Lechner [this message]
2024-10-26 17:10 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=315f158e-0c3b-48e3-b288-27170f0659ed@baylibre.com \
--to=dlechner@baylibre.com \
--cc=Antoniu.Miclaus@analog.com \
--cc=Dragos.Bogdan@analog.com \
--cc=Nuno.Sa@analog.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox