Hi Geert Thank you for your help > > --- sample ----------- > > rcar_sound,ssi: > > ... > > patternProperties: > > "^ssi-[0-9]$": > > ... > > allOf: > > - if: > > properties: > > compatible: > > contains: > > => const: renesas,rcar_sound-gen4 > > then: > > required: > > => - foo > > => - bar > > As it is under patternProperties, the "if: properties" applies to the > properties under the ssi node, where you do not have any compatible > value (and definitely not the "renesas,rcar_sound-gen4" value, which > belongs to the _parent_ of the ssi node). Hmm... I want to do on above sample case is "required foo/bar when only gen4", but my concern is it *always* requests "foo/bar" even though it is *not* gen4. May be it is opposite? > So I think the only solution is to move the "if" up, and thus duplicate > the ssi node description: > > if: > properties: > compatible: > contains: > const: renesas,rcar_sound-gen4 > then: > patternProperties: > "^ssi-[0-9]$": > ... > else: > patternProperties: > "^ssi-[0-9]$": > ... Hmm... I have tried this but it was same result... I'm not sure why it doesn't match as I expected... I will try to post my current patch as RFC. I'm happy if someone try it, and confirm my issue. Thank you for your help !! Best regards --- Kuninori Morimoto