Re: [PATCH 1/2] dt-bindings: sound: Convert Allwinner SPDIF binding to YAML

Maxime Ripard
2019-04-17T06:43:53Z

[-- Attachment #1.1: Type: text/plain, Size: 1863 bytes --]

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@bootlin.com> 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 #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]