mbox series

[RFC,0/4] dt-bindings: Introduce dual-link panels & panel-vendors

Message ID 20230103064615.5311-1-a-bhatia1@ti.com
Headers show
Series dt-bindings: Introduce dual-link panels & panel-vendors | expand

Message

Aradhya Bhatia Jan. 3, 2023, 6:46 a.m. UTC
Hi all,

Microtips Technology Solutions USA, and Lincoln Technology Solutions are
2 display panel vendors, and the first 2 patches add their vendor
prefixes.

The fourth patch, simply introduces the new compatible for the generic
dual-link panels in the panel-lvds driver. This new compatible is based
from a new DT binding added in the third patch explained below.

The third patch introduces a dt-binding for generic dual-link LVDS
panels. These panels do not have any documented constraints, except for
their timing characteristics. Further, these panels have 2 pixel-sinks.
In a dual-link connection between an LVDS encoder and the panel, one
sink accepts the odd set of LVDS pixels and the other, the even set.

A lot of this has been based from the Advantech,idk-2121wr dual-link
panel[1] and Maxime's patches for generic LVDS panels[2] (which are
single-link by default.) and the discussions that happened before they
were finally merged.

Below are some notes and points that I want to bring forward.

  - The advantech,idk-2121wr panel binding uses 2 boolean properties
    dual-link-odd/even-pixels, to signify which port sink is being used
    for which set of LVDS pixels. I too have added similar support and
    introduced constraints around those properties, so as to not break
    the ABI... but I believe there is a better way to achieve this.

    A "pixel-type" enum property could be introduced in their stead,
    which can accept one of the 2 options <dual-lvds-odd-pixels> or
    <dual-lvds-even-pixels>.

    This method, in my opinion, is more accurate and cleaner to
    implement in the bindings as well.

    If this does sound a better I can push out a new revision where the
    driver supports both these methods (to not break the ABI) and the
    advantech,2121wr panel can remain as an exception.


  - As an alternative to the previous point, if that method is not
    preferred for some reason, the advantech,2121wtr panel binding
    could then be merged in the panel-dual-lvds binding as part of
    future work.


  - Another tweak, I am looking forward to do as part of future work and
    would like all your comments is to introduce driver-based
    implementation of the panel timing parameters, like it is with
    "panel-simple". The driver can then support both the panel-timing
    sources (DT node or hard-coded driver structure) and the binding
    can remove this from the "required" section.

Thank you!

[1]: https://patchwork.freedesktop.org/patch/357122/
[2]: https://patchwork.freedesktop.org/patch/471228/

Aradhya Bhatia (4):
  dt-bindings: vendor-prefixes: Add microtips
  dt-bindings: vendor-prefixes: Add lincolntech
  dt-bindings: panel: Introduce dual-link LVDS panel
  drm: panel-lvds: Introduce dual-link panels

 .../display/panel/panel-dual-lvds.yaml        | 157 ++++++++++++++++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   4 +
 MAINTAINERS                                   |   1 +
 drivers/gpu/drm/panel/panel-lvds.c            |   1 +
 4 files changed, 163 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/panel-dual-lvds.yaml

Comments

Laurent Pinchart Jan. 8, 2023, 7:02 a.m. UTC | #1
Hi Aradhya,

Thank you for the patch.

On Tue, Jan 03, 2023 at 12:16:12PM +0530, Aradhya Bhatia wrote:
> Add document vendor prefix for Microtips Technology USA (microtips).
> 
> Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

> ---
>  Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> index 70ffb3780621..516134cbcb3c 100644
> --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> @@ -821,6 +821,8 @@ patternProperties:
>      description: Microsoft Corporation
>    "^microsys,.*":
>      description: MicroSys Electronics GmbH
> +  "^microtips,.*":
> +    description: Microtips Technology USA
>    "^mikroe,.*":
>      description: MikroElektronika d.o.o.
>    "^mikrotik,.*":