xref: /freebsd/sys/contrib/device-tree/Bindings/display/imx/fsl,imx8qxp-dc.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*833e5d42SEmmanuel Vadot%YAML 1.2
3*833e5d42SEmmanuel Vadot---
4*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc.yaml#
5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadottitle: Freescale i.MX8qxp Display Controller
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadotdescription: |
10*833e5d42SEmmanuel Vadot  The Freescale i.MX8qxp Display Controller(DC) is comprised of three main
11*833e5d42SEmmanuel Vadot  components that include a blit engine for 2D graphics accelerations, display
12*833e5d42SEmmanuel Vadot  controller for display output processing, as well as a command sequencer.
13*833e5d42SEmmanuel Vadot
14*833e5d42SEmmanuel Vadot                                  Display buffers              Source buffers
15*833e5d42SEmmanuel Vadot                                 (AXI read master)            (AXI read master)
16*833e5d42SEmmanuel Vadot                                  | .......... |                  | | |
17*833e5d42SEmmanuel Vadot      +---------------------------+------------+------------------+-+-+------+
18*833e5d42SEmmanuel Vadot      | Display Controller (DC)   | .......... |                  | | |      |
19*833e5d42SEmmanuel Vadot      |                           |            |                  | | |      |
20*833e5d42SEmmanuel Vadot      |   @@@@@@@@@@@  +----------+------------+------------+     | | |      |
21*833e5d42SEmmanuel Vadot  A   |  | Command   | |          V            V            |     | | |      |
22*833e5d42SEmmanuel Vadot  X <-+->| Sequencer | |    @@@@@@@@@@@@@@@@@@@@@@@@@@@@    |     V V V      |
23*833e5d42SEmmanuel Vadot  I   |  | (AXI CLK) | |   |                            |   |   @@@@@@@@@@   |
24*833e5d42SEmmanuel Vadot      |   @@@@@@@@@@@  |   |       Pixel Engine         |   |  |          |  |
25*833e5d42SEmmanuel Vadot      |       |        |   |         (AXI CLK)          |   |  |          |  |
26*833e5d42SEmmanuel Vadot      |       V        |    @@@@@@@@@@@@@@@@@@@@@@@@@@@@    |  |          |  |
27*833e5d42SEmmanuel Vadot  A   |   ***********  |       |   |            |   |       |  |   Blit   |  |
28*833e5d42SEmmanuel Vadot  H <-+->| Configure | |       V   V            V   V       |  |  Engine  |  |
29*833e5d42SEmmanuel Vadot  B   |  | (CFG CLK) | |    00000000000      11111111111    |  | (AXI CLK)|  |
30*833e5d42SEmmanuel Vadot      |   ***********  |   |  Display  |    |  Display  |   |  |          |  |
31*833e5d42SEmmanuel Vadot      |                |   |  Engine   |    |  Engine   |   |  |          |  |
32*833e5d42SEmmanuel Vadot      |                |   | (Disp CLK)|    | (Disp CLK)|   |  |          |  |
33*833e5d42SEmmanuel Vadot      |   @@@@@@@@@@@  |    00000000000      11111111111    |   @@@@@@@@@@   |
34*833e5d42SEmmanuel Vadot  I   |  |  Common   | |         |                |         |       |        |
35*833e5d42SEmmanuel Vadot  R <-+--|  Control  | |         |    Display     |         |       |        |
36*833e5d42SEmmanuel Vadot  Q   |  | (AXI CLK) | |         |   Controller   |         |       |        |
37*833e5d42SEmmanuel Vadot      |   @@@@@@@@@@@  +------------------------------------+       |        |
38*833e5d42SEmmanuel Vadot      |                          |                |       ^         |        |
39*833e5d42SEmmanuel Vadot      +--------------------------+----------------+-------+---------+--------+
40*833e5d42SEmmanuel Vadot              ^                  |                |       |         |
41*833e5d42SEmmanuel Vadot              |                  V                V       |         V
42*833e5d42SEmmanuel Vadot       Clocks & Resets        Display          Display  Panic   Destination
43*833e5d42SEmmanuel Vadot                              Output0          Output1 Control    buffer
44*833e5d42SEmmanuel Vadot                                                              (AXI write master)
45*833e5d42SEmmanuel Vadot
46*833e5d42SEmmanuel Vadotmaintainers:
47*833e5d42SEmmanuel Vadot  - Liu Ying <victor.liu@nxp.com>
48*833e5d42SEmmanuel Vadot
49*833e5d42SEmmanuel Vadotproperties:
50*833e5d42SEmmanuel Vadot  compatible:
51*833e5d42SEmmanuel Vadot    const: fsl,imx8qxp-dc
52*833e5d42SEmmanuel Vadot
53*833e5d42SEmmanuel Vadot  reg:
54*833e5d42SEmmanuel Vadot    maxItems: 1
55*833e5d42SEmmanuel Vadot
56*833e5d42SEmmanuel Vadot  clocks:
57*833e5d42SEmmanuel Vadot    maxItems: 1
58*833e5d42SEmmanuel Vadot
59*833e5d42SEmmanuel Vadot  resets:
60*833e5d42SEmmanuel Vadot    maxItems: 2
61*833e5d42SEmmanuel Vadot
62*833e5d42SEmmanuel Vadot  reset-names:
63*833e5d42SEmmanuel Vadot    items:
64*833e5d42SEmmanuel Vadot      - const: axi
65*833e5d42SEmmanuel Vadot      - const: cfg
66*833e5d42SEmmanuel Vadot
67*833e5d42SEmmanuel Vadot  power-domains:
68*833e5d42SEmmanuel Vadot    maxItems: 1
69*833e5d42SEmmanuel Vadot
70*833e5d42SEmmanuel Vadot  "#address-cells":
71*833e5d42SEmmanuel Vadot    const: 1
72*833e5d42SEmmanuel Vadot
73*833e5d42SEmmanuel Vadot  "#size-cells":
74*833e5d42SEmmanuel Vadot    const: 1
75*833e5d42SEmmanuel Vadot
76*833e5d42SEmmanuel Vadot  ranges: true
77*833e5d42SEmmanuel Vadot
78*833e5d42SEmmanuel VadotpatternProperties:
79*833e5d42SEmmanuel Vadot  "^command-sequencer@[0-9a-f]+$":
80*833e5d42SEmmanuel Vadot    type: object
81*833e5d42SEmmanuel Vadot    additionalProperties: true
82*833e5d42SEmmanuel Vadot
83*833e5d42SEmmanuel Vadot    properties:
84*833e5d42SEmmanuel Vadot      compatible:
85*833e5d42SEmmanuel Vadot        const: fsl,imx8qxp-dc-command-sequencer
86*833e5d42SEmmanuel Vadot
87*833e5d42SEmmanuel Vadot  "^display-engine@[0-9a-f]+$":
88*833e5d42SEmmanuel Vadot    type: object
89*833e5d42SEmmanuel Vadot    additionalProperties: true
90*833e5d42SEmmanuel Vadot
91*833e5d42SEmmanuel Vadot    properties:
92*833e5d42SEmmanuel Vadot      compatible:
93*833e5d42SEmmanuel Vadot        const: fsl,imx8qxp-dc-display-engine
94*833e5d42SEmmanuel Vadot
95*833e5d42SEmmanuel Vadot  "^interrupt-controller@[0-9a-f]+$":
96*833e5d42SEmmanuel Vadot    type: object
97*833e5d42SEmmanuel Vadot    additionalProperties: true
98*833e5d42SEmmanuel Vadot
99*833e5d42SEmmanuel Vadot    properties:
100*833e5d42SEmmanuel Vadot      compatible:
101*833e5d42SEmmanuel Vadot        const: fsl,imx8qxp-dc-intc
102*833e5d42SEmmanuel Vadot
103*833e5d42SEmmanuel Vadot  "^pixel-engine@[0-9a-f]+$":
104*833e5d42SEmmanuel Vadot    type: object
105*833e5d42SEmmanuel Vadot    additionalProperties: true
106*833e5d42SEmmanuel Vadot
107*833e5d42SEmmanuel Vadot    properties:
108*833e5d42SEmmanuel Vadot      compatible:
109*833e5d42SEmmanuel Vadot        const: fsl,imx8qxp-dc-pixel-engine
110*833e5d42SEmmanuel Vadot
111*833e5d42SEmmanuel Vadot  "^pmu@[0-9a-f]+$":
112*833e5d42SEmmanuel Vadot    type: object
113*833e5d42SEmmanuel Vadot    additionalProperties: true
114*833e5d42SEmmanuel Vadot
115*833e5d42SEmmanuel Vadot    properties:
116*833e5d42SEmmanuel Vadot      compatible:
117*833e5d42SEmmanuel Vadot        const: fsl,imx8qxp-dc-axi-performance-counter
118*833e5d42SEmmanuel Vadot
119*833e5d42SEmmanuel Vadotrequired:
120*833e5d42SEmmanuel Vadot  - compatible
121*833e5d42SEmmanuel Vadot  - reg
122*833e5d42SEmmanuel Vadot  - clocks
123*833e5d42SEmmanuel Vadot  - power-domains
124*833e5d42SEmmanuel Vadot  - "#address-cells"
125*833e5d42SEmmanuel Vadot  - "#size-cells"
126*833e5d42SEmmanuel Vadot  - ranges
127*833e5d42SEmmanuel Vadot
128*833e5d42SEmmanuel VadotadditionalProperties: false
129*833e5d42SEmmanuel Vadot
130*833e5d42SEmmanuel Vadotexamples:
131*833e5d42SEmmanuel Vadot  - |
132*833e5d42SEmmanuel Vadot    #include <dt-bindings/clock/imx8-lpcg.h>
133*833e5d42SEmmanuel Vadot    #include <dt-bindings/firmware/imx/rsrc.h>
134*833e5d42SEmmanuel Vadot
135*833e5d42SEmmanuel Vadot    display-controller@56180000 {
136*833e5d42SEmmanuel Vadot        compatible = "fsl,imx8qxp-dc";
137*833e5d42SEmmanuel Vadot        reg = <0x56180000 0x40000>;
138*833e5d42SEmmanuel Vadot        clocks = <&dc0_lpcg IMX_LPCG_CLK_4>;
139*833e5d42SEmmanuel Vadot        power-domains = <&pd IMX_SC_R_DC_0>;
140*833e5d42SEmmanuel Vadot        #address-cells = <1>;
141*833e5d42SEmmanuel Vadot        #size-cells = <1>;
142*833e5d42SEmmanuel Vadot        ranges;
143*833e5d42SEmmanuel Vadot
144*833e5d42SEmmanuel Vadot        interrupt-controller@56180040 {
145*833e5d42SEmmanuel Vadot            compatible = "fsl,imx8qxp-dc-intc";
146*833e5d42SEmmanuel Vadot            reg = <0x56180040 0x60>;
147*833e5d42SEmmanuel Vadot            clocks = <&dc0_lpcg IMX_LPCG_CLK_5>;
148*833e5d42SEmmanuel Vadot            interrupt-controller;
149*833e5d42SEmmanuel Vadot            interrupt-parent = <&dc0_irqsteer>;
150*833e5d42SEmmanuel Vadot            #interrupt-cells = <1>;
151*833e5d42SEmmanuel Vadot            interrupts = <448>, <449>, <450>,  <64>,
152*833e5d42SEmmanuel Vadot                          <65>,  <66>,  <67>,  <68>,
153*833e5d42SEmmanuel Vadot                          <69>,  <70>, <193>, <194>,
154*833e5d42SEmmanuel Vadot                         <195>, <196>, <197>,  <72>,
155*833e5d42SEmmanuel Vadot                          <73>,  <74>,  <75>,  <76>,
156*833e5d42SEmmanuel Vadot                          <77>,  <78>,  <79>,  <80>,
157*833e5d42SEmmanuel Vadot                          <81>, <199>, <200>, <201>,
158*833e5d42SEmmanuel Vadot                         <202>, <203>, <204>, <205>,
159*833e5d42SEmmanuel Vadot                         <206>, <207>, <208>,   <5>,
160*833e5d42SEmmanuel Vadot                           <0>,   <1>,   <2>,   <3>,
161*833e5d42SEmmanuel Vadot                           <4>,  <82>,  <83>,  <84>,
162*833e5d42SEmmanuel Vadot                          <85>, <209>, <210>, <211>,
163*833e5d42SEmmanuel Vadot                         <212>;
164*833e5d42SEmmanuel Vadot            interrupt-names = "store9_shdload",
165*833e5d42SEmmanuel Vadot                              "store9_framecomplete",
166*833e5d42SEmmanuel Vadot                              "store9_seqcomplete",
167*833e5d42SEmmanuel Vadot                              "extdst0_shdload",
168*833e5d42SEmmanuel Vadot                              "extdst0_framecomplete",
169*833e5d42SEmmanuel Vadot                              "extdst0_seqcomplete",
170*833e5d42SEmmanuel Vadot                              "extdst4_shdload",
171*833e5d42SEmmanuel Vadot                              "extdst4_framecomplete",
172*833e5d42SEmmanuel Vadot                              "extdst4_seqcomplete",
173*833e5d42SEmmanuel Vadot                              "extdst1_shdload",
174*833e5d42SEmmanuel Vadot                              "extdst1_framecomplete",
175*833e5d42SEmmanuel Vadot                              "extdst1_seqcomplete",
176*833e5d42SEmmanuel Vadot                              "extdst5_shdload",
177*833e5d42SEmmanuel Vadot                              "extdst5_framecomplete",
178*833e5d42SEmmanuel Vadot                              "extdst5_seqcomplete",
179*833e5d42SEmmanuel Vadot                              "disengcfg_shdload0",
180*833e5d42SEmmanuel Vadot                              "disengcfg_framecomplete0",
181*833e5d42SEmmanuel Vadot                              "disengcfg_seqcomplete0",
182*833e5d42SEmmanuel Vadot                              "framegen0_int0",
183*833e5d42SEmmanuel Vadot                              "framegen0_int1",
184*833e5d42SEmmanuel Vadot                              "framegen0_int2",
185*833e5d42SEmmanuel Vadot                              "framegen0_int3",
186*833e5d42SEmmanuel Vadot                              "sig0_shdload",
187*833e5d42SEmmanuel Vadot                              "sig0_valid",
188*833e5d42SEmmanuel Vadot                              "sig0_error",
189*833e5d42SEmmanuel Vadot                              "disengcfg_shdload1",
190*833e5d42SEmmanuel Vadot                              "disengcfg_framecomplete1",
191*833e5d42SEmmanuel Vadot                              "disengcfg_seqcomplete1",
192*833e5d42SEmmanuel Vadot                              "framegen1_int0",
193*833e5d42SEmmanuel Vadot                              "framegen1_int1",
194*833e5d42SEmmanuel Vadot                              "framegen1_int2",
195*833e5d42SEmmanuel Vadot                              "framegen1_int3",
196*833e5d42SEmmanuel Vadot                              "sig1_shdload",
197*833e5d42SEmmanuel Vadot                              "sig1_valid",
198*833e5d42SEmmanuel Vadot                              "sig1_error",
199*833e5d42SEmmanuel Vadot                              "reserved",
200*833e5d42SEmmanuel Vadot                              "cmdseq_error",
201*833e5d42SEmmanuel Vadot                              "comctrl_sw0",
202*833e5d42SEmmanuel Vadot                              "comctrl_sw1",
203*833e5d42SEmmanuel Vadot                              "comctrl_sw2",
204*833e5d42SEmmanuel Vadot                              "comctrl_sw3",
205*833e5d42SEmmanuel Vadot                              "framegen0_primsync_on",
206*833e5d42SEmmanuel Vadot                              "framegen0_primsync_off",
207*833e5d42SEmmanuel Vadot                              "framegen0_secsync_on",
208*833e5d42SEmmanuel Vadot                              "framegen0_secsync_off",
209*833e5d42SEmmanuel Vadot                              "framegen1_primsync_on",
210*833e5d42SEmmanuel Vadot                              "framegen1_primsync_off",
211*833e5d42SEmmanuel Vadot                              "framegen1_secsync_on",
212*833e5d42SEmmanuel Vadot                              "framegen1_secsync_off";
213*833e5d42SEmmanuel Vadot        };
214*833e5d42SEmmanuel Vadot
215*833e5d42SEmmanuel Vadot        pixel-engine@56180800 {
216*833e5d42SEmmanuel Vadot            compatible = "fsl,imx8qxp-dc-pixel-engine";
217*833e5d42SEmmanuel Vadot            reg = <0x56180800 0xac00>;
218*833e5d42SEmmanuel Vadot            clocks = <&dc0_lpcg IMX_LPCG_CLK_5>;
219*833e5d42SEmmanuel Vadot            #address-cells = <1>;
220*833e5d42SEmmanuel Vadot            #size-cells = <1>;
221*833e5d42SEmmanuel Vadot            ranges;
222*833e5d42SEmmanuel Vadot        };
223*833e5d42SEmmanuel Vadot
224*833e5d42SEmmanuel Vadot        display-engine@5618b400 {
225*833e5d42SEmmanuel Vadot            compatible = "fsl,imx8qxp-dc-display-engine";
226*833e5d42SEmmanuel Vadot            reg = <0x5618b400 0x14>, <0x5618b800 0x1c00>;
227*833e5d42SEmmanuel Vadot            reg-names = "top", "cfg";
228*833e5d42SEmmanuel Vadot            interrupt-parent = <&dc0_intc>;
229*833e5d42SEmmanuel Vadot            interrupts = <15>, <16>, <17>;
230*833e5d42SEmmanuel Vadot            interrupt-names = "shdload", "framecomplete", "seqcomplete";
231*833e5d42SEmmanuel Vadot            power-domains = <&pd IMX_SC_R_DC_0_PLL_0>;
232*833e5d42SEmmanuel Vadot            #address-cells = <1>;
233*833e5d42SEmmanuel Vadot            #size-cells = <1>;
234*833e5d42SEmmanuel Vadot            ranges;
235*833e5d42SEmmanuel Vadot        };
236*833e5d42SEmmanuel Vadot    };
237