xref: /linux/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml (revision 37b9c7bbe1ee1937a317f7fafacd1d116202b2d8)
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              - ti,ds90c185   # For the TI DS90C185 FPD-Link Serializer
37              - ti,ds90c187   # For the TI DS90C187 FPD-Link Serializer
38              - ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter
39          - const: lvds-encoder # Generic LVDS encoder compatible fallback
40      - items:
41          - enum:
42              - ti,ds90cf384a # For the DS90CF384A FPD-Link LVDS Receiver
43          - const: lvds-decoder # Generic LVDS decoders compatible fallback
44      - enum:
45          - thine,thc63lvdm83d # For the THC63LVDM83D LVDS serializer
46
47  ports:
48    type: object
49    description: |
50      This device has two video ports. Their connections are modeled using the
51      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt
52    properties:
53      '#address-cells':
54        const: 1
55
56      '#size-cells':
57        const: 0
58
59      port@0:
60        type: object
61        description: |
62          For LVDS encoders, port 0 is the parallel input
63          For LVDS decoders, port 0 is the LVDS input
64
65      port@1:
66        type: object
67        description: |
68          For LVDS encoders, port 1 is the LVDS output
69          For LVDS decoders, port 1 is the parallel output
70
71    required:
72      - port@0
73      - port@1
74
75    additionalProperties: false
76
77  powerdown-gpios:
78    description:
79      The GPIO used to control the power down line of this device.
80    maxItems: 1
81
82  power-supply: true
83
84required:
85  - compatible
86  - ports
87
88additionalProperties: false
89
90
91examples:
92  - |
93    lvds-encoder {
94      compatible = "ti,ds90c185", "lvds-encoder";
95
96      ports {
97        #address-cells = <1>;
98        #size-cells = <0>;
99
100        port@0 {
101          reg = <0>;
102
103          lvds_enc_in: endpoint {
104            remote-endpoint = <&display_out_rgb>;
105          };
106        };
107
108        port@1 {
109          reg = <1>;
110
111          lvds_enc_out: endpoint {
112            remote-endpoint = <&lvds_panel_in>;
113          };
114        };
115      };
116    };
117
118  - |
119    lvds-decoder {
120      compatible = "ti,ds90cf384a", "lvds-decoder";
121
122      ports {
123        #address-cells = <1>;
124        #size-cells = <0>;
125
126        port@0 {
127          reg = <0>;
128
129          lvds_dec_in: endpoint {
130            remote-endpoint = <&display_out_lvds>;
131          };
132        };
133
134        port@1 {
135          reg = <1>;
136
137          lvds_dec_out: endpoint {
138            remote-endpoint = <&rgb_panel_in>;
139          };
140        };
141      };
142    };
143
144...
145