xref: /linux/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml (revision ca220141fa8ebae09765a242076b2b77338106b0)
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              - onnn,fin3385  # OnSemi FIN3385
37              - ti,ds90c185   # For the TI DS90C185 FPD-Link Serializer
38              - ti,ds90c187   # For the TI DS90C187 FPD-Link Serializer
39              - ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter
40          - const: lvds-encoder # Generic LVDS encoder compatible fallback
41      - items:
42          - enum:
43              - ti,ds90cf364a # For the DS90CF364A FPD-Link LVDS Receiver
44              - ti,ds90cf384a # For the DS90CF384A FPD-Link LVDS Receiver
45              - ti,sn65lvds822  # For the SN65LVDS822 FlatLink LVDS Receiver
46              - ti,sn65lvds94 # For the SN65DS94 LVDS serdes
47          - const: lvds-decoder # Generic LVDS decoders compatible fallback
48      - enum:
49          - thine,thc63lvdm83d # For the THC63LVDM83D LVDS serializer
50
51  ports:
52    $ref: /schemas/graph.yaml#/properties/ports
53
54    properties:
55      port@0:
56        $ref: /schemas/graph.yaml#/$defs/port-base
57        unevaluatedProperties: false
58        description: |
59          For LVDS encoders, port 0 is the parallel input
60          For LVDS decoders, port 0 is the LVDS input
61
62        properties:
63          endpoint:
64            $ref: /schemas/media/video-interfaces.yaml#
65            unevaluatedProperties: false
66
67            properties:
68              data-mapping:
69                enum:
70                  - jeida-18
71                  - jeida-24
72                  - vesa-24
73                description: |
74                  The color signals mapping order. See details in
75                  Documentation/devicetree/bindings/display/lvds.yaml
76
77      port@1:
78        $ref: /schemas/graph.yaml#/properties/port
79        description: |
80          For LVDS encoders, port 1 is the LVDS output
81          For LVDS decoders, port 1 is the parallel output
82
83    required:
84      - port@0
85      - port@1
86
87  pclk-sample:
88    description:
89      Data sampling on rising or falling edge.
90    enum:
91      - 0  # Falling edge
92      - 1  # Rising edge
93    default: 0
94
95  powerdown-gpios:
96    description:
97      The GPIO used to control the power down line of this device.
98    maxItems: 1
99
100  power-supply: true
101
102allOf:
103  - if:
104      not:
105        properties:
106          compatible:
107            contains:
108              const: lvds-decoder
109    then:
110      properties:
111        ports:
112          properties:
113            port@0:
114              properties:
115                endpoint:
116                  properties:
117                    data-mapping: false
118
119  - if:
120      not:
121        properties:
122          compatible:
123            contains:
124              const: lvds-encoder
125    then:
126      properties:
127        pclk-sample: false
128
129required:
130  - compatible
131  - ports
132
133additionalProperties: false
134
135examples:
136  - |
137    lvds-encoder {
138      compatible = "ti,ds90c185", "lvds-encoder";
139
140      ports {
141        #address-cells = <1>;
142        #size-cells = <0>;
143
144        port@0 {
145          reg = <0>;
146
147          lvds_enc_in: endpoint {
148            remote-endpoint = <&display_out_rgb>;
149          };
150        };
151
152        port@1 {
153          reg = <1>;
154
155          lvds_enc_out: endpoint {
156            remote-endpoint = <&lvds_panel_in>;
157          };
158        };
159      };
160    };
161
162  - |
163    lvds-decoder {
164      compatible = "ti,ds90cf384a", "lvds-decoder";
165
166      ports {
167        #address-cells = <1>;
168        #size-cells = <0>;
169
170        port@0 {
171          reg = <0>;
172
173          lvds_dec_in: endpoint {
174            remote-endpoint = <&display_out_lvds>;
175          };
176        };
177
178        port@1 {
179          reg = <1>;
180
181          lvds_dec_out: endpoint {
182            remote-endpoint = <&rgb_panel_in>;
183          };
184        };
185      };
186    };
187
188...
189