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