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