xref: /linux/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-pixel-engine.yaml (revision 8d2b0853add1d7534dc0794e3c8e0b9e8c4ec640)
1*69c78e7eSLiu Ying# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*69c78e7eSLiu Ying%YAML 1.2
3*69c78e7eSLiu Ying---
4*69c78e7eSLiu Ying$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-pixel-engine.yaml#
5*69c78e7eSLiu Ying$schema: http://devicetree.org/meta-schemas/core.yaml#
6*69c78e7eSLiu Ying
7*69c78e7eSLiu Yingtitle: Freescale i.MX8qxp Display Controller Pixel Engine
8*69c78e7eSLiu Ying
9*69c78e7eSLiu Yingdescription:
10*69c78e7eSLiu Ying  All Processing Units that operate in the AXI bus clock domain. Pixel
11*69c78e7eSLiu Ying  pipelines have the ability to stall when a destination is busy. Implements
12*69c78e7eSLiu Ying  all communication to memory resources and most of the image processing
13*69c78e7eSLiu Ying  functions. Interconnection of Processing Units is re-configurable.
14*69c78e7eSLiu Ying
15*69c78e7eSLiu Yingmaintainers:
16*69c78e7eSLiu Ying  - Liu Ying <victor.liu@nxp.com>
17*69c78e7eSLiu Ying
18*69c78e7eSLiu Yingproperties:
19*69c78e7eSLiu Ying  compatible:
20*69c78e7eSLiu Ying    const: fsl,imx8qxp-dc-pixel-engine
21*69c78e7eSLiu Ying
22*69c78e7eSLiu Ying  reg:
23*69c78e7eSLiu Ying    maxItems: 1
24*69c78e7eSLiu Ying
25*69c78e7eSLiu Ying  clocks:
26*69c78e7eSLiu Ying    maxItems: 1
27*69c78e7eSLiu Ying
28*69c78e7eSLiu Ying  "#address-cells":
29*69c78e7eSLiu Ying    const: 1
30*69c78e7eSLiu Ying
31*69c78e7eSLiu Ying  "#size-cells":
32*69c78e7eSLiu Ying    const: 1
33*69c78e7eSLiu Ying
34*69c78e7eSLiu Ying  ranges: true
35*69c78e7eSLiu Ying
36*69c78e7eSLiu YingpatternProperties:
37*69c78e7eSLiu Ying  "^blit-engine@[0-9a-f]+$":
38*69c78e7eSLiu Ying    type: object
39*69c78e7eSLiu Ying    additionalProperties: true
40*69c78e7eSLiu Ying
41*69c78e7eSLiu Ying    properties:
42*69c78e7eSLiu Ying      compatible:
43*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-blit-engine
44*69c78e7eSLiu Ying
45*69c78e7eSLiu Ying  "^constframe@[0-9a-f]+$":
46*69c78e7eSLiu Ying    type: object
47*69c78e7eSLiu Ying    additionalProperties: true
48*69c78e7eSLiu Ying
49*69c78e7eSLiu Ying    properties:
50*69c78e7eSLiu Ying      compatible:
51*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-constframe
52*69c78e7eSLiu Ying
53*69c78e7eSLiu Ying  "^extdst@[0-9a-f]+$":
54*69c78e7eSLiu Ying    type: object
55*69c78e7eSLiu Ying    additionalProperties: true
56*69c78e7eSLiu Ying
57*69c78e7eSLiu Ying    properties:
58*69c78e7eSLiu Ying      compatible:
59*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-extdst
60*69c78e7eSLiu Ying
61*69c78e7eSLiu Ying  "^fetchdecode@[0-9a-f]+$":
62*69c78e7eSLiu Ying    type: object
63*69c78e7eSLiu Ying    additionalProperties: true
64*69c78e7eSLiu Ying
65*69c78e7eSLiu Ying    properties:
66*69c78e7eSLiu Ying      compatible:
67*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-fetchdecode
68*69c78e7eSLiu Ying
69*69c78e7eSLiu Ying  "^fetcheco@[0-9a-f]+$":
70*69c78e7eSLiu Ying    type: object
71*69c78e7eSLiu Ying    additionalProperties: true
72*69c78e7eSLiu Ying
73*69c78e7eSLiu Ying    properties:
74*69c78e7eSLiu Ying      compatible:
75*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-fetcheco
76*69c78e7eSLiu Ying
77*69c78e7eSLiu Ying  "^fetchlayer@[0-9a-f]+$":
78*69c78e7eSLiu Ying    type: object
79*69c78e7eSLiu Ying    additionalProperties: true
80*69c78e7eSLiu Ying
81*69c78e7eSLiu Ying    properties:
82*69c78e7eSLiu Ying      compatible:
83*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-fetchlayer
84*69c78e7eSLiu Ying
85*69c78e7eSLiu Ying  "^fetchwarp@[0-9a-f]+$":
86*69c78e7eSLiu Ying    type: object
87*69c78e7eSLiu Ying    additionalProperties: true
88*69c78e7eSLiu Ying
89*69c78e7eSLiu Ying    properties:
90*69c78e7eSLiu Ying      compatible:
91*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-fetchwarp
92*69c78e7eSLiu Ying
93*69c78e7eSLiu Ying  "^hscaler@[0-9a-f]+$":
94*69c78e7eSLiu Ying    type: object
95*69c78e7eSLiu Ying    additionalProperties: true
96*69c78e7eSLiu Ying
97*69c78e7eSLiu Ying    properties:
98*69c78e7eSLiu Ying      compatible:
99*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-hscaler
100*69c78e7eSLiu Ying
101*69c78e7eSLiu Ying  "^layerblend@[0-9a-f]+$":
102*69c78e7eSLiu Ying    type: object
103*69c78e7eSLiu Ying    additionalProperties: true
104*69c78e7eSLiu Ying
105*69c78e7eSLiu Ying    properties:
106*69c78e7eSLiu Ying      compatible:
107*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-layerblend
108*69c78e7eSLiu Ying
109*69c78e7eSLiu Ying  "^matrix@[0-9a-f]+$":
110*69c78e7eSLiu Ying    type: object
111*69c78e7eSLiu Ying    additionalProperties: true
112*69c78e7eSLiu Ying
113*69c78e7eSLiu Ying    properties:
114*69c78e7eSLiu Ying      compatible:
115*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-matrix
116*69c78e7eSLiu Ying
117*69c78e7eSLiu Ying  "^safety@[0-9a-f]+$":
118*69c78e7eSLiu Ying    type: object
119*69c78e7eSLiu Ying    additionalProperties: true
120*69c78e7eSLiu Ying
121*69c78e7eSLiu Ying    properties:
122*69c78e7eSLiu Ying      compatible:
123*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-safety
124*69c78e7eSLiu Ying
125*69c78e7eSLiu Ying  "^vscaler@[0-9a-f]+$":
126*69c78e7eSLiu Ying    type: object
127*69c78e7eSLiu Ying    additionalProperties: true
128*69c78e7eSLiu Ying
129*69c78e7eSLiu Ying    properties:
130*69c78e7eSLiu Ying      compatible:
131*69c78e7eSLiu Ying        const: fsl,imx8qxp-dc-vscaler
132*69c78e7eSLiu Ying
133*69c78e7eSLiu Yingrequired:
134*69c78e7eSLiu Ying  - compatible
135*69c78e7eSLiu Ying  - reg
136*69c78e7eSLiu Ying  - clocks
137*69c78e7eSLiu Ying  - "#address-cells"
138*69c78e7eSLiu Ying  - "#size-cells"
139*69c78e7eSLiu Ying  - ranges
140*69c78e7eSLiu Ying
141*69c78e7eSLiu YingadditionalProperties: false
142*69c78e7eSLiu Ying
143*69c78e7eSLiu Yingexamples:
144*69c78e7eSLiu Ying  - |
145*69c78e7eSLiu Ying    #include <dt-bindings/clock/imx8-lpcg.h>
146*69c78e7eSLiu Ying
147*69c78e7eSLiu Ying    pixel-engine@56180800 {
148*69c78e7eSLiu Ying        compatible = "fsl,imx8qxp-dc-pixel-engine";
149*69c78e7eSLiu Ying        reg = <0x56180800 0xac00>;
150*69c78e7eSLiu Ying        clocks = <&dc0_lpcg IMX_LPCG_CLK_5>;
151*69c78e7eSLiu Ying        #address-cells = <1>;
152*69c78e7eSLiu Ying        #size-cells = <1>;
153*69c78e7eSLiu Ying        ranges;
154*69c78e7eSLiu Ying
155*69c78e7eSLiu Ying        constframe@56180960 {
156*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-constframe";
157*69c78e7eSLiu Ying            reg = <0x56180960 0xc>, <0x56184400 0x20>;
158*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
159*69c78e7eSLiu Ying        };
160*69c78e7eSLiu Ying
161*69c78e7eSLiu Ying        extdst@56180980 {
162*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-extdst";
163*69c78e7eSLiu Ying            reg = <0x56180980 0x1c>, <0x56184800 0x28>;
164*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
165*69c78e7eSLiu Ying            interrupt-parent = <&dc0_intc>;
166*69c78e7eSLiu Ying            interrupts = <3>, <4>, <5>;
167*69c78e7eSLiu Ying            interrupt-names = "shdload", "framecomplete", "seqcomplete";
168*69c78e7eSLiu Ying        };
169*69c78e7eSLiu Ying
170*69c78e7eSLiu Ying        constframe@561809a0 {
171*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-constframe";
172*69c78e7eSLiu Ying            reg = <0x561809a0 0xc>, <0x56184c00 0x20>;
173*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
174*69c78e7eSLiu Ying        };
175*69c78e7eSLiu Ying
176*69c78e7eSLiu Ying        extdst@561809c0 {
177*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-extdst";
178*69c78e7eSLiu Ying            reg = <0x561809c0 0x1c>, <0x56185000 0x28>;
179*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
180*69c78e7eSLiu Ying            interrupt-parent = <&dc0_intc>;
181*69c78e7eSLiu Ying            interrupts = <6>, <7>, <8>;
182*69c78e7eSLiu Ying            interrupt-names = "shdload", "framecomplete", "seqcomplete";
183*69c78e7eSLiu Ying        };
184*69c78e7eSLiu Ying
185*69c78e7eSLiu Ying        constframe@561809e0 {
186*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-constframe";
187*69c78e7eSLiu Ying            reg = <0x561809e0 0xc>, <0x56185400 0x20>;
188*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
189*69c78e7eSLiu Ying        };
190*69c78e7eSLiu Ying
191*69c78e7eSLiu Ying        extdst@56180a00 {
192*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-extdst";
193*69c78e7eSLiu Ying            reg = <0x56180a00 0x1c>, <0x56185800 0x28>;
194*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
195*69c78e7eSLiu Ying            interrupt-parent = <&dc0_intc>;
196*69c78e7eSLiu Ying            interrupts = <9>, <10>, <11>;
197*69c78e7eSLiu Ying            interrupt-names = "shdload", "framecomplete", "seqcomplete";
198*69c78e7eSLiu Ying        };
199*69c78e7eSLiu Ying
200*69c78e7eSLiu Ying        constframe@56180a20 {
201*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-constframe";
202*69c78e7eSLiu Ying            reg = <0x56180a20 0xc>, <0x56185c00 0x20>;
203*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
204*69c78e7eSLiu Ying        };
205*69c78e7eSLiu Ying
206*69c78e7eSLiu Ying        extdst@56180a40 {
207*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-extdst";
208*69c78e7eSLiu Ying            reg = <0x56180a40 0x1c>, <0x56186000 0x28>;
209*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
210*69c78e7eSLiu Ying            interrupt-parent = <&dc0_intc>;
211*69c78e7eSLiu Ying            interrupts = <12>, <13>, <14>;
212*69c78e7eSLiu Ying            interrupt-names = "shdload", "framecomplete", "seqcomplete";
213*69c78e7eSLiu Ying        };
214*69c78e7eSLiu Ying
215*69c78e7eSLiu Ying        fetchwarp@56180a60 {
216*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-fetchwarp";
217*69c78e7eSLiu Ying            reg = <0x56180a60 0x10>, <0x56186400 0x190>;
218*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
219*69c78e7eSLiu Ying        };
220*69c78e7eSLiu Ying
221*69c78e7eSLiu Ying        fetchlayer@56180ac0 {
222*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-fetchlayer";
223*69c78e7eSLiu Ying            reg = <0x56180ac0 0xc>, <0x56188400 0x404>;
224*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
225*69c78e7eSLiu Ying        };
226*69c78e7eSLiu Ying
227*69c78e7eSLiu Ying        layerblend@56180ba0 {
228*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-layerblend";
229*69c78e7eSLiu Ying            reg = <0x56180ba0 0x10>, <0x5618a400 0x20>;
230*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
231*69c78e7eSLiu Ying        };
232*69c78e7eSLiu Ying
233*69c78e7eSLiu Ying        layerblend@56180bc0 {
234*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-layerblend";
235*69c78e7eSLiu Ying            reg = <0x56180bc0 0x10>, <0x5618a800 0x20>;
236*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
237*69c78e7eSLiu Ying        };
238*69c78e7eSLiu Ying
239*69c78e7eSLiu Ying        layerblend@56180be0 {
240*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-layerblend";
241*69c78e7eSLiu Ying            reg = <0x56180be0 0x10>, <0x5618ac00 0x20>;
242*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
243*69c78e7eSLiu Ying        };
244*69c78e7eSLiu Ying
245*69c78e7eSLiu Ying        layerblend@56180c00 {
246*69c78e7eSLiu Ying            compatible = "fsl,imx8qxp-dc-layerblend";
247*69c78e7eSLiu Ying            reg = <0x56180c00 0x10>, <0x5618b000 0x20>;
248*69c78e7eSLiu Ying            reg-names = "pec", "cfg";
249*69c78e7eSLiu Ying        };
250*69c78e7eSLiu Ying    };
251