xref: /linux/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml (revision bba2c3615bd6cfee7456d1130f2e6b01b3f4e9ba)
1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/bridge/lvds-codec.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Transparent LVDS encoders and decoders
8
9maintainers:
10  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11
12description: |
13  This binding supports transparent LVDS encoders and decoders that don't
14  require any configuration.
15
16  LVDS is a physical layer specification defined in ANSI/TIA/EIA-644-A. Multiple
17  incompatible data link layers have been used over time to transmit image data
18  to LVDS panels. This binding targets devices compatible with the following
19  specifications only.
20
21  [JEIDA] "Digital Interface Standards for Monitor", JEIDA-59-1999, February
22  1999 (Version 1.0), Japan Electronic Industry Development Association (JEIDA)
23  [LDI] "Open LVDS Display Interface", May 1999 (Version 0.95), National
24  Semiconductor
25  [VESA] "VESA Notebook Panel Standard", October 2007 (Version 1.0), Video
26  Electronics Standards Association (VESA)
27
28  Those devices have been marketed under the FPD-Link and FlatLink brand names
29  among others.
30
31properties:
32  compatible:
33    oneOf:
34      - items:
35          - enum:
36              - doestek,dtc34lm85am # For the Doestek DTC34LM85AM Flat Panel Display (FPD) Transmitter
37              - idt,v103      # For the Triple 10-BIT LVDS Transmitter
38              - onnn,fin3385  # OnSemi FIN3385
39              - ti,ds90c185   # For the TI DS90C185 FPD-Link Serializer
40              - ti,ds90c187   # For the TI DS90C187 FPD-Link Serializer
41              - ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter
42              - ti,sn75lvds93 # For the TI SN75LVDS93 FlatLink transmitter
43          - const: lvds-encoder # Generic LVDS encoder compatible fallback
44      - items:
45          - enum:
46              - ti,ds90cf364a # For the DS90CF364A FPD-Link LVDS Receiver
47              - ti,ds90cf384a # For the DS90CF384A FPD-Link LVDS Receiver
48              - ti,sn65lvds822  # For the SN65LVDS822 FlatLink LVDS Receiver
49              - ti,sn65lvds94 # For the SN65DS94 LVDS serdes
50          - const: lvds-decoder # Generic LVDS decoders compatible fallback
51      - enum:
52          - thine,thc63lvdm83d # For the THC63LVDM83D LVDS serializer
53
54  ports:
55    $ref: /schemas/graph.yaml#/properties/ports
56
57    properties:
58      port@0:
59        $ref: /schemas/graph.yaml#/$defs/port-base
60        unevaluatedProperties: false
61        description: |
62          For LVDS encoders, port 0 is the parallel input
63          For LVDS decoders, port 0 is the LVDS input
64
65        properties:
66          endpoint:
67            $ref: /schemas/media/video-interfaces.yaml#
68            unevaluatedProperties: false
69
70            properties:
71              data-mapping:
72                enum:
73                  - jeida-18
74                  - jeida-24
75                  - vesa-24
76                description: |
77                  The color signals mapping order. See details in
78                  Documentation/devicetree/bindings/display/lvds.yaml
79
80      port@1:
81        $ref: /schemas/graph.yaml#/properties/port
82        description: |
83          For LVDS encoders, port 1 is the LVDS output
84          For LVDS decoders, port 1 is the parallel output
85
86    required:
87      - port@0
88      - port@1
89
90  pclk-sample:
91    description:
92      Data sampling on rising or falling edge.
93    enum:
94      - 0  # Falling edge
95      - 1  # Rising edge
96    default: 0
97
98  powerdown-gpios:
99    description:
100      The GPIO used to control the power down line of this device.
101    maxItems: 1
102
103  power-supply: true
104
105allOf:
106  - if:
107      not:
108        properties:
109          compatible:
110            contains:
111              const: lvds-decoder
112    then:
113      properties:
114        ports:
115          properties:
116            port@0:
117              properties:
118                endpoint:
119                  properties:
120                    data-mapping: false
121
122  - if:
123      not:
124        properties:
125          compatible:
126            contains:
127              const: lvds-encoder
128    then:
129      properties:
130        pclk-sample: false
131
132required:
133  - compatible
134  - ports
135
136additionalProperties: false
137
138examples:
139  - |
140    lvds-encoder {
141      compatible = "ti,ds90c185", "lvds-encoder";
142
143      ports {
144        #address-cells = <1>;
145        #size-cells = <0>;
146
147        port@0 {
148          reg = <0>;
149
150          lvds_enc_in: endpoint {
151            remote-endpoint = <&display_out_rgb>;
152          };
153        };
154
155        port@1 {
156          reg = <1>;
157
158          lvds_enc_out: endpoint {
159            remote-endpoint = <&lvds_panel_in>;
160          };
161        };
162      };
163    };
164
165  - |
166    lvds-decoder {
167      compatible = "ti,ds90cf384a", "lvds-decoder";
168
169      ports {
170        #address-cells = <1>;
171        #size-cells = <0>;
172
173        port@0 {
174          reg = <0>;
175
176          lvds_dec_in: endpoint {
177            remote-endpoint = <&display_out_lvds>;
178          };
179        };
180
181        port@1 {
182          reg = <1>;
183
184          lvds_dec_out: endpoint {
185            remote-endpoint = <&rgb_panel_in>;
186          };
187        };
188      };
189    };
190
191...
192