> > > + 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. 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. > > > > > + type: boolean > > > + > > > + bipolar: > > > + description: | > > > + Channel is bipolar single-ended. If 'diff-channel' is set, then > > > + the value of this property will be ignored. > > > > Then provide here allOf:if:then which makes it false if diff-channel(s) > > is present. And then drop entire property, because you duplicate what's > > in adc.yaml. > > Ack.