RE: [PATCH v2 1/9] dt-bindings: panel: lvds: Add dual-link LVDS display support

From: Fabrizio Castro
Date: Thu Aug 15 2019 - 09:37:45 EST


Hi Laurent,

Thank you for your feedback!

> From: linux-kernel-owner@xxxxxxxxxxxxxxx <linux-kernel-owner@xxxxxxxxxxxxxxx> On Behalf Of Laurent Pinchart
> Sent: 15 August 2019 12:45
> Subject: Re: [PATCH v2 1/9] dt-bindings: panel: lvds: Add dual-link LVDS display support
>
> Hi Fabrizio,
>
> On Thu, Aug 15, 2019 at 12:04:25PM +0100, Fabrizio Castro wrote:
> > Dual-link LVDS displays have two ports, therefore document this
> > with the bindings.
> >
> > Signed-off-by: Fabrizio Castro <fabrizio.castro@xxxxxxxxxxxxxx>
> >
> > ---
> > v1->v2:
> > * Reworked the description of the ports property
> > * lvds0_panel_in in the example has been renamed to panel_in0
> > * lvds1_panel_in in the example has been renamed to panel_in1
> >
> > Laurent,
> >
> > in linux-next they are now working with:
> > Documentation/devicetree/bindings/display/panel/lvds.yaml
>
> Documentation/devicetree/bindings/display/panel/lvds.yaml is in
> drm-misc-next, so I would advise rebasing on top of that.

Will do.

Thanks,
Fab

>
> > What should I do here?
> >
> > .../bindings/display/panel/panel-lvds.txt | 95 ++++++++++++++++------
> > 1 file changed, 71 insertions(+), 24 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/display/panel/panel-lvds.txt
> b/Documentation/devicetree/bindings/display/panel/panel-lvds.txt
> > index 250850a..5231243 100644
> > --- a/Documentation/devicetree/bindings/display/panel/panel-lvds.txt
> > +++ b/Documentation/devicetree/bindings/display/panel/panel-lvds.txt
> > @@ -41,7 +41,12 @@ Required nodes:
> >
> > - panel-timing: See panel-common.txt.
> > - ports: See panel-common.txt. These bindings require a single port subnode
> > - corresponding to the panel LVDS input.
> > + (for a single link panel) corresponding to the panel LVDS input, or two port
> > + subnodes (for a dual link panel) corresponding to the panel LVDS inputs.
> > + Dual-link LVDS panels expect even pixels (0, 2, 4, etc.) and odd pixels (1, 3,
> > + 5, etc.) on different input ports, it's up to the panel-specific bindings to
> > + specify what port is expecting even pixels, and what port is expecting odd
> > + pixels.
> >
> >
> > LVDS data mappings are defined as follows.
> > @@ -92,30 +97,72 @@ CTL3: 0
> > Example
> > -------
> >
> > -panel {
> > - compatible = "mitsubishi,aa121td01", "panel-lvds";
> > -
> > - width-mm = <261>;
> > - height-mm = <163>;
> > -
> > - data-mapping = "jeida-24";
> > -
> > - panel-timing {
> > - /* 1280x800 @60Hz */
> > - clock-frequency = <71000000>;
> > - hactive = <1280>;
> > - vactive = <800>;
> > - hsync-len = <70>;
> > - hfront-porch = <20>;
> > - hback-porch = <70>;
> > - vsync-len = <5>;
> > - vfront-porch = <3>;
> > - vback-porch = <15>;
> > +Single port:
> > + panel {
> > + compatible = "mitsubishi,aa121td01", "panel-lvds";
> > +
> > + width-mm = <261>;
> > + height-mm = <163>;
> > +
> > + data-mapping = "jeida-24";
> > +
> > + panel-timing {
> > + /* 1280x800 @60Hz */
> > + clock-frequency = <71000000>;
> > + hactive = <1280>;
> > + vactive = <800>;
> > + hsync-len = <70>;
> > + hfront-porch = <20>;
> > + hback-porch = <70>;
> > + vsync-len = <5>;
> > + vfront-porch = <3>;
> > + vback-porch = <15>;
> > + };
> > +
> > + port {
> > + panel_in: endpoint {
> > + remote-endpoint = <&lvds_encoder>;
> > + };
> > + };
> > };
> >
> > - port {
> > - panel_in: endpoint {
> > - remote-endpoint = <&lvds_encoder>;
> > +Two ports:
> > + panel {
> > + compatible = "advantech,idk-2121wr", "panel-lvds";
> > +
> > + width-mm = <476>;
> > + height-mm = <268>;
> > +
> > + data-mapping = "vesa-24";
> > +
> > + panel-timing {
> > + clock-frequency = <148500000>;
> > + hactive = <1920>;
> > + vactive = <1080>;
> > + hsync-len = <44>;
> > + hfront-porch = <88>;
> > + hback-porch = <148>;
> > + vfront-porch = <4>;
> > + vback-porch = <36>;
> > + vsync-len = <5>;
> > + };
> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@0 {
> > + reg = <0>;
> > + panel_in0: endpoint {
> > + remote-endpoint = <&lvds0_out>;
> > + };
> > + };
> > +
> > + port@1 {
> > + reg = <1>;
> > + panel_in1: endpoint {
> > + remote-endpoint = <&lvds1_out>;
> > + };
> > + };
> > };
> > };
> > -};
>
> --
> Regards,
>
> Laurent Pinchart