xref: /freebsd/sys/contrib/device-tree/Bindings/display/imx/fsl,imx6q-ldb.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ae5de77eSEmmanuel Vadot%YAML 1.2
3*ae5de77eSEmmanuel Vadot---
4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/display/imx/fsl,imx6q-ldb.yaml#
5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ae5de77eSEmmanuel Vadot
7*ae5de77eSEmmanuel Vadottitle: Freescale LVDS Display Bridge (ldb)
8*ae5de77eSEmmanuel Vadot
9*ae5de77eSEmmanuel Vadotdescription:
10*ae5de77eSEmmanuel Vadot  The LVDS Display Bridge device tree node contains up to two lvds-channel
11*ae5de77eSEmmanuel Vadot  nodes describing each of the two LVDS encoder channels of the bridge.
12*ae5de77eSEmmanuel Vadot
13*ae5de77eSEmmanuel Vadotmaintainers:
14*ae5de77eSEmmanuel Vadot  - Frank Li <Frank.Li@nxp.com>
15*ae5de77eSEmmanuel Vadot
16*ae5de77eSEmmanuel Vadotproperties:
17*ae5de77eSEmmanuel Vadot  compatible:
18*ae5de77eSEmmanuel Vadot    oneOf:
19*ae5de77eSEmmanuel Vadot      - enum:
20*ae5de77eSEmmanuel Vadot          - fsl,imx53-ldb
21*ae5de77eSEmmanuel Vadot      - items:
22*ae5de77eSEmmanuel Vadot          - enum:
23*ae5de77eSEmmanuel Vadot              - fsl,imx6q-ldb
24*ae5de77eSEmmanuel Vadot          - const: fsl,imx53-ldb
25*ae5de77eSEmmanuel Vadot
26*ae5de77eSEmmanuel Vadot  reg:
27*ae5de77eSEmmanuel Vadot    maxItems: 1
28*ae5de77eSEmmanuel Vadot
29*ae5de77eSEmmanuel Vadot  '#address-cells':
30*ae5de77eSEmmanuel Vadot    const: 1
31*ae5de77eSEmmanuel Vadot
32*ae5de77eSEmmanuel Vadot  '#size-cells':
33*ae5de77eSEmmanuel Vadot    const: 0
34*ae5de77eSEmmanuel Vadot
35*ae5de77eSEmmanuel Vadot  gpr:
36*ae5de77eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
37*ae5de77eSEmmanuel Vadot    description:
38*ae5de77eSEmmanuel Vadot      The phandle points to the iomuxc-gpr region containing the LVDS
39*ae5de77eSEmmanuel Vadot      control register.
40*ae5de77eSEmmanuel Vadot
41*ae5de77eSEmmanuel Vadot  clocks:
42*ae5de77eSEmmanuel Vadot    minItems: 6
43*ae5de77eSEmmanuel Vadot    maxItems: 8
44*ae5de77eSEmmanuel Vadot
45*ae5de77eSEmmanuel Vadot  clock-names:
46*ae5de77eSEmmanuel Vadot    oneOf:
47*ae5de77eSEmmanuel Vadot      - items:
48*ae5de77eSEmmanuel Vadot          - const: di0_pll
49*ae5de77eSEmmanuel Vadot          - const: di1_pll
50*ae5de77eSEmmanuel Vadot          - const: di0_sel
51*ae5de77eSEmmanuel Vadot          - const: di1_sel
52*ae5de77eSEmmanuel Vadot          - const: di0
53*ae5de77eSEmmanuel Vadot          - const: di1
54*ae5de77eSEmmanuel Vadot      - items:
55*ae5de77eSEmmanuel Vadot          - const: di0_pll
56*ae5de77eSEmmanuel Vadot          - const: di1_pll
57*ae5de77eSEmmanuel Vadot          - const: di0_sel
58*ae5de77eSEmmanuel Vadot          - const: di1_sel
59*ae5de77eSEmmanuel Vadot          - const: di2_sel
60*ae5de77eSEmmanuel Vadot          - const: di3_sel
61*ae5de77eSEmmanuel Vadot          - const: di0
62*ae5de77eSEmmanuel Vadot          - const: di1
63*ae5de77eSEmmanuel Vadot
64*ae5de77eSEmmanuel Vadot  fsl,dual-channel:
65*ae5de77eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
66*ae5de77eSEmmanuel Vadot    description:
67*ae5de77eSEmmanuel Vadot      if it exists, only LVDS channel 0 should
68*ae5de77eSEmmanuel Vadot      be configured - one input will be distributed on both outputs in dual
69*ae5de77eSEmmanuel Vadot      channel mode
70*ae5de77eSEmmanuel Vadot
71*ae5de77eSEmmanuel VadotpatternProperties:
72*ae5de77eSEmmanuel Vadot  '^lvds-channel@[0-1]$':
73*ae5de77eSEmmanuel Vadot    type: object
74*ae5de77eSEmmanuel Vadot    description:
75*ae5de77eSEmmanuel Vadot      Each LVDS Channel has to contain either an of graph link to a panel device node
76*ae5de77eSEmmanuel Vadot      or a display-timings node that describes the video timings for the connected
77*ae5de77eSEmmanuel Vadot      LVDS display as well as the fsl,data-mapping and fsl,data-width properties.
78*ae5de77eSEmmanuel Vadot
79*ae5de77eSEmmanuel Vadot    properties:
80*ae5de77eSEmmanuel Vadot      reg:
81*ae5de77eSEmmanuel Vadot        maxItems: 1
82*ae5de77eSEmmanuel Vadot
83*ae5de77eSEmmanuel Vadot      '#address-cells':
84*ae5de77eSEmmanuel Vadot        const: 1
85*ae5de77eSEmmanuel Vadot
86*ae5de77eSEmmanuel Vadot      '#size-cells':
87*ae5de77eSEmmanuel Vadot        const: 0
88*ae5de77eSEmmanuel Vadot
89*ae5de77eSEmmanuel Vadot      display-timings:
90*ae5de77eSEmmanuel Vadot        $ref: /schemas/display/panel/display-timings.yaml#
91*ae5de77eSEmmanuel Vadot
92*ae5de77eSEmmanuel Vadot      fsl,data-mapping:
93*ae5de77eSEmmanuel Vadot        enum:
94*ae5de77eSEmmanuel Vadot          - spwg
95*ae5de77eSEmmanuel Vadot          - jeida
96*ae5de77eSEmmanuel Vadot
97*ae5de77eSEmmanuel Vadot      fsl,data-width:
98*ae5de77eSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
99*ae5de77eSEmmanuel Vadot        description: should be <18> or <24>
100*ae5de77eSEmmanuel Vadot        enum:
101*ae5de77eSEmmanuel Vadot          - 18
102*ae5de77eSEmmanuel Vadot          - 24
103*ae5de77eSEmmanuel Vadot
104*ae5de77eSEmmanuel Vadot      fsl,panel:
105*ae5de77eSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/phandle
106*ae5de77eSEmmanuel Vadot        description: phandle to lcd panel
107*ae5de77eSEmmanuel Vadot
108*ae5de77eSEmmanuel Vadot    patternProperties:
109*ae5de77eSEmmanuel Vadot      '^port@[0-4]$':
110*ae5de77eSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
111*ae5de77eSEmmanuel Vadot        description:
112*ae5de77eSEmmanuel Vadot          On i.MX5, the internal two-input-multiplexer is used. Due to hardware
113*ae5de77eSEmmanuel Vadot          limitations, only one input port (port@[0,1]) can be used for each channel
114*ae5de77eSEmmanuel Vadot          (lvds-channel@[0,1], respectively).
115*ae5de77eSEmmanuel Vadot          On i.MX6, there should be four input ports (port@[0-3]) that correspond
116*ae5de77eSEmmanuel Vadot          to the four LVDS multiplexer inputs.
117*ae5de77eSEmmanuel Vadot          A single output port (port@2 on i.MX5, port@4 on i.MX6) must be connected
118*ae5de77eSEmmanuel Vadot          to a panel input port. Optionally, the output port can be left out if
119*ae5de77eSEmmanuel Vadot          display-timings are used instead.
120*ae5de77eSEmmanuel Vadot
121*ae5de77eSEmmanuel Vadot    additionalProperties: false
122*ae5de77eSEmmanuel Vadot
123*ae5de77eSEmmanuel Vadotrequired:
124*ae5de77eSEmmanuel Vadot  - compatible
125*ae5de77eSEmmanuel Vadot  - gpr
126*ae5de77eSEmmanuel Vadot  - clocks
127*ae5de77eSEmmanuel Vadot  - clock-names
128*ae5de77eSEmmanuel Vadot
129*ae5de77eSEmmanuel VadotadditionalProperties: false
130*ae5de77eSEmmanuel Vadot
131*ae5de77eSEmmanuel Vadotexamples:
132*ae5de77eSEmmanuel Vadot  - |
133*ae5de77eSEmmanuel Vadot    #include <dt-bindings/clock/imx5-clock.h>
134*ae5de77eSEmmanuel Vadot
135*ae5de77eSEmmanuel Vadot    ldb@53fa8008 {
136*ae5de77eSEmmanuel Vadot        compatible = "fsl,imx53-ldb";
137*ae5de77eSEmmanuel Vadot        reg = <0x53fa8008 0x4>;
138*ae5de77eSEmmanuel Vadot        #address-cells = <1>;
139*ae5de77eSEmmanuel Vadot        #size-cells = <0>;
140*ae5de77eSEmmanuel Vadot        gpr = <&gpr>;
141*ae5de77eSEmmanuel Vadot        clocks = <&clks IMX5_CLK_LDB_DI0_SEL>,
142*ae5de77eSEmmanuel Vadot                 <&clks IMX5_CLK_LDB_DI1_SEL>,
143*ae5de77eSEmmanuel Vadot                 <&clks IMX5_CLK_IPU_DI0_SEL>,
144*ae5de77eSEmmanuel Vadot                 <&clks IMX5_CLK_IPU_DI1_SEL>,
145*ae5de77eSEmmanuel Vadot                 <&clks IMX5_CLK_LDB_DI0_GATE>,
146*ae5de77eSEmmanuel Vadot                 <&clks IMX5_CLK_LDB_DI1_GATE>;
147*ae5de77eSEmmanuel Vadot        clock-names = "di0_pll", "di1_pll",
148*ae5de77eSEmmanuel Vadot                      "di0_sel", "di1_sel",
149*ae5de77eSEmmanuel Vadot                      "di0", "di1";
150*ae5de77eSEmmanuel Vadot
151*ae5de77eSEmmanuel Vadot        /* Using an of-graph endpoint link to connect the panel */
152*ae5de77eSEmmanuel Vadot        lvds-channel@0 {
153*ae5de77eSEmmanuel Vadot                reg = <0>;
154*ae5de77eSEmmanuel Vadot                #address-cells = <1>;
155*ae5de77eSEmmanuel Vadot                #size-cells = <0>;
156*ae5de77eSEmmanuel Vadot
157*ae5de77eSEmmanuel Vadot                port@0 {
158*ae5de77eSEmmanuel Vadot                    reg = <0>;
159*ae5de77eSEmmanuel Vadot
160*ae5de77eSEmmanuel Vadot                    endpoint {
161*ae5de77eSEmmanuel Vadot                        remote-endpoint = <&ipu_di0_lvds0>;
162*ae5de77eSEmmanuel Vadot                    };
163*ae5de77eSEmmanuel Vadot                };
164*ae5de77eSEmmanuel Vadot
165*ae5de77eSEmmanuel Vadot                port@2 {
166*ae5de77eSEmmanuel Vadot                    reg = <2>;
167*ae5de77eSEmmanuel Vadot
168*ae5de77eSEmmanuel Vadot                    endpoint {
169*ae5de77eSEmmanuel Vadot                        remote-endpoint = <&panel_in>;
170*ae5de77eSEmmanuel Vadot                    };
171*ae5de77eSEmmanuel Vadot               };
172*ae5de77eSEmmanuel Vadot        };
173*ae5de77eSEmmanuel Vadot
174*ae5de77eSEmmanuel Vadot        /* Using display-timings and fsl,data-mapping/width instead */
175*ae5de77eSEmmanuel Vadot        lvds-channel@1 {
176*ae5de77eSEmmanuel Vadot                reg = <1>;
177*ae5de77eSEmmanuel Vadot                #address-cells = <1>;
178*ae5de77eSEmmanuel Vadot                #size-cells = <0>;
179*ae5de77eSEmmanuel Vadot                fsl,data-mapping = "spwg";
180*ae5de77eSEmmanuel Vadot                fsl,data-width = <24>;
181*ae5de77eSEmmanuel Vadot
182*ae5de77eSEmmanuel Vadot                display-timings {/* ... */
183*ae5de77eSEmmanuel Vadot                };
184*ae5de77eSEmmanuel Vadot
185*ae5de77eSEmmanuel Vadot                port@1 {
186*ae5de77eSEmmanuel Vadot                     reg = <1>;
187*ae5de77eSEmmanuel Vadot
188*ae5de77eSEmmanuel Vadot                     endpoint {
189*ae5de77eSEmmanuel Vadot                         remote-endpoint = <&ipu_di1_lvds1>;
190*ae5de77eSEmmanuel Vadot                     };
191*ae5de77eSEmmanuel Vadot                };
192*ae5de77eSEmmanuel Vadot        };
193*ae5de77eSEmmanuel Vadot    };
194