xref: /OK3568_Linux_fs/kernel/drivers/gpu/drm/armada/armada_hw.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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