File Index
Files and directories
Sign in
FILE

fsl,imx8qxp-ldb.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-ldb.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/display/bridge/fsl,imx8qxp-ldb.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Freescale i.MX8qm/qxp LVDS Display Bridge
  8
  9maintainers:
 10  - Liu Ying <victor.liu@nxp.com>
 11
 12description: |
 13  The Freescale i.MX8qm/qxp LVDS Display Bridge(LDB) has two channels.
 14
 15  The i.MX8qm/qxp LDB is controlled by Control and Status Registers(CSR) module.
 16  The CSR module, as a system controller, contains the LDB's configuration
 17  registers.
 18
 19  For i.MX8qxp LDB, each channel supports up to 24bpp parallel input color
 20  format and can map the input to VESA or JEIDA standards.  The two channels
 21  cannot be used simultaneously, that is to say, the user should pick one of
 22  them to use.  Two LDB channels from two LDB instances can work together in
 23  LDB split mode to support a dual link LVDS display.  The channel indexes
 24  have to be different.  Channel0 outputs odd pixels and channel1 outputs
 25  even pixels.
 26
 27  For i.MX8qm LDB, each channel additionally supports up to 30bpp parallel
 28  input color format.  The two channels can be used simultaneously, either
 29  in dual mode or split mode.  In dual mode, the two channels output identical
 30  data.  In split mode, channel0 outputs odd pixels and channel1 outputs even
 31  pixels.
 32
 33  A side note is that i.MX8qm/qxp LDB is officially called pixel mapper in
 34  the SoC reference manuals.  The pixel mapper uses logic of LDBs embedded in
 35  i.MX6qdl/sx SoCs, i.e., it is essentially based on them.  To keep the naming
 36  consistency, this binding calls it LDB.
 37
 38properties:
 39  compatible:
 40    enum:
 41      - fsl,imx8qm-ldb
 42      - fsl,imx8qxp-ldb
 43
 44  "#address-cells":
 45    const: 1
 46
 47  "#size-cells":
 48    const: 0
 49
 50  clocks:
 51    items:
 52      - description: pixel clock
 53      - description: bypass clock
 54
 55  clock-names:
 56    items:
 57      - const: pixel
 58      - const: bypass
 59
 60  power-domains:
 61    maxItems: 1
 62
 63  fsl,companion-ldb:
 64    $ref: /schemas/types.yaml#/definitions/phandle
 65    description: |
 66      A phandle which points to companion LDB which is used in LDB split mode.
 67
 68patternProperties:
 69  "^channel@[0-1]$":
 70    type: object
 71    description: Represents a channel of LDB.
 72
 73    properties:
 74      "#address-cells":
 75        const: 1
 76
 77      "#size-cells":
 78        const: 0
 79
 80      reg:
 81        description: The channel index.
 82        enum: [ 0, 1 ]
 83
 84      phys:
 85        description: A phandle to the phy module representing the LVDS PHY.
 86        maxItems: 1
 87
 88      phy-names:
 89        const: lvds_phy
 90
 91      port@0:
 92        $ref: /schemas/graph.yaml#/properties/port
 93        description: Input port of the channel.
 94
 95      port@1:
 96        $ref: /schemas/graph.yaml#/properties/port
 97        description: Output port of the channel.
 98
 99    required:
100      - "#address-cells"
101      - "#size-cells"
102      - reg
103      - phys
104      - phy-names
105
106    additionalProperties: false
107
108required:
109  - compatible
110  - "#address-cells"
111  - "#size-cells"
112  - clocks
113  - clock-names
114  - power-domains
115  - channel@0
116  - channel@1
117
118allOf:
119  - if:
120      properties:
121        compatible:
122          contains:
123            const: fsl,imx8qm-ldb
124    then:
125      properties:
126        fsl,companion-ldb: false
127
128additionalProperties: false
129
130examples:
131  - |
132    #include <dt-bindings/firmware/imx/rsrc.h>
133    ldb {
134        #address-cells = <1>;
135        #size-cells = <0>;
136        compatible = "fsl,imx8qxp-ldb";
137        clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC2>,
138                 <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_BYPASS>;
139        clock-names = "pixel", "bypass";
140        power-domains = <&pd IMX_SC_R_LVDS_0>;
141
142        channel@0 {
143            #address-cells = <1>;
144            #size-cells = <0>;
145            reg = <0>;
146            phys = <&mipi_lvds_0_phy>;
147            phy-names = "lvds_phy";
148
149            port@0 {
150                reg = <0>;
151
152                mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi: endpoint {
153                    remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0>;
154                };
155            };
156        };
157
158        channel@1 {
159            #address-cells = <1>;
160            #size-cells = <0>;
161            reg = <1>;
162            phys = <&mipi_lvds_0_phy>;
163            phy-names = "lvds_phy";
164
165            port@0 {
166                reg = <0>;
167
168                mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi: endpoint {
169                    remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1>;
170                };
171            };
172        };
173    };
~/ Read-only file preview.