| # SPDX-License-Identifier: GPL-2.0 |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/display/bridge/lvds-codec.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Transparent LVDS encoders and decoders |
| |
| maintainers: |
| - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| |
| description: | |
| This binding supports transparent LVDS encoders and decoders that don't |
| require any configuration. |
| |
| LVDS is a physical layer specification defined in ANSI/TIA/EIA-644-A. Multiple |
| incompatible data link layers have been used over time to transmit image data |
| to LVDS panels. This binding targets devices compatible with the following |
| specifications only. |
| |
| [JEIDA] "Digital Interface Standards for Monitor", JEIDA-59-1999, February |
| 1999 (Version 1.0), Japan Electronic Industry Development Association (JEIDA) |
| [LDI] "Open LVDS Display Interface", May 1999 (Version 0.95), National |
| Semiconductor |
| [VESA] "VESA Notebook Panel Standard", October 2007 (Version 1.0), Video |
| Electronics Standards Association (VESA) |
| |
| Those devices have been marketed under the FPD-Link and FlatLink brand names |
| among others. |
| |
| properties: |
| compatible: |
| oneOf: |
| - items: |
| - enum: |
| - ti,ds90c185 # For the TI DS90C185 FPD-Link Serializer |
| - ti,ds90c187 # For the TI DS90C187 FPD-Link Serializer |
| - ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter |
| - const: lvds-encoder # Generic LVDS encoder compatible fallback |
| - items: |
| - enum: |
| - ti,ds90cf364a # For the DS90CF364A FPD-Link LVDS Receiver |
| - ti,ds90cf384a # For the DS90CF384A FPD-Link LVDS Receiver |
| - ti,sn65lvds94 # For the SN65DS94 LVDS serdes |
| - const: lvds-decoder # Generic LVDS decoders compatible fallback |
| - enum: |
| - thine,thc63lvdm83d # For the THC63LVDM83D LVDS serializer |
| |
| ports: |
| $ref: /schemas/graph.yaml#/properties/ports |
| |
| properties: |
| port@0: |
| $ref: /schemas/graph.yaml#/$defs/port-base |
| unevaluatedProperties: false |
| description: | |
| For LVDS encoders, port 0 is the parallel input |
| For LVDS decoders, port 0 is the LVDS input |
| |
| properties: |
| endpoint: |
| $ref: /schemas/media/video-interfaces.yaml# |
| unevaluatedProperties: false |
| |
| properties: |
| data-mapping: |
| enum: |
| - jeida-18 |
| - jeida-24 |
| - vesa-24 |
| description: | |
| The color signals mapping order. See details in |
| Documentation/devicetree/bindings/display/lvds.yaml |
| |
| port@1: |
| $ref: /schemas/graph.yaml#/properties/port |
| description: | |
| For LVDS encoders, port 1 is the LVDS output |
| For LVDS decoders, port 1 is the parallel output |
| |
| required: |
| - port@0 |
| - port@1 |
| |
| pclk-sample: |
| description: |
| Data sampling on rising or falling edge. |
| enum: |
| - 0 # Falling edge |
| - 1 # Rising edge |
| default: 0 |
| |
| powerdown-gpios: |
| description: |
| The GPIO used to control the power down line of this device. |
| maxItems: 1 |
| |
| power-supply: true |
| |
| allOf: |
| - if: |
| not: |
| properties: |
| compatible: |
| contains: |
| const: lvds-decoder |
| then: |
| properties: |
| ports: |
| properties: |
| port@0: |
| properties: |
| endpoint: |
| properties: |
| data-mapping: false |
| |
| - if: |
| not: |
| properties: |
| compatible: |
| contains: |
| const: lvds-encoder |
| then: |
| properties: |
| pclk-sample: false |
| |
| required: |
| - compatible |
| - ports |
| |
| additionalProperties: false |
| |
| |
| examples: |
| - | |
| lvds-encoder { |
| compatible = "ti,ds90c185", "lvds-encoder"; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| |
| lvds_enc_in: endpoint { |
| remote-endpoint = <&display_out_rgb>; |
| }; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| |
| lvds_enc_out: endpoint { |
| remote-endpoint = <&lvds_panel_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| - | |
| lvds-decoder { |
| compatible = "ti,ds90cf384a", "lvds-decoder"; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| |
| lvds_dec_in: endpoint { |
| remote-endpoint = <&display_out_lvds>; |
| }; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| |
| lvds_dec_out: endpoint { |
| remote-endpoint = <&rgb_panel_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| ... |