xref: /linux/Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-combiner.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1*1db8125eSLiu Ying# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*1db8125eSLiu Ying%YAML 1.2
3*1db8125eSLiu Ying---
4*1db8125eSLiu Ying$id: http://devicetree.org/schemas/display/bridge/fsl,imx8qxp-pixel-combiner.yaml#
5*1db8125eSLiu Ying$schema: http://devicetree.org/meta-schemas/core.yaml#
6*1db8125eSLiu Ying
7*1db8125eSLiu Yingtitle: Freescale i.MX8qm/qxp Pixel Combiner
8*1db8125eSLiu Ying
9*1db8125eSLiu Yingmaintainers:
10*1db8125eSLiu Ying  - Liu Ying <victor.liu@nxp.com>
11*1db8125eSLiu Ying
12*1db8125eSLiu Yingdescription: |
13*1db8125eSLiu Ying  The Freescale i.MX8qm/qxp Pixel Combiner takes two output streams from a
14*1db8125eSLiu Ying  single display controller and manipulates the two streams to support a number
15*1db8125eSLiu Ying  of modes(bypass, pixel combine, YUV444 to YUV422, split_RGB) configured as
16*1db8125eSLiu Ying  either one screen, two screens, or virtual screens.  The pixel combiner is
17*1db8125eSLiu Ying  also responsible for generating some of the control signals for the pixel link
18*1db8125eSLiu Ying  output channel.
19*1db8125eSLiu Ying
20*1db8125eSLiu Yingproperties:
21*1db8125eSLiu Ying  compatible:
22*1db8125eSLiu Ying    enum:
23*1db8125eSLiu Ying      - fsl,imx8qm-pixel-combiner
24*1db8125eSLiu Ying      - fsl,imx8qxp-pixel-combiner
25*1db8125eSLiu Ying
26*1db8125eSLiu Ying  "#address-cells":
27*1db8125eSLiu Ying    const: 1
28*1db8125eSLiu Ying
29*1db8125eSLiu Ying  "#size-cells":
30*1db8125eSLiu Ying    const: 0
31*1db8125eSLiu Ying
32*1db8125eSLiu Ying  reg:
33*1db8125eSLiu Ying    maxItems: 1
34*1db8125eSLiu Ying
35*1db8125eSLiu Ying  clocks:
36*1db8125eSLiu Ying    maxItems: 1
37*1db8125eSLiu Ying
38*1db8125eSLiu Ying  clock-names:
39*1db8125eSLiu Ying    const: apb
40*1db8125eSLiu Ying
41*1db8125eSLiu Ying  power-domains:
42*1db8125eSLiu Ying    maxItems: 1
43*1db8125eSLiu Ying
44*1db8125eSLiu YingpatternProperties:
45*1db8125eSLiu Ying  "^channel@[0-1]$":
46*1db8125eSLiu Ying    type: object
47*1db8125eSLiu Ying    description: Represents a display stream of pixel combiner.
48*1db8125eSLiu Ying
49*1db8125eSLiu Ying    properties:
50*1db8125eSLiu Ying      "#address-cells":
51*1db8125eSLiu Ying        const: 1
52*1db8125eSLiu Ying
53*1db8125eSLiu Ying      "#size-cells":
54*1db8125eSLiu Ying        const: 0
55*1db8125eSLiu Ying
56*1db8125eSLiu Ying      reg:
57*1db8125eSLiu Ying        description: The display stream index.
58*1db8125eSLiu Ying        enum: [ 0, 1 ]
59*1db8125eSLiu Ying
60*1db8125eSLiu Ying      port@0:
61*1db8125eSLiu Ying        $ref: /schemas/graph.yaml#/properties/port
62*1db8125eSLiu Ying        description: Input endpoint of the display stream.
63*1db8125eSLiu Ying
64*1db8125eSLiu Ying      port@1:
65*1db8125eSLiu Ying        $ref: /schemas/graph.yaml#/properties/port
66*1db8125eSLiu Ying        description: Output endpoint of the display stream.
67*1db8125eSLiu Ying
68*1db8125eSLiu Ying    required:
69*1db8125eSLiu Ying      - "#address-cells"
70*1db8125eSLiu Ying      - "#size-cells"
71*1db8125eSLiu Ying      - reg
72*1db8125eSLiu Ying      - port@0
73*1db8125eSLiu Ying      - port@1
74*1db8125eSLiu Ying
75*1db8125eSLiu Ying    additionalProperties: false
76*1db8125eSLiu Ying
77*1db8125eSLiu Yingrequired:
78*1db8125eSLiu Ying  - compatible
79*1db8125eSLiu Ying  - "#address-cells"
80*1db8125eSLiu Ying  - "#size-cells"
81*1db8125eSLiu Ying  - reg
82*1db8125eSLiu Ying  - clocks
83*1db8125eSLiu Ying  - clock-names
84*1db8125eSLiu Ying  - power-domains
85*1db8125eSLiu Ying
86*1db8125eSLiu YingadditionalProperties: false
87*1db8125eSLiu Ying
88*1db8125eSLiu Yingexamples:
89*1db8125eSLiu Ying  - |
90*1db8125eSLiu Ying    #include <dt-bindings/clock/imx8-lpcg.h>
91*1db8125eSLiu Ying    #include <dt-bindings/firmware/imx/rsrc.h>
92*1db8125eSLiu Ying    pixel-combiner@56020000 {
93*1db8125eSLiu Ying        compatible = "fsl,imx8qxp-pixel-combiner";
94*1db8125eSLiu Ying        #address-cells = <1>;
95*1db8125eSLiu Ying        #size-cells = <0>;
96*1db8125eSLiu Ying        reg = <0x56020000 0x10000>;
97*1db8125eSLiu Ying        clocks = <&dc0_pixel_combiner_lpcg IMX_LPCG_CLK_4>;
98*1db8125eSLiu Ying        clock-names = "apb";
99*1db8125eSLiu Ying        power-domains = <&pd IMX_SC_R_DC_0>;
100*1db8125eSLiu Ying
101*1db8125eSLiu Ying        channel@0 {
102*1db8125eSLiu Ying            #address-cells = <1>;
103*1db8125eSLiu Ying            #size-cells = <0>;
104*1db8125eSLiu Ying            reg = <0>;
105*1db8125eSLiu Ying
106*1db8125eSLiu Ying            port@0 {
107*1db8125eSLiu Ying                reg = <0>;
108*1db8125eSLiu Ying
109*1db8125eSLiu Ying                dc0_pixel_combiner_ch0_dc0_dpu_disp0: endpoint {
110*1db8125eSLiu Ying                    remote-endpoint = <&dc0_dpu_disp0_dc0_pixel_combiner_ch0>;
111*1db8125eSLiu Ying                };
112*1db8125eSLiu Ying            };
113*1db8125eSLiu Ying
114*1db8125eSLiu Ying            port@1 {
115*1db8125eSLiu Ying                reg = <1>;
116*1db8125eSLiu Ying
117*1db8125eSLiu Ying                dc0_pixel_combiner_ch0_dc0_pixel_link0: endpoint {
118*1db8125eSLiu Ying                    remote-endpoint = <&dc0_pixel_link0_dc0_pixel_combiner_ch0>;
119*1db8125eSLiu Ying                };
120*1db8125eSLiu Ying            };
121*1db8125eSLiu Ying        };
122*1db8125eSLiu Ying
123*1db8125eSLiu Ying        channel@1 {
124*1db8125eSLiu Ying            #address-cells = <1>;
125*1db8125eSLiu Ying            #size-cells = <0>;
126*1db8125eSLiu Ying            reg = <1>;
127*1db8125eSLiu Ying
128*1db8125eSLiu Ying            port@0 {
129*1db8125eSLiu Ying                reg = <0>;
130*1db8125eSLiu Ying
131*1db8125eSLiu Ying                dc0_pixel_combiner_ch1_dc0_dpu_disp1: endpoint {
132*1db8125eSLiu Ying                    remote-endpoint = <&dc0_dpu_disp1_dc0_pixel_combiner_ch1>;
133*1db8125eSLiu Ying                };
134*1db8125eSLiu Ying            };
135*1db8125eSLiu Ying
136*1db8125eSLiu Ying            port@1 {
137*1db8125eSLiu Ying                reg = <1>;
138*1db8125eSLiu Ying
139*1db8125eSLiu Ying                dc0_pixel_combiner_ch1_dc0_pixel_link1: endpoint {
140*1db8125eSLiu Ying                    remote-endpoint = <&dc0_pixel_link1_dc0_pixel_combiner_ch1>;
141*1db8125eSLiu Ying                };
142*1db8125eSLiu Ying            };
143*1db8125eSLiu Ying        };
144*1db8125eSLiu Ying    };
145