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