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