Hi Rob, On Tue, Apr 16, 2019 at 04:36:18PM -0500, Rob Herring wrote: > On Mon, Apr 15, 2019 at 7:07 AM Maxime Ripard <maxime.ripard@xxxxxxxxxxx> wrote: > > > > The Allwinner SoCs feature an SPDIF controller across multiple SoC > > generations. > > > > However, earlier generations were a bit simpler than the subsequent ones, > > and for example would always have RX and TX capabilities, and no reset > > lines. > > > > In order to express this, let's create two YAML schemas instead of the free > > form text we had before. > > The only difference is 'reset' is required in one? Perhaps better to > just not make 'reset' required til we figure out how to handle a > conditional like this. Seems like we discussed this and I probably > said to split things? We indeed discussed this, and this was one of the solutions to support this. I wanted to get the discussion started as of how exactly we want to support this kind of construct. I looked it up a bit, and it looks like json schema 7 introduces conditionals that would allow us to deal with this nicely. https://json-schema.org/understanding-json-schema/reference/conditionals.html Is that something we can switch to while we have not a lot of schemas, or would that require some significant work? > I guess it's a judgement call depending on how different things are. > > Possibly, we could handle this case like this: > > allOf: > - $ref: allwinner,sun4i-a10-spdif.yaml > > properties: > resets: > maxItems: 1 > > required: > - resets > > > Plus we'd need the 'allwinner,sun6i-a31-spdif' and other compatibles > in both files. Note that you can't use 'additionalProperties: false' > in either file in this case. > > I don't really love this solution though. Yeah, I'm not a big fan of it either. Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
Attachment:
signature.asc
Description: PGP signature