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