xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/fsl,imx8qxp-dc-intc.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/interrupt-controller/fsl,imx8qxp-dc-intc.yaml#
5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadottitle: Freescale i.MX8qxp Display Controller interrupt controller
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadotdescription: |
10*833e5d42SEmmanuel Vadot  The Display Controller has a built-in interrupt controller with the following
11*833e5d42SEmmanuel Vadot  features for all relevant HW events:
12*833e5d42SEmmanuel Vadot
13*833e5d42SEmmanuel Vadot  * Enable bit (mask)
14*833e5d42SEmmanuel Vadot  * Status bit (set by an HW event)
15*833e5d42SEmmanuel Vadot  * Preset bit (can be used by SW to set status)
16*833e5d42SEmmanuel Vadot  * Clear bit (used by SW to reset the status)
17*833e5d42SEmmanuel Vadot
18*833e5d42SEmmanuel Vadot  Each interrupt can be connected as IRQ (maskable) and/or NMI (non-maskable).
19*833e5d42SEmmanuel Vadot  Alternatively the un-masked trigger signals for all HW events are provided,
20*833e5d42SEmmanuel Vadot  allowing it to use a global interrupt controller instead.
21*833e5d42SEmmanuel Vadot
22*833e5d42SEmmanuel Vadot  Each interrupt can be protected against SW running in user mode. In that case,
23*833e5d42SEmmanuel Vadot  only privileged AHB access can control the interrupt status.
24*833e5d42SEmmanuel Vadot
25*833e5d42SEmmanuel Vadotmaintainers:
26*833e5d42SEmmanuel Vadot  - Liu Ying <victor.liu@nxp.com>
27*833e5d42SEmmanuel Vadot
28*833e5d42SEmmanuel Vadotproperties:
29*833e5d42SEmmanuel Vadot  compatible:
30*833e5d42SEmmanuel Vadot    const: fsl,imx8qxp-dc-intc
31*833e5d42SEmmanuel Vadot
32*833e5d42SEmmanuel Vadot  reg:
33*833e5d42SEmmanuel Vadot    maxItems: 1
34*833e5d42SEmmanuel Vadot
35*833e5d42SEmmanuel Vadot  clocks:
36*833e5d42SEmmanuel Vadot    maxItems: 1
37*833e5d42SEmmanuel Vadot
38*833e5d42SEmmanuel Vadot  interrupt-controller: true
39*833e5d42SEmmanuel Vadot
40*833e5d42SEmmanuel Vadot  "#interrupt-cells":
41*833e5d42SEmmanuel Vadot    const: 1
42*833e5d42SEmmanuel Vadot
43*833e5d42SEmmanuel Vadot  interrupts:
44*833e5d42SEmmanuel Vadot    items:
45*833e5d42SEmmanuel Vadot      - description: store9 shadow load interrupt(blit engine)
46*833e5d42SEmmanuel Vadot      - description: store9 frame complete interrupt(blit engine)
47*833e5d42SEmmanuel Vadot      - description: store9 sequence complete interrupt(blit engine)
48*833e5d42SEmmanuel Vadot      - description:
49*833e5d42SEmmanuel Vadot          extdst0 shadow load interrupt
50*833e5d42SEmmanuel Vadot          (display controller, content stream 0)
51*833e5d42SEmmanuel Vadot      - description:
52*833e5d42SEmmanuel Vadot          extdst0 frame complete interrupt
53*833e5d42SEmmanuel Vadot          (display controller, content stream 0)
54*833e5d42SEmmanuel Vadot      - description:
55*833e5d42SEmmanuel Vadot          extdst0 sequence complete interrupt
56*833e5d42SEmmanuel Vadot          (display controller, content stream 0)
57*833e5d42SEmmanuel Vadot      - description:
58*833e5d42SEmmanuel Vadot          extdst4 shadow load interrupt
59*833e5d42SEmmanuel Vadot          (display controller, safety stream 0)
60*833e5d42SEmmanuel Vadot      - description:
61*833e5d42SEmmanuel Vadot          extdst4 frame complete interrupt
62*833e5d42SEmmanuel Vadot          (display controller, safety stream 0)
63*833e5d42SEmmanuel Vadot      - description:
64*833e5d42SEmmanuel Vadot          extdst4 sequence complete interrupt
65*833e5d42SEmmanuel Vadot          (display controller, safety stream 0)
66*833e5d42SEmmanuel Vadot      - description:
67*833e5d42SEmmanuel Vadot          extdst1 shadow load interrupt
68*833e5d42SEmmanuel Vadot          (display controller, content stream 1)
69*833e5d42SEmmanuel Vadot      - description:
70*833e5d42SEmmanuel Vadot          extdst1 frame complete interrupt
71*833e5d42SEmmanuel Vadot          (display controller, content stream 1)
72*833e5d42SEmmanuel Vadot      - description:
73*833e5d42SEmmanuel Vadot          extdst1 sequence complete interrupt
74*833e5d42SEmmanuel Vadot          (display controller, content stream 1)
75*833e5d42SEmmanuel Vadot      - description:
76*833e5d42SEmmanuel Vadot          extdst5 shadow load interrupt
77*833e5d42SEmmanuel Vadot          (display controller, safety stream 1)
78*833e5d42SEmmanuel Vadot      - description:
79*833e5d42SEmmanuel Vadot          extdst5 frame complete interrupt
80*833e5d42SEmmanuel Vadot          (display controller, safety stream 1)
81*833e5d42SEmmanuel Vadot      - description:
82*833e5d42SEmmanuel Vadot          extdst5 sequence complete interrupt
83*833e5d42SEmmanuel Vadot          (display controller, safety stream 1)
84*833e5d42SEmmanuel Vadot      - description:
85*833e5d42SEmmanuel Vadot          disengcfg0 shadow load interrupt
86*833e5d42SEmmanuel Vadot          (display controller, display stream 0)
87*833e5d42SEmmanuel Vadot      - description:
88*833e5d42SEmmanuel Vadot          disengcfg0 frame complete interrupt
89*833e5d42SEmmanuel Vadot          (display controller, display stream 0)
90*833e5d42SEmmanuel Vadot      - description:
91*833e5d42SEmmanuel Vadot          disengcfg0 sequence complete interrupt
92*833e5d42SEmmanuel Vadot          (display controller, display stream 0)
93*833e5d42SEmmanuel Vadot      - description:
94*833e5d42SEmmanuel Vadot          framegen0 programmable interrupt0
95*833e5d42SEmmanuel Vadot          (display controller, display stream 0)
96*833e5d42SEmmanuel Vadot      - description:
97*833e5d42SEmmanuel Vadot          framegen0 programmable interrupt1
98*833e5d42SEmmanuel Vadot          (display controller, display stream 0)
99*833e5d42SEmmanuel Vadot      - description:
100*833e5d42SEmmanuel Vadot          framegen0 programmable interrupt2
101*833e5d42SEmmanuel Vadot          (display controller, display stream 0)
102*833e5d42SEmmanuel Vadot      - description:
103*833e5d42SEmmanuel Vadot          framegen0 programmable interrupt3
104*833e5d42SEmmanuel Vadot          (display controller, display stream 0)
105*833e5d42SEmmanuel Vadot      - description:
106*833e5d42SEmmanuel Vadot          signature0 shadow load interrupt
107*833e5d42SEmmanuel Vadot          (display controller, display stream 0)
108*833e5d42SEmmanuel Vadot      - description:
109*833e5d42SEmmanuel Vadot          signature0 measurement valid interrupt
110*833e5d42SEmmanuel Vadot          (display controller, display stream 0)
111*833e5d42SEmmanuel Vadot      - description:
112*833e5d42SEmmanuel Vadot          signature0 error condition interrupt
113*833e5d42SEmmanuel Vadot          (display controller, display stream 0)
114*833e5d42SEmmanuel Vadot      - description:
115*833e5d42SEmmanuel Vadot          disengcfg1 shadow load interrupt
116*833e5d42SEmmanuel Vadot          (display controller, display stream 1)
117*833e5d42SEmmanuel Vadot      - description:
118*833e5d42SEmmanuel Vadot          disengcfg1 frame complete interrupt
119*833e5d42SEmmanuel Vadot          (display controller, display stream 1)
120*833e5d42SEmmanuel Vadot      - description:
121*833e5d42SEmmanuel Vadot          disengcfg1 sequence complete interrupt
122*833e5d42SEmmanuel Vadot          (display controller, display stream 1)
123*833e5d42SEmmanuel Vadot      - description:
124*833e5d42SEmmanuel Vadot          framegen1 programmable interrupt0
125*833e5d42SEmmanuel Vadot          (display controller, display stream 1)
126*833e5d42SEmmanuel Vadot      - description:
127*833e5d42SEmmanuel Vadot          framegen1 programmable interrupt1
128*833e5d42SEmmanuel Vadot          (display controller, display stream 1)
129*833e5d42SEmmanuel Vadot      - description:
130*833e5d42SEmmanuel Vadot          framegen1 programmable interrupt2
131*833e5d42SEmmanuel Vadot          (display controller, display stream 1)
132*833e5d42SEmmanuel Vadot      - description:
133*833e5d42SEmmanuel Vadot          framegen1 programmable interrupt3
134*833e5d42SEmmanuel Vadot          (display controller, display stream 1)
135*833e5d42SEmmanuel Vadot      - description:
136*833e5d42SEmmanuel Vadot          signature1 shadow load interrupt
137*833e5d42SEmmanuel Vadot          (display controller, display stream 1)
138*833e5d42SEmmanuel Vadot      - description:
139*833e5d42SEmmanuel Vadot          signature1 measurement valid interrupt
140*833e5d42SEmmanuel Vadot          (display controller, display stream 1)
141*833e5d42SEmmanuel Vadot      - description:
142*833e5d42SEmmanuel Vadot          signature1 error condition interrupt
143*833e5d42SEmmanuel Vadot          (display controller, display stream 1)
144*833e5d42SEmmanuel Vadot      - description: reserved
145*833e5d42SEmmanuel Vadot      - description:
146*833e5d42SEmmanuel Vadot          command sequencer error condition interrupt(command sequencer)
147*833e5d42SEmmanuel Vadot      - description:
148*833e5d42SEmmanuel Vadot          common control software interrupt0(common control)
149*833e5d42SEmmanuel Vadot      - description:
150*833e5d42SEmmanuel Vadot          common control software interrupt1(common control)
151*833e5d42SEmmanuel Vadot      - description:
152*833e5d42SEmmanuel Vadot          common control software interrupt2(common control)
153*833e5d42SEmmanuel Vadot      - description:
154*833e5d42SEmmanuel Vadot          common control software interrupt3(common control)
155*833e5d42SEmmanuel Vadot      - description:
156*833e5d42SEmmanuel Vadot          framegen0 synchronization status activated interrupt
157*833e5d42SEmmanuel Vadot          (display controller, safety stream 0)
158*833e5d42SEmmanuel Vadot      - description:
159*833e5d42SEmmanuel Vadot          framegen0 synchronization status deactivated interrupt
160*833e5d42SEmmanuel Vadot          (display controller, safety stream 0)
161*833e5d42SEmmanuel Vadot      - description:
162*833e5d42SEmmanuel Vadot          framegen0 synchronization status activated interrupt
163*833e5d42SEmmanuel Vadot          (display controller, content stream 0)
164*833e5d42SEmmanuel Vadot      - description:
165*833e5d42SEmmanuel Vadot          framegen0 synchronization status deactivated interrupt
166*833e5d42SEmmanuel Vadot          (display controller, content stream 0)
167*833e5d42SEmmanuel Vadot      - description:
168*833e5d42SEmmanuel Vadot          framegen1 synchronization status activated interrupt
169*833e5d42SEmmanuel Vadot          (display controller, safety stream 1)
170*833e5d42SEmmanuel Vadot      - description:
171*833e5d42SEmmanuel Vadot          framegen1 synchronization status deactivated interrupt
172*833e5d42SEmmanuel Vadot          (display controller, safety stream 1)
173*833e5d42SEmmanuel Vadot      - description:
174*833e5d42SEmmanuel Vadot          framegen1 synchronization status activated interrupt
175*833e5d42SEmmanuel Vadot          (display controller, content stream 1)
176*833e5d42SEmmanuel Vadot      - description:
177*833e5d42SEmmanuel Vadot          framegen1 synchronization status deactivated interrupt
178*833e5d42SEmmanuel Vadot          (display controller, content stream 1)
179*833e5d42SEmmanuel Vadot    minItems: 49
180*833e5d42SEmmanuel Vadot
181*833e5d42SEmmanuel Vadot  interrupt-names:
182*833e5d42SEmmanuel Vadot    items:
183*833e5d42SEmmanuel Vadot      - const: store9_shdload
184*833e5d42SEmmanuel Vadot      - const: store9_framecomplete
185*833e5d42SEmmanuel Vadot      - const: store9_seqcomplete
186*833e5d42SEmmanuel Vadot      - const: extdst0_shdload
187*833e5d42SEmmanuel Vadot      - const: extdst0_framecomplete
188*833e5d42SEmmanuel Vadot      - const: extdst0_seqcomplete
189*833e5d42SEmmanuel Vadot      - const: extdst4_shdload
190*833e5d42SEmmanuel Vadot      - const: extdst4_framecomplete
191*833e5d42SEmmanuel Vadot      - const: extdst4_seqcomplete
192*833e5d42SEmmanuel Vadot      - const: extdst1_shdload
193*833e5d42SEmmanuel Vadot      - const: extdst1_framecomplete
194*833e5d42SEmmanuel Vadot      - const: extdst1_seqcomplete
195*833e5d42SEmmanuel Vadot      - const: extdst5_shdload
196*833e5d42SEmmanuel Vadot      - const: extdst5_framecomplete
197*833e5d42SEmmanuel Vadot      - const: extdst5_seqcomplete
198*833e5d42SEmmanuel Vadot      - const: disengcfg_shdload0
199*833e5d42SEmmanuel Vadot      - const: disengcfg_framecomplete0
200*833e5d42SEmmanuel Vadot      - const: disengcfg_seqcomplete0
201*833e5d42SEmmanuel Vadot      - const: framegen0_int0
202*833e5d42SEmmanuel Vadot      - const: framegen0_int1
203*833e5d42SEmmanuel Vadot      - const: framegen0_int2
204*833e5d42SEmmanuel Vadot      - const: framegen0_int3
205*833e5d42SEmmanuel Vadot      - const: sig0_shdload
206*833e5d42SEmmanuel Vadot      - const: sig0_valid
207*833e5d42SEmmanuel Vadot      - const: sig0_error
208*833e5d42SEmmanuel Vadot      - const: disengcfg_shdload1
209*833e5d42SEmmanuel Vadot      - const: disengcfg_framecomplete1
210*833e5d42SEmmanuel Vadot      - const: disengcfg_seqcomplete1
211*833e5d42SEmmanuel Vadot      - const: framegen1_int0
212*833e5d42SEmmanuel Vadot      - const: framegen1_int1
213*833e5d42SEmmanuel Vadot      - const: framegen1_int2
214*833e5d42SEmmanuel Vadot      - const: framegen1_int3
215*833e5d42SEmmanuel Vadot      - const: sig1_shdload
216*833e5d42SEmmanuel Vadot      - const: sig1_valid
217*833e5d42SEmmanuel Vadot      - const: sig1_error
218*833e5d42SEmmanuel Vadot      - const: reserved
219*833e5d42SEmmanuel Vadot      - const: cmdseq_error
220*833e5d42SEmmanuel Vadot      - const: comctrl_sw0
221*833e5d42SEmmanuel Vadot      - const: comctrl_sw1
222*833e5d42SEmmanuel Vadot      - const: comctrl_sw2
223*833e5d42SEmmanuel Vadot      - const: comctrl_sw3
224*833e5d42SEmmanuel Vadot      - const: framegen0_primsync_on
225*833e5d42SEmmanuel Vadot      - const: framegen0_primsync_off
226*833e5d42SEmmanuel Vadot      - const: framegen0_secsync_on
227*833e5d42SEmmanuel Vadot      - const: framegen0_secsync_off
228*833e5d42SEmmanuel Vadot      - const: framegen1_primsync_on
229*833e5d42SEmmanuel Vadot      - const: framegen1_primsync_off
230*833e5d42SEmmanuel Vadot      - const: framegen1_secsync_on
231*833e5d42SEmmanuel Vadot      - const: framegen1_secsync_off
232*833e5d42SEmmanuel Vadot    minItems: 49
233*833e5d42SEmmanuel Vadot
234*833e5d42SEmmanuel Vadotrequired:
235*833e5d42SEmmanuel Vadot  - compatible
236*833e5d42SEmmanuel Vadot  - reg
237*833e5d42SEmmanuel Vadot  - clocks
238*833e5d42SEmmanuel Vadot  - interrupt-controller
239*833e5d42SEmmanuel Vadot  - "#interrupt-cells"
240*833e5d42SEmmanuel Vadot  - interrupts
241*833e5d42SEmmanuel Vadot  - interrupt-names
242*833e5d42SEmmanuel Vadot
243*833e5d42SEmmanuel VadotadditionalProperties: false
244*833e5d42SEmmanuel Vadot
245*833e5d42SEmmanuel Vadotexamples:
246*833e5d42SEmmanuel Vadot  - |
247*833e5d42SEmmanuel Vadot    #include <dt-bindings/clock/imx8-lpcg.h>
248*833e5d42SEmmanuel Vadot
249*833e5d42SEmmanuel Vadot    interrupt-controller@56180040 {
250*833e5d42SEmmanuel Vadot        compatible = "fsl,imx8qxp-dc-intc";
251*833e5d42SEmmanuel Vadot        reg = <0x56180040 0x60>;
252*833e5d42SEmmanuel Vadot        clocks = <&dc0_lpcg IMX_LPCG_CLK_5>;
253*833e5d42SEmmanuel Vadot        interrupt-controller;
254*833e5d42SEmmanuel Vadot        interrupt-parent = <&dc0_irqsteer>;
255*833e5d42SEmmanuel Vadot        #interrupt-cells = <1>;
256*833e5d42SEmmanuel Vadot        interrupts = <448>, <449>, <450>,  <64>,
257*833e5d42SEmmanuel Vadot                      <65>,  <66>,  <67>,  <68>,
258*833e5d42SEmmanuel Vadot                      <69>,  <70>, <193>, <194>,
259*833e5d42SEmmanuel Vadot                     <195>, <196>, <197>,  <72>,
260*833e5d42SEmmanuel Vadot                      <73>,  <74>,  <75>,  <76>,
261*833e5d42SEmmanuel Vadot                      <77>,  <78>,  <79>,  <80>,
262*833e5d42SEmmanuel Vadot                      <81>, <199>, <200>, <201>,
263*833e5d42SEmmanuel Vadot                     <202>, <203>, <204>, <205>,
264*833e5d42SEmmanuel Vadot                     <206>, <207>, <208>,   <5>,
265*833e5d42SEmmanuel Vadot                       <0>,   <1>,   <2>,   <3>,
266*833e5d42SEmmanuel Vadot                       <4>,  <82>,  <83>,  <84>,
267*833e5d42SEmmanuel Vadot                      <85>, <209>, <210>, <211>,
268*833e5d42SEmmanuel Vadot                     <212>;
269*833e5d42SEmmanuel Vadot        interrupt-names = "store9_shdload",
270*833e5d42SEmmanuel Vadot                          "store9_framecomplete",
271*833e5d42SEmmanuel Vadot                          "store9_seqcomplete",
272*833e5d42SEmmanuel Vadot                          "extdst0_shdload",
273*833e5d42SEmmanuel Vadot                          "extdst0_framecomplete",
274*833e5d42SEmmanuel Vadot                          "extdst0_seqcomplete",
275*833e5d42SEmmanuel Vadot                          "extdst4_shdload",
276*833e5d42SEmmanuel Vadot                          "extdst4_framecomplete",
277*833e5d42SEmmanuel Vadot                          "extdst4_seqcomplete",
278*833e5d42SEmmanuel Vadot                          "extdst1_shdload",
279*833e5d42SEmmanuel Vadot                          "extdst1_framecomplete",
280*833e5d42SEmmanuel Vadot                          "extdst1_seqcomplete",
281*833e5d42SEmmanuel Vadot                          "extdst5_shdload",
282*833e5d42SEmmanuel Vadot                          "extdst5_framecomplete",
283*833e5d42SEmmanuel Vadot                          "extdst5_seqcomplete",
284*833e5d42SEmmanuel Vadot                          "disengcfg_shdload0",
285*833e5d42SEmmanuel Vadot                          "disengcfg_framecomplete0",
286*833e5d42SEmmanuel Vadot                          "disengcfg_seqcomplete0",
287*833e5d42SEmmanuel Vadot                          "framegen0_int0",
288*833e5d42SEmmanuel Vadot                          "framegen0_int1",
289*833e5d42SEmmanuel Vadot                          "framegen0_int2",
290*833e5d42SEmmanuel Vadot                          "framegen0_int3",
291*833e5d42SEmmanuel Vadot                          "sig0_shdload",
292*833e5d42SEmmanuel Vadot                          "sig0_valid",
293*833e5d42SEmmanuel Vadot                          "sig0_error",
294*833e5d42SEmmanuel Vadot                          "disengcfg_shdload1",
295*833e5d42SEmmanuel Vadot                          "disengcfg_framecomplete1",
296*833e5d42SEmmanuel Vadot                          "disengcfg_seqcomplete1",
297*833e5d42SEmmanuel Vadot                          "framegen1_int0",
298*833e5d42SEmmanuel Vadot                          "framegen1_int1",
299*833e5d42SEmmanuel Vadot                          "framegen1_int2",
300*833e5d42SEmmanuel Vadot                          "framegen1_int3",
301*833e5d42SEmmanuel Vadot                          "sig1_shdload",
302*833e5d42SEmmanuel Vadot                          "sig1_valid",
303*833e5d42SEmmanuel Vadot                          "sig1_error",
304*833e5d42SEmmanuel Vadot                          "reserved",
305*833e5d42SEmmanuel Vadot                          "cmdseq_error",
306*833e5d42SEmmanuel Vadot                          "comctrl_sw0",
307*833e5d42SEmmanuel Vadot                          "comctrl_sw1",
308*833e5d42SEmmanuel Vadot                          "comctrl_sw2",
309*833e5d42SEmmanuel Vadot                          "comctrl_sw3",
310*833e5d42SEmmanuel Vadot                          "framegen0_primsync_on",
311*833e5d42SEmmanuel Vadot                          "framegen0_primsync_off",
312*833e5d42SEmmanuel Vadot                          "framegen0_secsync_on",
313*833e5d42SEmmanuel Vadot                          "framegen0_secsync_off",
314*833e5d42SEmmanuel Vadot                          "framegen1_primsync_on",
315*833e5d42SEmmanuel Vadot                          "framegen1_primsync_off",
316*833e5d42SEmmanuel Vadot                          "framegen1_secsync_on",
317*833e5d42SEmmanuel Vadot                          "framegen1_secsync_off";
318*833e5d42SEmmanuel Vadot    };
319