Re: [PATCH 1/3] dt-bindings: iio: adc: stm32: add support for diff channels

From: Fabrice Gasnier
Date: Wed Oct 25 2017 - 04:06:29 EST


On 10/24/2017 08:42 PM, Jonathan Cameron wrote:
>
>
> On 24 October 2017 17:41:38 BST, Rob Herring <robh@xxxxxxxxxx> wrote:
>> On Tue, Oct 17, 2017 at 03:15:43PM +0200, Fabrice Gasnier wrote:
>>> STM32H7 ADC channels may be configured either as single-ended or
>>> differential.
>>> Add 'st,adc-diff-channels' property to support differential channels.
>>> Differential channels are defined as a pair of positive and negative
>>> inputs: vinp & vinn.
>>>
>>> Signed-off-by: Fabrice Gasnier <fabrice.gasnier@xxxxxx>
>>> ---
>>> Documentation/devicetree/bindings/iio/adc/st,stm32-adc.txt | 6
>> ++++++
>>> 1 file changed, 6 insertions(+)
>>>
>>> diff --git
>> a/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.txt
>> b/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.txt
>>> index 48bfcaa3..c3c8de1 100644
>>> --- a/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.txt
>>> +++ b/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.txt
>>> @@ -62,6 +62,12 @@ Required properties:
>>> - st,adc-channels: List of single-ended channels muxed for this ADC.
>>> It can have up to 16 channels on stm32f4 or 20 channels on
>> stm32h7, numbered
>>> from 0 to 15 or 19 (resp. for in0..in15 or in0..in19).
>>> +- st,adc-diff-channels: List of differential channels muxed for this
>> ADC.
>>> + Depending on part used, some channels can be configured as
>> differential
>>> + instead of single-ended (e.g. stm32h7). List here positive and
>> negative
>>> + inputs pairs as <vinp vinn>, <vinp vinn>,... vinp and vinn are
>> numbered
>>> + from 0 to 19 on stm32h7)
>>> + Note: At least one of "st,adc-channels" or "st,adc-diff-channels"
>> is required.
>>
>> Wouldn't both present be invalid?
>>
>
Hi Rob, Jonathan,

> Probably invalid to have a number in both but some channels in each would be fine.

Yes, both properties can be used together. Some channels can be used as
single-ended and some other ones as differential (mixed). But channels
can't be configured both as single-ended and differential (invalid).

I'll mention this in the note, and also update differential channels
example:

Example to setup:
- channel 1 as single-ended
- channels 2 & 3 as differential (with resp. 6 & 7 negative inputs)

adc: adc@40022000 {
compatible = "st,stm32h7-adc-core";
...
adc1: adc@0 {
compatible = "st,stm32h7-adc";
...
st,adc-channels = <1>;
st,adc-diff-channels = <2 6>, <3 7>;
};
};

I will send V2 with these updates.

Thanks,
Best Regards,
Fabrice
>
>>> - #io-channel-cells = <1>: See the IIO bindings section "IIO
>> consumers" in
>>> Documentation/devicetree/bindings/iio/iio-bindings.txt
>>>
>>> --
>>> 1.9.1
>>>
>