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