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