On Wed, 20 Dec 2023 19:25:25 +0200 Petre Rodan <petre.rodan@xxxxxxxxxxxxxxx> wrote: > hi Jonathan, > > On Wed, Dec 20, 2023 at 03:16:45PM +0000, Jonathan Cameron wrote: > > On Tue, 19 Dec 2023 15:02:20 +0200 > > Petre Rodan <petre.rodan@xxxxxxxxxxxxxxx> wrote: > > > honeywell,pmin-pascal: > > > description: > > > Minimum pressure value the sensor can measure in pascal. > > > + To be specified only if honeywell,pressure-triplet is set to "NA". > > That just added a backwards compatibility break. It would be fine > > if there was a default: NA for honeywell,pressure-triplet or a check that either > > one or the other was supplied (which I'd prefer). Thus old bindings will work > > and new ones also supported. > > ok, I see your reasoning. but in this second scenario that you prefer how can we > propery define the 'required:' block? an equivalent to > > required: > - compatible > - reg > - (honeywell,pmin-pascal && honeywell,pmax-pascal) || honeywell,pressure-triplet > - honeywell,transfer-function Yes, it would end up something like that. There are exclusive or examples in tree. I think something like dac/adi,ad3552r.yaml should work. oneOf: - required: - honeywell,pmin-pascal - honeywell,pmax-pascal - required: - honeywell,pressure-triplet but you will want to try all the cases to make sure that works (my ability to figure these ones out is tricky). + you ideally want to exclude them all being set which is fiddlier. Some similar examples but they are based on a value in the property. I'm not sure how you check for it just being defined. Something along lines of. allOf: - if: properties: honeywell,pressure-triplet then: properties: honeywell,pmin-pascal: false honeywell,pmax-pascal: false Might work? I always end up trawling the kernel to find a similar example for cases but can't find anything closer right now. Jonathan > > > thanks, > peter