Re: [PATCH v4 08/13] dt-bindings: display: Document dual-link LVDS display common properties

From: Liu Ying
Date: Tue Oct 29 2024 - 05:07:20 EST


On 10/29/2024, Biju Das wrote:
> Hi Liu Ying,

Hi Biju,

>
>> -----Original Message-----
>> From: dri-devel <dri-devel-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Liu Ying
>> Sent: 29 October 2024 08:02
>> Subject: Re: [PATCH v4 08/13] dt-bindings: display: Document dual-link LVDS display common properties
>>
>> On 10/29/2024, Biju Das wrote:
>>> Hi Liu Ying,
>>
>> Hi Biju,
>>
>>>
>>>> -----Original Message-----
>>>> From: Liu Ying <victor.liu@xxxxxxx>
>>>> Sent: 28 October 2024 02:38
>>>> Subject: [PATCH v4 08/13] dt-bindings: display: Document dual-link
>>>> LVDS display common properties
>>>>
>>>> Dual-link LVDS displays receive odd pixels and even pixels separately
>>>> from dual LVDS links. One link receives odd pixels and the other
>>>> receives even pixels. Some of those displays may also use only one
>>>> LVDS link to receive all pixels, being odd and even agnostic. Document common properties for those
>> displays by extending LVDS display common properties defined in lvds.yaml.
>>>>
>>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
>>>> Signed-off-by: Liu Ying <victor.liu@xxxxxxx>
>>>> ---
>>>> v4:
>>>> * Squash change for advantech,idk-2121wr.yaml and
>>>> panel-simple-lvds-dual-ports.yaml with lvds-dual-ports.yaml. (Rob)
>>>> * Improve description in lvds-dual-ports.yaml. (Krzysztof)
>>>>
>>>> v3:
>>>> * New patch. (Dmitry)
>>>>
>>>> .../bindings/display/lvds-dual-ports.yaml | 76 +++++++++++++++++++
>>>> .../display/panel/advantech,idk-2121wr.yaml | 14 +---
>>>> .../panel/panel-simple-lvds-dual-ports.yaml | 20 +----
>>>> 3 files changed, 78 insertions(+), 32 deletions(-) create mode
>>>> 100644 Documentation/devicetree/bindings/display/lvds-dual-ports.yaml
>>>>
>>>> diff --git
>>>> a/Documentation/devicetree/bindings/display/lvds-dual-ports.yaml
>>>> b/Documentation/devicetree/bindings/display/lvds-dual-ports.yaml
>>>> new file mode 100644
>>>> index 000000000000..5f7a30640404
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/display/lvds-dual-ports.yaml
>>>> @@ -0,0 +1,76 @@
>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
>>>> +---
>>>> +$id: http://devicetree.org/schemas/display/lvds-dual-ports.yaml#
>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>> +
>>>> +title: Dual-link LVDS Display Common Properties
>>>> +
>>>> +maintainers:
>>>> + - Liu Ying <victor.liu@xxxxxxx>
>>>> +
>>>> +description: |
>>>> + Common properties for LVDS displays with dual LVDS links. Extend
>>>> +LVDS display
>>>> + common properties defined in lvds.yaml.
>>>> +
>>>> + Dual-link LVDS displays receive odd pixels and even pixels
>>>> + separately from the dual LVDS links. One link receives odd pixels
>>>> + and the other receives even pixels. Some of those displays may
>>>> + also use only one LVDS link to receive all pixels, being odd and even agnostic.
>>>> +
>>>> +allOf:
>>>> + - $ref: lvds.yaml#
>>>> +
>>>> +properties:
>>>> + ports:
>>>> + $ref: /schemas/graph.yaml#/properties/ports
>>>> +
>>>> + properties:
>>>> + port@0:
>>>> + $ref: /schemas/graph.yaml#/$defs/port-base
>>>> + unevaluatedProperties: false
>>>> + description: the first LVDS input link
>>>> +
>>>> + properties:
>>>> + dual-lvds-odd-pixels:
>>>> + type: boolean
>>>> + description: the first LVDS input link for odd pixels
>>>> +
>>>> + dual-lvds-even-pixels:
>>>> + type: boolean
>>>> + description: the first LVDS input link for even pixels
>>>
>>>
>>> port@0 we know it is first link
>>> port@1 we know it is second link.
>>> dual-lvds-odd-pixels: We know it is for odd pixels.
>>> dual-lvds-even-pixels: We know it is for odd pixels.
>>>
>>> Not sure, whether we can give common description and avoid the
>>> duplicate from port@1 ??
>>
>> Yes, it'd better to use patternProperties. Thanks.
>>
>> --8<--
>> patternProperties:
>> '^port@[01]$':
>> $ref: /schemas/graph.yaml#/$defs/port-base
>> unevaluatedProperties: false
>> description: |
>> port@0 is for the first LVDS input link.
>> port@1 is for the second LVDS input link.
>>
>> properties:
>> dual-lvds-odd-pixels:
>> type: boolean
>> description: LVDS input link for odd pixels
>>
>> dual-lvds-even-pixels:
>> type: boolean
>> description: LVDS input link for even pixels
>>
>> oneOf:
>> - required: [dual-lvds-odd-pixels]
>> - required: [dual-lvds-even-pixels]
>> - properties:
>> dual-lvds-odd-pixels: false
>> dual-lvds-even-pixels: false
>>
>> anyOf:
>> - required:
>> - port@0
>> - required:
>> - port@1
>> --8<--
>>
>>>
>>>
>>>> +
>>>> + oneOf:
>>>> + - required: [dual-lvds-odd-pixels]
>>>> + - required: [dual-lvds-even-pixels]
>>>> + - properties:
>>>> + dual-lvds-odd-pixels: false
>>>> + dual-lvds-even-pixels: false
>>>
>>> Why this is false here? oneOf is not sufficient?
>>
>> The 'false' is used when this LVDS link works alone as a single LVDS link, being odd and even
>> agnostic.
>>
>> The 'oneOf' allows a LVDS link to be defined as a single LVDS link or one link of dual LVDS links.
>
> Ok, it makes sense for single LVDS link. Maybe rename the file to lvds-dual-ports.yaml->lvds-ports.yaml
> to make it clear, it is for all LVDS ports, if it is going to address single link case aswell??

Single-link LVDS displays are supposed to be documented
without referencing this schema, i.e., they may reference
lvds.yaml and define the single LVDS sink link with port
property(for panels) or port@0 property(for bridges).
port@1 would be defined as output port for bridges, not
input port. Maybe, we'll have something like
lvds-single-port.yaml in the future.

>
> Cheers,
> Biju
>

--
Regards,
Liu Ying