On Mon, Apr 20, 2026 at 07:22:57AM +0000, Billy Tsai wrote: > In particular, I'll split the constraints as follows: > > - For pinmux, the presence of `function` will require `groups`, and > `pins` will not be allowed. This reflects the hardware design, where > the groups are defined by the pins affected by a given mux expression > > - For pin configuration, exactly one of `groups` or `pins` will be > required (using oneOf), so that configuration is applied either at > group level or per-pin, but not both. > > > - if: > required: > - function > then: > required: > - groups > not: > required: > - pins > else: I think this is a separate section under an allOf, rather than an else. You can also simplify the condition above to just be - if: required: - function then: required: - groups since the node will then always be tested against what you have below > oneOf: > - required: > - groups > not: > required: > - pins > - required: > - pins > not: > required: > - groups I think this here simplifies to oneOf: - required: - groups - required: - pins You'd also need to note that pin level config settings should take precedence over group level ones.