On Tue, Oct 04, 2016 at 07:23:29PM +0300, Laurent Pinchart wrote:
> LVDS is a physical layer specification defined in ANSI/TIA/EIA-644-A.
> Multiple incompatible data link layers have been used over time to
> transmit image data to LVDS panels. This binding supports display panels
> compatible with the JEIDA-59-1999, Open-LDI and VESA SWPG
> specifications.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
> ---
> .../bindings/display/panel/panel-lvds.txt | 119
> +++++++++++++++++++++
> 1 file changed, 119 insertions(+)
> create mode 100644
> Documentation/devicetree/bindings/display/panel/panel-lvds.txt
>
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-lvds.txt
> b/Documentation/devicetree/bindings/display/panel/panel-lvds.txt
> new file mode 100644
> index 000000000000..250861f2673e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/panel-lvds.txt
> @@ -0,0 +1,119 @@
> +Generic LVDS Panel
> +==================
> +
> +LVDS is a physical layer specification defined in ANSI/TIA/EIA-644-A.
> Multiple
> +incompatible data link layers have been used over time to transmit image data
> +to LVDS panels. This bindings supports display panels compatible with the
> +following specifications.
> +
> +[JEIDA] "Digital Interface Standards for Monitor", JEIDA-59-1999, February
> +1999 (Version 1.0), Japan Electronic Industry Development Association (JEIDA)
> +[LDI] "Open LVDS Display Interface", May 1999 (Version 0.95), National
> +Semiconductor
> +[VESA] "VESA Notebook Panel Standard", October 2007 (Version 1.0), Video
> +Electronics Standards Association (VESA)
> +
> +Device compatible with those specifications have been marketed under the
> +FPD-Link and FlatLink brands.
> +
> +
> +Required properties:
> +- compatible: shall contain "panel-lvds"
Maybe as a fallback, but on its own, no way.
> +- width-mm: panel display width in millimeters
> +- height-mm: panel display height in millimeters
This is already documented for all panels IIRC.
> +- data-mapping: the color signals mapping order, "jeida-18", "jeida-24"
> + or "vesa-24"
Maybe this should be part of the compatible.
> +
> +Optional properties:
> +- label: a symbolic name for the panel
Could be for any panel or display connector.
> +- avdd-supply: reference to the regulator that powers the panel
analog supply
> +- dvdd-supply: reference to the regulator that powers the panel digital
> supply
Which one has to be powered on first, what voltage, and with what time
in between? This is why "generic" or "simple" bindings don't work.
> +- data-mirror: if set, reverse the bit order on all data lanes (6 to 0
> instead
> + of 0 to 6)
> +
> +Required nodes:
> +- One "panel-timing" node containing video timings, in accordance with the
> + display timing bindings defined in
> + Documentation/devicetree/bindings/display/display-timing.txt.
I'll let Thierry comment on this one.
> +- One "port" child node for the LVDS input port, in accordance with the
> + video interface bindings defined in
> + Documentation/devicetree/bindings/media/video-interfaces.txt.
> +
> +
> +LVDS data mappings are defined as follows.
> +
> +- "jeida-18" - 18-bit data mapping compatible with the [JEIDA], [LDI] and
> + [VESA] specifications. Data are transferred as follows on 3 LVDS lanes.
> +
> +Slot 0 1 2 3 4 5 6
> + ________________ _________________
> +Clock \_______________________/
> + ______ ______ ______ ______ ______ ______ ______
> +DATA0 ><__G0__><__R5__><__R4__><__R3__><__R2__><__R1__><__R0__><
> +DATA1 ><__B1__><__B0__><__G5__><__G4__><__G3__><__G2__><__G1__><
> +DATA2 ><_CTL2_><_CTL1_><_CTL0_><__B5__><__B4__><__B3__><__B2__><
> +
> +- "jeida-24" - 24-bit data mapping compatible with the [DSIM] and [LDI]
> + specifications. Data are transferred as follows on 4 LVDS lanes.
> +
> +Slot 0 1 2 3 4 5 6
> + ________________ _________________
> +Clock \_______________________/
> + ______ ______ ______ ______ ______ ______ ______
> +DATA0 ><__G2__><__R7__><__R6__><__R5__><__R4__><__R3__><__R2__><
> +DATA1 ><__B3__><__B2__><__G7__><__G6__><__G5__><__G4__><__G3__><
> +DATA2 ><_CTL2_><_CTL1_><_CTL0_><__B7__><__B6__><__B5__><__B4__><
> +DATA3 ><_CTL3_><__B1__><__B0__><__G1__><__G0__><__R1__><__R0__><
> +
> +- "vesa-24" - 24-bit data mapping compatible with the [VESA] specification.
> + Data are transferred as follows on 4 LVDS lanes.
> +
> +Slot 0 1 2 3 4 5 6
> + ________________ _________________
> +Clock \_______________________/
> + ______ ______ ______ ______ ______ ______ ______
> +DATA0 ><__G0__><__R5__><__R4__><__R3__><__R2__><__R1__><__R0__><
> +DATA1 ><__B1__><__B0__><__G5__><__G4__><__G3__><__G2__><__G1__><
> +DATA2 ><_CTL2_><_CTL1_><_CTL0_><__B5__><__B4__><__B3__><__B2__><
> +DATA3 ><_CTL3_><__B7__><__B6__><__G7__><__G6__><__R7__><__R6__><
> +
> +
> +Control signals are mapped as follows.
> +
> +CTL0: HSync
> +CTL1: VSync
> +CTL2: Data Enable
> +CTL3: 0
> +
> +
> +Example
> +-------
> +
> +panel {
> + compatible = "mitsubishi,aa121td01", "panel-lvds";
> + label = "lcd";
Kind of useless in your example.
> +
> + 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_connector>;
> + };
> + };
> +};
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel