On Mon, Jul 13, 2020 at 8:10 AM Robin Murphy <robin.murphy@xxxxxxx> wrote: > > On 2020-07-10 21:29, Krishna Reddy wrote: > > Thanks Rob. One question on setting "minItems: ". Please see below. > > > >>> +allOf: > >>> + - if: > >>> + properties: > >>> + compatible: > >>> + contains: > >>> + enum: > >>> + - nvidia,tegra194-smmu > >>> + then: > >>> + properties: > >>> + reg: > >>> + minItems: 2 > >>> + maxItems: 2 > > > >> This doesn't work. The main part of the schema already said there's only > >> 1 reg region. This part is ANDed with that, not an override. You need to add an else clause with 'maxItems: 1' and change the base schema to > >> {minItems: 1, maxItems: 2}. > > > > As the earlier version of base schema doesn't have "minItems: " set, should it be set to 0 for backward compatibility? Or can it just be omitted setting in base schema as before? > > We've always needed at least 1 "reg" specifier in practice, so I don't > think being backwards-compatible with broken DTs is a concern :) 'minItems: 0' would be a boolean (e.g. "reg;") and I'm not sure that's even really valid json-schema. What you'd want here is 'reg' not present (i.e. not in 'required'). Rob