1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (C) 2012 Russell King 4*4882a593Smuzhiyun * Rewritten from the dovefb driver, and Armada510 manuals. 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun #ifndef ARMADA_HW_H 7*4882a593Smuzhiyun #define ARMADA_HW_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun /* 10*4882a593Smuzhiyun * Note: the following registers are written from IRQ context: 11*4882a593Smuzhiyun * LCD_SPU_V_PORCH, LCD_SPU_ADV_REG, LCD_SPUT_V_H_TOTAL 12*4882a593Smuzhiyun * LCD_SPU_DMA_START_ADDR_[YUV][01], LCD_SPU_DMA_PITCH_YC, 13*4882a593Smuzhiyun * LCD_SPU_DMA_PITCH_UV, LCD_SPU_DMA_OVSA_HPXL_VLN, 14*4882a593Smuzhiyun * LCD_SPU_DMA_HPXL_VLN, LCD_SPU_DZM_HPXL_VLN, LCD_SPU_DMA_CTRL0 15*4882a593Smuzhiyun */ 16*4882a593Smuzhiyun enum { 17*4882a593Smuzhiyun LCD_SPU_ADV_REG = 0x0084, /* Armada 510 */ 18*4882a593Smuzhiyun LCD_SPU_DMA_START_ADDR_Y0 = 0x00c0, 19*4882a593Smuzhiyun LCD_SPU_DMA_START_ADDR_U0 = 0x00c4, 20*4882a593Smuzhiyun LCD_SPU_DMA_START_ADDR_V0 = 0x00c8, 21*4882a593Smuzhiyun LCD_CFG_DMA_START_ADDR_0 = 0x00cc, 22*4882a593Smuzhiyun LCD_SPU_DMA_START_ADDR_Y1 = 0x00d0, 23*4882a593Smuzhiyun LCD_SPU_DMA_START_ADDR_U1 = 0x00d4, 24*4882a593Smuzhiyun LCD_SPU_DMA_START_ADDR_V1 = 0x00d8, 25*4882a593Smuzhiyun LCD_CFG_DMA_START_ADDR_1 = 0x00dc, 26*4882a593Smuzhiyun LCD_SPU_DMA_PITCH_YC = 0x00e0, 27*4882a593Smuzhiyun LCD_SPU_DMA_PITCH_UV = 0x00e4, 28*4882a593Smuzhiyun LCD_SPU_DMA_OVSA_HPXL_VLN = 0x00e8, 29*4882a593Smuzhiyun LCD_SPU_DMA_HPXL_VLN = 0x00ec, 30*4882a593Smuzhiyun LCD_SPU_DZM_HPXL_VLN = 0x00f0, 31*4882a593Smuzhiyun LCD_CFG_GRA_START_ADDR0 = 0x00f4, 32*4882a593Smuzhiyun LCD_CFG_GRA_START_ADDR1 = 0x00f8, 33*4882a593Smuzhiyun LCD_CFG_GRA_PITCH = 0x00fc, 34*4882a593Smuzhiyun LCD_SPU_GRA_OVSA_HPXL_VLN = 0x0100, 35*4882a593Smuzhiyun LCD_SPU_GRA_HPXL_VLN = 0x0104, 36*4882a593Smuzhiyun LCD_SPU_GZM_HPXL_VLN = 0x0108, 37*4882a593Smuzhiyun LCD_SPU_HWC_OVSA_HPXL_VLN = 0x010c, 38*4882a593Smuzhiyun LCD_SPU_HWC_HPXL_VLN = 0x0110, 39*4882a593Smuzhiyun LCD_SPUT_V_H_TOTAL = 0x0114, 40*4882a593Smuzhiyun LCD_SPU_V_H_ACTIVE = 0x0118, 41*4882a593Smuzhiyun LCD_SPU_H_PORCH = 0x011c, 42*4882a593Smuzhiyun LCD_SPU_V_PORCH = 0x0120, 43*4882a593Smuzhiyun LCD_SPU_BLANKCOLOR = 0x0124, 44*4882a593Smuzhiyun LCD_SPU_ALPHA_COLOR1 = 0x0128, 45*4882a593Smuzhiyun LCD_SPU_ALPHA_COLOR2 = 0x012c, 46*4882a593Smuzhiyun LCD_SPU_COLORKEY_Y = 0x0130, 47*4882a593Smuzhiyun LCD_SPU_COLORKEY_U = 0x0134, 48*4882a593Smuzhiyun LCD_SPU_COLORKEY_V = 0x0138, 49*4882a593Smuzhiyun LCD_CFG_RDREG4F = 0x013c, /* Armada 510 */ 50*4882a593Smuzhiyun LCD_SPU_SPI_RXDATA = 0x0140, 51*4882a593Smuzhiyun LCD_SPU_ISA_RXDATA = 0x0144, 52*4882a593Smuzhiyun LCD_SPU_HWC_RDDAT = 0x0158, 53*4882a593Smuzhiyun LCD_SPU_GAMMA_RDDAT = 0x015c, 54*4882a593Smuzhiyun LCD_SPU_PALETTE_RDDAT = 0x0160, 55*4882a593Smuzhiyun LCD_SPU_IOPAD_IN = 0x0178, 56*4882a593Smuzhiyun LCD_CFG_RDREG5F = 0x017c, 57*4882a593Smuzhiyun LCD_SPU_SPI_CTRL = 0x0180, 58*4882a593Smuzhiyun LCD_SPU_SPI_TXDATA = 0x0184, 59*4882a593Smuzhiyun LCD_SPU_SMPN_CTRL = 0x0188, 60*4882a593Smuzhiyun LCD_SPU_DMA_CTRL0 = 0x0190, 61*4882a593Smuzhiyun LCD_SPU_DMA_CTRL1 = 0x0194, 62*4882a593Smuzhiyun LCD_SPU_SRAM_CTRL = 0x0198, 63*4882a593Smuzhiyun LCD_SPU_SRAM_WRDAT = 0x019c, 64*4882a593Smuzhiyun LCD_SPU_SRAM_PARA0 = 0x01a0, /* Armada 510 */ 65*4882a593Smuzhiyun LCD_SPU_SRAM_PARA1 = 0x01a4, 66*4882a593Smuzhiyun LCD_CFG_SCLK_DIV = 0x01a8, 67*4882a593Smuzhiyun LCD_SPU_CONTRAST = 0x01ac, 68*4882a593Smuzhiyun LCD_SPU_SATURATION = 0x01b0, 69*4882a593Smuzhiyun LCD_SPU_CBSH_HUE = 0x01b4, 70*4882a593Smuzhiyun LCD_SPU_DUMB_CTRL = 0x01b8, 71*4882a593Smuzhiyun LCD_SPU_IOPAD_CONTROL = 0x01bc, 72*4882a593Smuzhiyun LCD_SPU_IRQ_ENA = 0x01c0, 73*4882a593Smuzhiyun LCD_SPU_IRQ_ISR = 0x01c4, 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun /* For LCD_SPU_ADV_REG */ 77*4882a593Smuzhiyun enum { 78*4882a593Smuzhiyun ADV_VSYNC_L_OFF = 0xfff << 20, 79*4882a593Smuzhiyun ADV_GRACOLORKEY = 1 << 19, 80*4882a593Smuzhiyun ADV_VIDCOLORKEY = 1 << 18, 81*4882a593Smuzhiyun ADV_HWC32BLEND = 1 << 15, 82*4882a593Smuzhiyun ADV_HWC32ARGB = 1 << 14, 83*4882a593Smuzhiyun ADV_HWC32ENABLE = 1 << 13, 84*4882a593Smuzhiyun ADV_VSYNCOFFEN = 1 << 12, 85*4882a593Smuzhiyun ADV_VSYNC_H_OFF = 0xfff << 0, 86*4882a593Smuzhiyun }; 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun /* LCD_CFG_RDREG4F - Armada 510 only */ 89*4882a593Smuzhiyun enum { 90*4882a593Smuzhiyun CFG_SRAM_WAIT = BIT(11), 91*4882a593Smuzhiyun CFG_SMPN_FASTTX = BIT(10), 92*4882a593Smuzhiyun CFG_DMA_ARB = BIT(9), 93*4882a593Smuzhiyun CFG_DMA_WM_EN = BIT(8), 94*4882a593Smuzhiyun CFG_DMA_WM_MASK = 0xff, 95*4882a593Smuzhiyun #define CFG_DMA_WM(x) ((x) & CFG_DMA_WM_MASK) 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun enum { 99*4882a593Smuzhiyun CFG_565 = 0, 100*4882a593Smuzhiyun CFG_1555 = 1, 101*4882a593Smuzhiyun CFG_888PACK = 2, 102*4882a593Smuzhiyun CFG_X888 = 3, 103*4882a593Smuzhiyun CFG_8888 = 4, 104*4882a593Smuzhiyun CFG_422PACK = 5, 105*4882a593Smuzhiyun CFG_422 = 6, 106*4882a593Smuzhiyun CFG_420 = 7, 107*4882a593Smuzhiyun CFG_PSEUDO4 = 9, 108*4882a593Smuzhiyun CFG_PSEUDO8 = 10, 109*4882a593Smuzhiyun CFG_SWAPRB = 1 << 4, 110*4882a593Smuzhiyun CFG_SWAPUV = 1 << 3, 111*4882a593Smuzhiyun CFG_SWAPYU = 1 << 2, 112*4882a593Smuzhiyun CFG_YUV2RGB = 1 << 1, 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun /* For LCD_SPU_DMA_CTRL0 */ 116*4882a593Smuzhiyun enum { 117*4882a593Smuzhiyun CFG_NOBLENDING = 1 << 31, 118*4882a593Smuzhiyun CFG_GAMMA_ENA = 1 << 30, 119*4882a593Smuzhiyun CFG_CBSH_ENA = 1 << 29, 120*4882a593Smuzhiyun CFG_PALETTE_ENA = 1 << 28, 121*4882a593Smuzhiyun CFG_ARBFAST_ENA = 1 << 27, 122*4882a593Smuzhiyun CFG_HWC_1BITMOD = 1 << 26, 123*4882a593Smuzhiyun CFG_HWC_1BITENA = 1 << 25, 124*4882a593Smuzhiyun CFG_HWC_ENA = 1 << 24, 125*4882a593Smuzhiyun CFG_DMAFORMAT = 0xf << 20, 126*4882a593Smuzhiyun #define CFG_DMA_FMT(x) ((x) << 20) 127*4882a593Smuzhiyun CFG_GRAFORMAT = 0xf << 16, 128*4882a593Smuzhiyun #define CFG_GRA_FMT(x) ((x) << 16) 129*4882a593Smuzhiyun #define CFG_GRA_MOD(x) ((x) << 8) 130*4882a593Smuzhiyun CFG_GRA_FTOGGLE = 1 << 15, 131*4882a593Smuzhiyun CFG_GRA_HSMOOTH = 1 << 14, 132*4882a593Smuzhiyun CFG_GRA_TSTMODE = 1 << 13, 133*4882a593Smuzhiyun CFG_GRA_ENA = 1 << 8, 134*4882a593Smuzhiyun #define CFG_DMA_MOD(x) ((x) << 0) 135*4882a593Smuzhiyun CFG_DMA_FTOGGLE = 1 << 7, 136*4882a593Smuzhiyun CFG_DMA_HSMOOTH = 1 << 6, 137*4882a593Smuzhiyun CFG_DMA_TSTMODE = 1 << 5, 138*4882a593Smuzhiyun CFG_DMA_ENA = 1 << 0, 139*4882a593Smuzhiyun }; 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun enum { 142*4882a593Smuzhiyun CKMODE_DISABLE = 0, 143*4882a593Smuzhiyun CKMODE_Y = 1, 144*4882a593Smuzhiyun CKMODE_U = 2, 145*4882a593Smuzhiyun CKMODE_RGB = 3, 146*4882a593Smuzhiyun CKMODE_V = 4, 147*4882a593Smuzhiyun CKMODE_R = 5, 148*4882a593Smuzhiyun CKMODE_G = 6, 149*4882a593Smuzhiyun CKMODE_B = 7, 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun /* For LCD_SPU_DMA_CTRL1 */ 153*4882a593Smuzhiyun enum { 154*4882a593Smuzhiyun CFG_FRAME_TRIG = 1 << 31, 155*4882a593Smuzhiyun CFG_VSYNC_INV = 1 << 27, 156*4882a593Smuzhiyun CFG_CKMODE_MASK = 0x7 << 24, 157*4882a593Smuzhiyun #define CFG_CKMODE(x) ((x) << 24) 158*4882a593Smuzhiyun CFG_CARRY = 1 << 23, 159*4882a593Smuzhiyun CFG_GATED_CLK = 1 << 21, 160*4882a593Smuzhiyun CFG_PWRDN_ENA = 1 << 20, 161*4882a593Smuzhiyun CFG_DSCALE_MASK = 0x3 << 18, 162*4882a593Smuzhiyun CFG_DSCALE_NONE = 0x0 << 18, 163*4882a593Smuzhiyun CFG_DSCALE_HALF = 0x1 << 18, 164*4882a593Smuzhiyun CFG_DSCALE_QUAR = 0x2 << 18, 165*4882a593Smuzhiyun CFG_ALPHAM_MASK = 0x3 << 16, 166*4882a593Smuzhiyun CFG_ALPHAM_VIDEO = 0x0 << 16, 167*4882a593Smuzhiyun CFG_ALPHAM_GRA = 0x1 << 16, 168*4882a593Smuzhiyun CFG_ALPHAM_CFG = 0x2 << 16, 169*4882a593Smuzhiyun CFG_ALPHA_MASK = 0xff << 8, 170*4882a593Smuzhiyun #define CFG_ALPHA(x) ((x) << 8) 171*4882a593Smuzhiyun CFG_PIXCMD_MASK = 0xff, 172*4882a593Smuzhiyun }; 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun /* For LCD_SPU_SRAM_CTRL */ 175*4882a593Smuzhiyun enum { 176*4882a593Smuzhiyun SRAM_READ = 0 << 14, 177*4882a593Smuzhiyun SRAM_WRITE = 2 << 14, 178*4882a593Smuzhiyun SRAM_INIT = 3 << 14, 179*4882a593Smuzhiyun SRAM_GAMMA_YR = 0x0 << 8, 180*4882a593Smuzhiyun SRAM_GAMMA_UG = 0x1 << 8, 181*4882a593Smuzhiyun SRAM_GAMMA_VB = 0x2 << 8, 182*4882a593Smuzhiyun SRAM_PALETTE = 0x3 << 8, 183*4882a593Smuzhiyun SRAM_HWC32_RAM1 = 0xc << 8, 184*4882a593Smuzhiyun SRAM_HWC32_RAM2 = 0xd << 8, 185*4882a593Smuzhiyun SRAM_HWC32_RAMR = SRAM_HWC32_RAM1, 186*4882a593Smuzhiyun SRAM_HWC32_RAMG = SRAM_HWC32_RAM2, 187*4882a593Smuzhiyun SRAM_HWC32_RAMB = 0xe << 8, 188*4882a593Smuzhiyun SRAM_HWC32_TRAN = 0xf << 8, 189*4882a593Smuzhiyun SRAM_HWC = 0xf << 8, 190*4882a593Smuzhiyun }; 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun /* For LCD_SPU_SRAM_PARA1 */ 193*4882a593Smuzhiyun enum { 194*4882a593Smuzhiyun CFG_CSB_256x32 = 1 << 15, /* cursor */ 195*4882a593Smuzhiyun CFG_CSB_256x24 = 1 << 14, /* palette */ 196*4882a593Smuzhiyun CFG_CSB_256x8 = 1 << 13, /* gamma */ 197*4882a593Smuzhiyun CFG_PDWN1920x32 = 1 << 8, /* Armada 510: power down vscale ram */ 198*4882a593Smuzhiyun CFG_PDWN256x32 = 1 << 7, /* power down cursor */ 199*4882a593Smuzhiyun CFG_PDWN256x24 = 1 << 6, /* power down palette */ 200*4882a593Smuzhiyun CFG_PDWN256x8 = 1 << 5, /* power down gamma */ 201*4882a593Smuzhiyun CFG_PDWNHWC = 1 << 4, /* Armada 510: power down all hwc ram */ 202*4882a593Smuzhiyun CFG_PDWN32x32 = 1 << 3, /* power down slave->smart ram */ 203*4882a593Smuzhiyun CFG_PDWN16x66 = 1 << 2, /* power down UV fifo */ 204*4882a593Smuzhiyun CFG_PDWN32x66 = 1 << 1, /* power down Y fifo */ 205*4882a593Smuzhiyun CFG_PDWN64x66 = 1 << 0, /* power down graphic fifo */ 206*4882a593Smuzhiyun }; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun /* For LCD_CFG_SCLK_DIV */ 209*4882a593Smuzhiyun enum { 210*4882a593Smuzhiyun /* Armada 510 */ 211*4882a593Smuzhiyun SCLK_510_AXI = 0x0 << 30, 212*4882a593Smuzhiyun SCLK_510_EXTCLK0 = 0x1 << 30, 213*4882a593Smuzhiyun SCLK_510_PLL = 0x2 << 30, 214*4882a593Smuzhiyun SCLK_510_EXTCLK1 = 0x3 << 30, 215*4882a593Smuzhiyun SCLK_510_DIV_CHANGE = 1 << 29, 216*4882a593Smuzhiyun SCLK_510_FRAC_DIV_MASK = 0xfff << 16, 217*4882a593Smuzhiyun SCLK_510_INT_DIV_MASK = 0xffff << 0, 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun /* Armada 16x */ 220*4882a593Smuzhiyun SCLK_16X_AHB = 0x0 << 28, 221*4882a593Smuzhiyun SCLK_16X_PCLK = 0x1 << 28, 222*4882a593Smuzhiyun SCLK_16X_AXI = 0x4 << 28, 223*4882a593Smuzhiyun SCLK_16X_PLL = 0x8 << 28, 224*4882a593Smuzhiyun SCLK_16X_FRAC_DIV_MASK = 0xfff << 16, 225*4882a593Smuzhiyun SCLK_16X_INT_DIV_MASK = 0xffff << 0, 226*4882a593Smuzhiyun }; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun /* For LCD_SPU_DUMB_CTRL */ 229*4882a593Smuzhiyun enum { 230*4882a593Smuzhiyun DUMB16_RGB565_0 = 0x0 << 28, 231*4882a593Smuzhiyun DUMB16_RGB565_1 = 0x1 << 28, 232*4882a593Smuzhiyun DUMB18_RGB666_0 = 0x2 << 28, 233*4882a593Smuzhiyun DUMB18_RGB666_1 = 0x3 << 28, 234*4882a593Smuzhiyun DUMB12_RGB444_0 = 0x4 << 28, 235*4882a593Smuzhiyun DUMB12_RGB444_1 = 0x5 << 28, 236*4882a593Smuzhiyun DUMB24_RGB888_0 = 0x6 << 28, 237*4882a593Smuzhiyun DUMB_BLANK = 0x7 << 28, 238*4882a593Smuzhiyun DUMB_MASK = 0xf << 28, 239*4882a593Smuzhiyun CFG_BIAS_OUT = 1 << 8, 240*4882a593Smuzhiyun CFG_REV_RGB = 1 << 7, 241*4882a593Smuzhiyun CFG_INV_CBLANK = 1 << 6, 242*4882a593Smuzhiyun CFG_INV_CSYNC = 1 << 5, /* Normally active high */ 243*4882a593Smuzhiyun CFG_INV_HENA = 1 << 4, 244*4882a593Smuzhiyun CFG_INV_VSYNC = 1 << 3, /* Normally active high */ 245*4882a593Smuzhiyun CFG_INV_HSYNC = 1 << 2, /* Normally active high */ 246*4882a593Smuzhiyun CFG_INV_PCLK = 1 << 1, 247*4882a593Smuzhiyun CFG_DUMB_ENA = 1 << 0, 248*4882a593Smuzhiyun }; 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun /* For LCD_SPU_IOPAD_CONTROL */ 251*4882a593Smuzhiyun enum { 252*4882a593Smuzhiyun CFG_VSCALE_LN_EN = 3 << 18, 253*4882a593Smuzhiyun CFG_GRA_VM_ENA = 1 << 15, 254*4882a593Smuzhiyun CFG_DMA_VM_ENA = 1 << 13, 255*4882a593Smuzhiyun CFG_CMD_VM_ENA = 1 << 11, 256*4882a593Smuzhiyun CFG_CSC_MASK = 3 << 8, 257*4882a593Smuzhiyun CFG_CSC_YUV_CCIR709 = 1 << 9, 258*4882a593Smuzhiyun CFG_CSC_YUV_CCIR601 = 0 << 9, 259*4882a593Smuzhiyun CFG_CSC_RGB_STUDIO = 1 << 8, 260*4882a593Smuzhiyun CFG_CSC_RGB_COMPUTER = 0 << 8, 261*4882a593Smuzhiyun CFG_IOPAD_MASK = 0xf << 0, 262*4882a593Smuzhiyun CFG_IOPAD_DUMB24 = 0x0 << 0, 263*4882a593Smuzhiyun CFG_IOPAD_DUMB18SPI = 0x1 << 0, 264*4882a593Smuzhiyun CFG_IOPAD_DUMB18GPIO = 0x2 << 0, 265*4882a593Smuzhiyun CFG_IOPAD_DUMB16SPI = 0x3 << 0, 266*4882a593Smuzhiyun CFG_IOPAD_DUMB16GPIO = 0x4 << 0, 267*4882a593Smuzhiyun CFG_IOPAD_DUMB12GPIO = 0x5 << 0, 268*4882a593Smuzhiyun CFG_IOPAD_SMART18 = 0x6 << 0, 269*4882a593Smuzhiyun CFG_IOPAD_SMART16 = 0x7 << 0, 270*4882a593Smuzhiyun CFG_IOPAD_SMART8 = 0x8 << 0, 271*4882a593Smuzhiyun }; 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun #define IOPAD_DUMB24 0x0 274*4882a593Smuzhiyun 275*4882a593Smuzhiyun /* For LCD_SPU_IRQ_ENA */ 276*4882a593Smuzhiyun enum { 277*4882a593Smuzhiyun DMA_FRAME_IRQ0_ENA = 1 << 31, 278*4882a593Smuzhiyun DMA_FRAME_IRQ1_ENA = 1 << 30, 279*4882a593Smuzhiyun DMA_FRAME_IRQ_ENA = DMA_FRAME_IRQ0_ENA | DMA_FRAME_IRQ1_ENA, 280*4882a593Smuzhiyun DMA_FF_UNDERFLOW_ENA = 1 << 29, 281*4882a593Smuzhiyun GRA_FRAME_IRQ0_ENA = 1 << 27, 282*4882a593Smuzhiyun GRA_FRAME_IRQ1_ENA = 1 << 26, 283*4882a593Smuzhiyun GRA_FRAME_IRQ_ENA = GRA_FRAME_IRQ0_ENA | GRA_FRAME_IRQ1_ENA, 284*4882a593Smuzhiyun GRA_FF_UNDERFLOW_ENA = 1 << 25, 285*4882a593Smuzhiyun VSYNC_IRQ_ENA = 1 << 23, 286*4882a593Smuzhiyun DUMB_FRAMEDONE_ENA = 1 << 22, 287*4882a593Smuzhiyun TWC_FRAMEDONE_ENA = 1 << 21, 288*4882a593Smuzhiyun HWC_FRAMEDONE_ENA = 1 << 20, 289*4882a593Smuzhiyun SLV_IRQ_ENA = 1 << 19, 290*4882a593Smuzhiyun SPI_IRQ_ENA = 1 << 18, 291*4882a593Smuzhiyun PWRDN_IRQ_ENA = 1 << 17, 292*4882a593Smuzhiyun ERR_IRQ_ENA = 1 << 16, 293*4882a593Smuzhiyun CLEAN_SPU_IRQ_ISR = 0xffff, 294*4882a593Smuzhiyun }; 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun /* For LCD_SPU_IRQ_ISR */ 297*4882a593Smuzhiyun enum { 298*4882a593Smuzhiyun DMA_FRAME_IRQ0 = 1 << 31, 299*4882a593Smuzhiyun DMA_FRAME_IRQ1 = 1 << 30, 300*4882a593Smuzhiyun DMA_FRAME_IRQ = DMA_FRAME_IRQ0 | DMA_FRAME_IRQ1, 301*4882a593Smuzhiyun DMA_FF_UNDERFLOW = 1 << 29, 302*4882a593Smuzhiyun GRA_FRAME_IRQ0 = 1 << 27, 303*4882a593Smuzhiyun GRA_FRAME_IRQ1 = 1 << 26, 304*4882a593Smuzhiyun GRA_FRAME_IRQ = GRA_FRAME_IRQ0 | GRA_FRAME_IRQ1, 305*4882a593Smuzhiyun GRA_FF_UNDERFLOW = 1 << 25, 306*4882a593Smuzhiyun VSYNC_IRQ = 1 << 23, 307*4882a593Smuzhiyun DUMB_FRAMEDONE = 1 << 22, 308*4882a593Smuzhiyun TWC_FRAMEDONE = 1 << 21, 309*4882a593Smuzhiyun HWC_FRAMEDONE = 1 << 20, 310*4882a593Smuzhiyun SLV_IRQ = 1 << 19, 311*4882a593Smuzhiyun SPI_IRQ = 1 << 18, 312*4882a593Smuzhiyun PWRDN_IRQ = 1 << 17, 313*4882a593Smuzhiyun ERR_IRQ = 1 << 16, 314*4882a593Smuzhiyun DMA_FRAME_IRQ0_LEVEL = 1 << 15, 315*4882a593Smuzhiyun DMA_FRAME_IRQ1_LEVEL = 1 << 14, 316*4882a593Smuzhiyun DMA_FRAME_CNT_ISR = 3 << 12, 317*4882a593Smuzhiyun GRA_FRAME_IRQ0_LEVEL = 1 << 11, 318*4882a593Smuzhiyun GRA_FRAME_IRQ1_LEVEL = 1 << 10, 319*4882a593Smuzhiyun GRA_FRAME_CNT_ISR = 3 << 8, 320*4882a593Smuzhiyun VSYNC_IRQ_LEVEL = 1 << 7, 321*4882a593Smuzhiyun DUMB_FRAMEDONE_LEVEL = 1 << 6, 322*4882a593Smuzhiyun TWC_FRAMEDONE_LEVEL = 1 << 5, 323*4882a593Smuzhiyun HWC_FRAMEDONE_LEVEL = 1 << 4, 324*4882a593Smuzhiyun SLV_FF_EMPTY = 1 << 3, 325*4882a593Smuzhiyun DMA_FF_ALLEMPTY = 1 << 2, 326*4882a593Smuzhiyun GRA_FF_ALLEMPTY = 1 << 1, 327*4882a593Smuzhiyun PWRDN_IRQ_LEVEL = 1 << 0, 328*4882a593Smuzhiyun }; 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun #endif 331