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