On 21/08/2024 22:26, Jonathan Cameron wrote: > >>>> + type: object >>>> + $ref: adc.yaml >>>> + unevaluatedProperties: false >>>> + >>>> + properties: >>>> + reg: >>>> + description: The channel number. >>>> + minimum: 0 >>>> + maximum: 7 >>>> + >>>> + diff-channel: >>>> + description: Channel is bipolar differential. >>> >>> There is diff-channels property, why do we need one more? >> >> Yeah, I wanted to use that. >> Maybe I will try another spin at that. >> The thing with "diff-channels" is that it requires 2 ints. >> So, diff-channels = <0 0>. >> To use it here, a rule would need to be put in place where "reg == >> diff-channels[0] && reg == diff-channels[1]". >> That also works from my side. >> Part of the reason for this patchset, was to also get some feedback >> (if this is the correct direction). >> > So I 'think' this is a datasheet matching thing. > In many cases, even for strictly differential devices, the pin > naming allows for a clear A - B channel description. Here > in the non differential modes, the negative pins are effectively > not used (from a really quick look at the datasheet) > > So we 'could' introduce magic channels (give them high numbers) for > the negative ends. I think we may want to do that for the > userspace ABI (0-0 on the few times it has come up has been a > calibration / self check mode not what you have here - it > wires the actual inputs together). Alternative is just present > them as a simple voltage and don't worry about the differential aspect > as it's not hugely different to bipolar (where the zero level is > effectively the negative input of a differential ADC. > > For the binding I'm fine with the binding using A, A as you suggest > with an update to adc.yaml to cover this corner. Yep, let's add it to adc.yaml. > > We never (I think) have bindings for the self check case where the input > is wired to both sides. It's just a mode that is applied to > any inputs that are wired. > Best regards, Krzysztof