xref: /linux/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml (revision 575af8ecd1943d432ede9891e1419d001fa67c5d)
1*575af8ecSFabrizio Castro# SPDX-License-Identifier: GPL-2.0
2*575af8ecSFabrizio Castro%YAML 1.2
3*575af8ecSFabrizio Castro---
4*575af8ecSFabrizio Castro$id: http://devicetree.org/schemas/display/bridge/lvds-codec.yaml#
5*575af8ecSFabrizio Castro$schema: http://devicetree.org/meta-schemas/core.yaml#
6*575af8ecSFabrizio Castro
7*575af8ecSFabrizio Castrotitle: Transparent LVDS encoders and decoders
8*575af8ecSFabrizio Castro
9*575af8ecSFabrizio Castromaintainers:
10*575af8ecSFabrizio Castro  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11*575af8ecSFabrizio Castro
12*575af8ecSFabrizio Castrodescription: |
13*575af8ecSFabrizio Castro  This binding supports transparent LVDS encoders and decoders that don't
14*575af8ecSFabrizio Castro  require any configuration.
15*575af8ecSFabrizio Castro
16*575af8ecSFabrizio Castro  LVDS is a physical layer specification defined in ANSI/TIA/EIA-644-A. Multiple
17*575af8ecSFabrizio Castro  incompatible data link layers have been used over time to transmit image data
18*575af8ecSFabrizio Castro  to LVDS panels. This binding targets devices compatible with the following
19*575af8ecSFabrizio Castro  specifications only.
20*575af8ecSFabrizio Castro
21*575af8ecSFabrizio Castro  [JEIDA] "Digital Interface Standards for Monitor", JEIDA-59-1999, February
22*575af8ecSFabrizio Castro  1999 (Version 1.0), Japan Electronic Industry Development Association (JEIDA)
23*575af8ecSFabrizio Castro  [LDI] "Open LVDS Display Interface", May 1999 (Version 0.95), National
24*575af8ecSFabrizio Castro  Semiconductor
25*575af8ecSFabrizio Castro  [VESA] "VESA Notebook Panel Standard", October 2007 (Version 1.0), Video
26*575af8ecSFabrizio Castro  Electronics Standards Association (VESA)
27*575af8ecSFabrizio Castro
28*575af8ecSFabrizio Castro  Those devices have been marketed under the FPD-Link and FlatLink brand names
29*575af8ecSFabrizio Castro  among others.
30*575af8ecSFabrizio Castro
31*575af8ecSFabrizio Castroproperties:
32*575af8ecSFabrizio Castro  compatible:
33*575af8ecSFabrizio Castro    description: |
34*575af8ecSFabrizio Castro      Must list the device specific compatible string first, followed by the
35*575af8ecSFabrizio Castro      generic compatible string.
36*575af8ecSFabrizio Castro    oneOf:
37*575af8ecSFabrizio Castro      - items:
38*575af8ecSFabrizio Castro        - enum:
39*575af8ecSFabrizio Castro          - ti,ds90c185       # For the TI DS90C185 FPD-Link Serializer
40*575af8ecSFabrizio Castro          - ti,ds90c187       # For the TI DS90C187 FPD-Link Serializer
41*575af8ecSFabrizio Castro          - ti,sn75lvds83     # For the TI SN75LVDS83 FlatLink transmitter
42*575af8ecSFabrizio Castro        - const: lvds-encoder # Generic LVDS encoder compatible fallback
43*575af8ecSFabrizio Castro      - const: lvds-decoder   # Generic LVDS decoders compatible fallback
44*575af8ecSFabrizio Castro
45*575af8ecSFabrizio Castro  ports:
46*575af8ecSFabrizio Castro    type: object
47*575af8ecSFabrizio Castro    description: |
48*575af8ecSFabrizio Castro      This device has two video ports. Their connections are modeled using the
49*575af8ecSFabrizio Castro      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt
50*575af8ecSFabrizio Castro    properties:
51*575af8ecSFabrizio Castro      port@0:
52*575af8ecSFabrizio Castro        type: object
53*575af8ecSFabrizio Castro        description: |
54*575af8ecSFabrizio Castro          For LVDS encoders, port 0 is the parallel input
55*575af8ecSFabrizio Castro          For LVDS decoders, port 0 is the LVDS input
56*575af8ecSFabrizio Castro
57*575af8ecSFabrizio Castro      port@1:
58*575af8ecSFabrizio Castro        type: object
59*575af8ecSFabrizio Castro        description: |
60*575af8ecSFabrizio Castro          For LVDS encoders, port 1 is the LVDS output
61*575af8ecSFabrizio Castro          For LVDS decoders, port 1 is the parallel output
62*575af8ecSFabrizio Castro
63*575af8ecSFabrizio Castro    required:
64*575af8ecSFabrizio Castro      - port@0
65*575af8ecSFabrizio Castro      - port@1
66*575af8ecSFabrizio Castro
67*575af8ecSFabrizio Castro  powerdown-gpios:
68*575af8ecSFabrizio Castro    description:
69*575af8ecSFabrizio Castro      The GPIO used to control the power down line of this device.
70*575af8ecSFabrizio Castro    maxItems: 1
71*575af8ecSFabrizio Castro
72*575af8ecSFabrizio Castrorequired:
73*575af8ecSFabrizio Castro  - compatible
74*575af8ecSFabrizio Castro  - ports
75*575af8ecSFabrizio Castro
76*575af8ecSFabrizio Castroexamples:
77*575af8ecSFabrizio Castro  - |
78*575af8ecSFabrizio Castro    lvds-encoder {
79*575af8ecSFabrizio Castro      compatible = "ti,ds90c185", "lvds-encoder";
80*575af8ecSFabrizio Castro
81*575af8ecSFabrizio Castro      ports {
82*575af8ecSFabrizio Castro        #address-cells = <1>;
83*575af8ecSFabrizio Castro        #size-cells = <0>;
84*575af8ecSFabrizio Castro
85*575af8ecSFabrizio Castro        port@0 {
86*575af8ecSFabrizio Castro          reg = <0>;
87*575af8ecSFabrizio Castro
88*575af8ecSFabrizio Castro          lvds_enc_in: endpoint {
89*575af8ecSFabrizio Castro            remote-endpoint = <&display_out_rgb>;
90*575af8ecSFabrizio Castro          };
91*575af8ecSFabrizio Castro        };
92*575af8ecSFabrizio Castro
93*575af8ecSFabrizio Castro        port@1 {
94*575af8ecSFabrizio Castro          reg = <1>;
95*575af8ecSFabrizio Castro
96*575af8ecSFabrizio Castro          lvds_enc_out: endpoint {
97*575af8ecSFabrizio Castro            remote-endpoint = <&lvds_panel_in>;
98*575af8ecSFabrizio Castro          };
99*575af8ecSFabrizio Castro        };
100*575af8ecSFabrizio Castro      };
101*575af8ecSFabrizio Castro    };
102*575af8ecSFabrizio Castro
103*575af8ecSFabrizio Castro  - |
104*575af8ecSFabrizio Castro    lvds-decoder {
105*575af8ecSFabrizio Castro      compatible = "lvds-decoder";
106*575af8ecSFabrizio Castro
107*575af8ecSFabrizio Castro      ports {
108*575af8ecSFabrizio Castro        #address-cells = <1>;
109*575af8ecSFabrizio Castro        #size-cells = <0>;
110*575af8ecSFabrizio Castro
111*575af8ecSFabrizio Castro        port@0 {
112*575af8ecSFabrizio Castro          reg = <0>;
113*575af8ecSFabrizio Castro
114*575af8ecSFabrizio Castro          lvds_dec_in: endpoint {
115*575af8ecSFabrizio Castro            remote-endpoint = <&display_out_lvds>;
116*575af8ecSFabrizio Castro          };
117*575af8ecSFabrizio Castro        };
118*575af8ecSFabrizio Castro
119*575af8ecSFabrizio Castro        port@1 {
120*575af8ecSFabrizio Castro          reg = <1>;
121*575af8ecSFabrizio Castro
122*575af8ecSFabrizio Castro          lvds_dec_out: endpoint {
123*575af8ecSFabrizio Castro            remote-endpoint = <&rgb_panel_in>;
124*575af8ecSFabrizio Castro          };
125*575af8ecSFabrizio Castro        };
126*575af8ecSFabrizio Castro      };
127*575af8ecSFabrizio Castro    };
128*575af8ecSFabrizio Castro
129*575af8ecSFabrizio Castro...
130