On Tue, Nov 15, 2022 at 10:07 AM Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> wrote: > > On Tue, 15 Nov 2022 14:43:53 +0200 > Cosmin Tanislav <demonsingur@xxxxxxxxx> wrote: > > > On Sat, 2022-11-12 at 15:40 +0000, Jonathan Cameron wrote: > > > > > > > > > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > > > > > + description: | > > > > > > + Conversion range for ADC conversion 2. > > > > > > + 0 - 0V to 12V > > > > > > + 1 - -12V to +12V > > > > > > + 2 - -2.5V to +2.5V > > > > > > + 3 - -2.5V to 0V > > > > > > + 4 - 0V to 2.5V > > > > > > + 5 - 0V to 0.625V > > > > > > + 6 - -104mV to +104mV > > > > > > + 7 - 0V to 12V > > > > > > > > > > For a lot of similar cases we handle these numerically to give > > > > > a human readable dts. Is there a strong reason not to do so here (in mv) > > > > > > > > > > > > > I used this approach mostly because it maps dirrectly to register values > > > > and because it's easier to parse. dts isn't exactly nice at handling > > > > negative values. I can switch it to mv array if you insist. > > > > > > We have quite a few existing cases of > > > adi,[output-]range-microvolt so it would be good to copy that style here. > > > > > > > With this: > > > > adi,conv2-range-microvolt: > > description: Conversion range for ADC conversion 2. > > oneOf: > > - items: > > - enum: [-2500000, 0] > > - const: 2500000 > > - items: > > - enum: [-12000000, 0] > > - const: 12000000 > > - items: > > - const: -2500000 > > - const: 0 > > - items: > > - const: -104000 > > - const: 104000 > > - items: > > - const: 0 > > - const: 625000 > > > > And this: > > > > adi,conv2-range-microvolt = <(-12000000) 12000000>; > > > > I get this: > > > > Documentation/devicetree/bindings/iio/addac/adi,ad74115.example.dtb: > > addac@0: adi,conv2-range-microvolt: 'oneOf' conditional failed, > > one must be fixed: > > 4282967296 is not one of [-2500000, 0] > > 4282967296 is not one of [-12000000, 0] > > -2500000 was expected > > -104000 was expected > > 625000 was expected > > From schema: Documentation/devicetree/bindings/iio/addac/adi,ad74115.yaml > > > > As I said, negative numbers don't play too nice... > > From what I recall we just ignore those warnings :) > > Rob, do I remember correctly that there was a plan to make this work longer term? Yes, but handling signed types is working now (since the move to validating dtbs directly). The issue here is -microvolt is defined as unsigned. IIRC, I had some issue changing it, but I think that was just with the YAML encoding which I intend to remove. I'll give it another look and update the type if there's no issues. Rob