Re: [RFC PATCH 3/4] dt-bindings: panel: Introduce dual-link LVDS panel

From: Krzysztof Kozlowski
Date: Tue Jan 03 2023 - 06:28:21 EST


On 03/01/2023 12:02, Aradhya Bhatia wrote:
> But this is throwing an error. I am confused what else could be done.
> Can you please suggest what might be a more accurate check here?
>
>>
>>> + required:
>>> + - dual-lvds-odd-pixels
>>> + then:
>>> + properties:
>>> + port@1:
>>> + properties:
>>> + dual-lvds-even-pixels: true
>>> + dual-lvds-odd-pixels: false
>>
>> Why do you need this? Your oneOf before already solves it.
>
> I agree with your comment here. It makes sense to only have
>
> dual-lvds-even-pixels: true
>
> and have the oneOf condition take care of the other. But, I just tested
> this and it was unable to pick-up this intentionally-added error.
>
> I added 'dual-lvds-odd-pixels' property to both the nodes, and
> dt_binding_check passes successfully (which it should have not.)
>
> Instead, if I only keep this,
>
> dual-lvds-odd-pixels: false
>
> then the dt_binding_check detects the error as it should.
>
> Regardless, I am curious why the first method doesn't work. Will try to
> explore more on that.

The check for presence of properties is only against required:, but you
added there properties. Like this:

https://elixir.bootlin.com/linux/v5.17-rc2/source/Documentation/devicetree/bindings/mfd/samsung,s5m8767.yaml#L155


Other way is to drop your both oneOf and entire allOf from ports and use:

oneOf:
- properties:
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
required:
- dual-lvds-odd-pixels
port@1:
required:
- dual-lvds-even-pixels
- properties:
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@1:
required:
- dual-lvds-odd-pixels
port@0:
required:
- dual-lvds-even-pixels


Best regards,
Krzysztof