xref: /aosp_15_r20/external/igt-gpu-tools/lib/intel_reg.h (revision d83cc019efdc2edc6c4b16e9034a3ceb8d35d77c)
1*d83cc019SAndroid Build Coastguard Worker /* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h,v 1.13 2003/02/06 04:18:04 dawes Exp $ */
2*d83cc019SAndroid Build Coastguard Worker /**************************************************************************
3*d83cc019SAndroid Build Coastguard Worker 
4*d83cc019SAndroid Build Coastguard Worker Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
5*d83cc019SAndroid Build Coastguard Worker All Rights Reserved.
6*d83cc019SAndroid Build Coastguard Worker 
7*d83cc019SAndroid Build Coastguard Worker Permission is hereby granted, free of charge, to any person obtaining a
8*d83cc019SAndroid Build Coastguard Worker copy of this software and associated documentation files (the
9*d83cc019SAndroid Build Coastguard Worker "Software"), to deal in the Software without restriction, including
10*d83cc019SAndroid Build Coastguard Worker without limitation the rights to use, copy, modify, merge, publish,
11*d83cc019SAndroid Build Coastguard Worker distribute, sub license, and/or sell copies of the Software, and to
12*d83cc019SAndroid Build Coastguard Worker permit persons to whom the Software is furnished to do so, subject to
13*d83cc019SAndroid Build Coastguard Worker the following conditions:
14*d83cc019SAndroid Build Coastguard Worker 
15*d83cc019SAndroid Build Coastguard Worker The above copyright notice and this permission notice (including the
16*d83cc019SAndroid Build Coastguard Worker next paragraph) shall be included in all copies or substantial portions
17*d83cc019SAndroid Build Coastguard Worker of the Software.
18*d83cc019SAndroid Build Coastguard Worker 
19*d83cc019SAndroid Build Coastguard Worker THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20*d83cc019SAndroid Build Coastguard Worker OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21*d83cc019SAndroid Build Coastguard Worker MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
22*d83cc019SAndroid Build Coastguard Worker IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
23*d83cc019SAndroid Build Coastguard Worker ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24*d83cc019SAndroid Build Coastguard Worker TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25*d83cc019SAndroid Build Coastguard Worker SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26*d83cc019SAndroid Build Coastguard Worker 
27*d83cc019SAndroid Build Coastguard Worker **************************************************************************/
28*d83cc019SAndroid Build Coastguard Worker 
29*d83cc019SAndroid Build Coastguard Worker /* @file
30*d83cc019SAndroid Build Coastguard Worker  * Register names and fields for Intel graphics.
31*d83cc019SAndroid Build Coastguard Worker  */
32*d83cc019SAndroid Build Coastguard Worker 
33*d83cc019SAndroid Build Coastguard Worker /*
34*d83cc019SAndroid Build Coastguard Worker  * Authors:
35*d83cc019SAndroid Build Coastguard Worker  *   Keith Whitwell <[email protected]>
36*d83cc019SAndroid Build Coastguard Worker  *   Eric Anholt <[email protected]>
37*d83cc019SAndroid Build Coastguard Worker  *
38*d83cc019SAndroid Build Coastguard Worker  *   based on the i740 driver by
39*d83cc019SAndroid Build Coastguard Worker  *        Kevin E. Martin <[email protected]>
40*d83cc019SAndroid Build Coastguard Worker  *
41*d83cc019SAndroid Build Coastguard Worker  *
42*d83cc019SAndroid Build Coastguard Worker  */
43*d83cc019SAndroid Build Coastguard Worker 
44*d83cc019SAndroid Build Coastguard Worker #ifndef _I810_REG_H
45*d83cc019SAndroid Build Coastguard Worker #define _I810_REG_H
46*d83cc019SAndroid Build Coastguard Worker 
47*d83cc019SAndroid Build Coastguard Worker /* I/O register offsets
48*d83cc019SAndroid Build Coastguard Worker  */
49*d83cc019SAndroid Build Coastguard Worker #define SRX 0x3C4		/* p208 */
50*d83cc019SAndroid Build Coastguard Worker #define GRX 0x3CE		/* p213 */
51*d83cc019SAndroid Build Coastguard Worker #define ARX 0x3C0		/* p224 */
52*d83cc019SAndroid Build Coastguard Worker 
53*d83cc019SAndroid Build Coastguard Worker /* VGA Color Palette Registers */
54*d83cc019SAndroid Build Coastguard Worker #define DACMASK  0x3C6		/* p232 */
55*d83cc019SAndroid Build Coastguard Worker #define DACSTATE 0x3C7		/* p232 */
56*d83cc019SAndroid Build Coastguard Worker #define DACRX    0x3C7		/* p233 */
57*d83cc019SAndroid Build Coastguard Worker #define DACWX    0x3C8		/* p233 */
58*d83cc019SAndroid Build Coastguard Worker #define DACDATA  0x3C9		/* p233 */
59*d83cc019SAndroid Build Coastguard Worker 
60*d83cc019SAndroid Build Coastguard Worker /* CRT Controller Registers (CRX) */
61*d83cc019SAndroid Build Coastguard Worker #define START_ADDR_HI        0x0C /* p246 */
62*d83cc019SAndroid Build Coastguard Worker #define START_ADDR_LO        0x0D /* p247 */
63*d83cc019SAndroid Build Coastguard Worker #define VERT_SYNC_END        0x11 /* p249 */
64*d83cc019SAndroid Build Coastguard Worker #define EXT_VERT_TOTAL       0x30 /* p257 */
65*d83cc019SAndroid Build Coastguard Worker #define EXT_VERT_DISPLAY     0x31 /* p258 */
66*d83cc019SAndroid Build Coastguard Worker #define EXT_VERT_SYNC_START  0x32 /* p259 */
67*d83cc019SAndroid Build Coastguard Worker #define EXT_VERT_BLANK_START 0x33 /* p260 */
68*d83cc019SAndroid Build Coastguard Worker #define EXT_HORIZ_TOTAL      0x35 /* p261 */
69*d83cc019SAndroid Build Coastguard Worker #define EXT_HORIZ_BLANK      0x39 /* p261 */
70*d83cc019SAndroid Build Coastguard Worker #define EXT_START_ADDR       0x40 /* p262 */
71*d83cc019SAndroid Build Coastguard Worker #define EXT_START_ADDR_ENABLE    0x80
72*d83cc019SAndroid Build Coastguard Worker #define EXT_OFFSET           0x41 /* p263 */
73*d83cc019SAndroid Build Coastguard Worker #define EXT_START_ADDR_HI    0x42 /* p263 */
74*d83cc019SAndroid Build Coastguard Worker #define INTERLACE_CNTL       0x70 /* p264 */
75*d83cc019SAndroid Build Coastguard Worker #define INTERLACE_ENABLE         0x80
76*d83cc019SAndroid Build Coastguard Worker #define INTERLACE_DISABLE        0x00
77*d83cc019SAndroid Build Coastguard Worker 
78*d83cc019SAndroid Build Coastguard Worker /* Miscellaneous Output Register
79*d83cc019SAndroid Build Coastguard Worker  */
80*d83cc019SAndroid Build Coastguard Worker #define MSR_R          0x3CC	/* p207 */
81*d83cc019SAndroid Build Coastguard Worker #define MSR_W          0x3C2	/* p207 */
82*d83cc019SAndroid Build Coastguard Worker #define IO_ADDR_SELECT     0x01
83*d83cc019SAndroid Build Coastguard Worker 
84*d83cc019SAndroid Build Coastguard Worker #define MDA_BASE       0x3B0	/* p207 */
85*d83cc019SAndroid Build Coastguard Worker #define CGA_BASE       0x3D0	/* p207 */
86*d83cc019SAndroid Build Coastguard Worker 
87*d83cc019SAndroid Build Coastguard Worker /* CR80 - IO Control, p264
88*d83cc019SAndroid Build Coastguard Worker  */
89*d83cc019SAndroid Build Coastguard Worker #define IO_CTNL            0x80
90*d83cc019SAndroid Build Coastguard Worker #define EXTENDED_ATTR_CNTL     0x02
91*d83cc019SAndroid Build Coastguard Worker #define EXTENDED_CRTC_CNTL     0x01
92*d83cc019SAndroid Build Coastguard Worker 
93*d83cc019SAndroid Build Coastguard Worker /* GR10 - Address mapping, p221
94*d83cc019SAndroid Build Coastguard Worker  */
95*d83cc019SAndroid Build Coastguard Worker #define ADDRESS_MAPPING    0x10
96*d83cc019SAndroid Build Coastguard Worker #define PAGE_TO_LOCAL_MEM_ENABLE 0x10
97*d83cc019SAndroid Build Coastguard Worker #define GTT_MEM_MAP_ENABLE     0x08
98*d83cc019SAndroid Build Coastguard Worker #define PACKED_MODE_ENABLE     0x04
99*d83cc019SAndroid Build Coastguard Worker #define LINEAR_MODE_ENABLE     0x02
100*d83cc019SAndroid Build Coastguard Worker #define PAGE_MAPPING_ENABLE    0x01
101*d83cc019SAndroid Build Coastguard Worker 
102*d83cc019SAndroid Build Coastguard Worker #define HOTKEY_VBIOS_SWITCH_BLOCK	0x80
103*d83cc019SAndroid Build Coastguard Worker #define HOTKEY_SWITCH			0x20
104*d83cc019SAndroid Build Coastguard Worker #define HOTKEY_TOGGLE			0x10
105*d83cc019SAndroid Build Coastguard Worker 
106*d83cc019SAndroid Build Coastguard Worker /* Blitter control, p378
107*d83cc019SAndroid Build Coastguard Worker  */
108*d83cc019SAndroid Build Coastguard Worker #define BITBLT_CNTL        0x7000c
109*d83cc019SAndroid Build Coastguard Worker #define COLEXP_MODE            0x30
110*d83cc019SAndroid Build Coastguard Worker #define COLEXP_8BPP            0x00
111*d83cc019SAndroid Build Coastguard Worker #define COLEXP_16BPP           0x10
112*d83cc019SAndroid Build Coastguard Worker #define COLEXP_24BPP           0x20
113*d83cc019SAndroid Build Coastguard Worker #define COLEXP_RESERVED        0x30
114*d83cc019SAndroid Build Coastguard Worker #define BITBLT_STATUS          0x01
115*d83cc019SAndroid Build Coastguard Worker 
116*d83cc019SAndroid Build Coastguard Worker #define CHDECMISC	0x10111
117*d83cc019SAndroid Build Coastguard Worker #define DCC			0x10200
118*d83cc019SAndroid Build Coastguard Worker #define C0DRB0			0x10200
119*d83cc019SAndroid Build Coastguard Worker #define C0DRB1			0x10202
120*d83cc019SAndroid Build Coastguard Worker #define C0DRB2			0x10204
121*d83cc019SAndroid Build Coastguard Worker #define C0DRB3			0x10206
122*d83cc019SAndroid Build Coastguard Worker #define C0DRA01			0x10208
123*d83cc019SAndroid Build Coastguard Worker #define C0DRA23			0x1020a
124*d83cc019SAndroid Build Coastguard Worker #define C1DRB0			0x10600
125*d83cc019SAndroid Build Coastguard Worker #define C1DRB1			0x10602
126*d83cc019SAndroid Build Coastguard Worker #define C1DRB2			0x10604
127*d83cc019SAndroid Build Coastguard Worker #define C1DRB3			0x10606
128*d83cc019SAndroid Build Coastguard Worker #define C1DRA01			0x10608
129*d83cc019SAndroid Build Coastguard Worker #define C1DRA23			0x1060a
130*d83cc019SAndroid Build Coastguard Worker 
131*d83cc019SAndroid Build Coastguard Worker /* p375.
132*d83cc019SAndroid Build Coastguard Worker  */
133*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_CNTL       0x70008
134*d83cc019SAndroid Build Coastguard Worker #define VGA_WRAP_MODE          0x02
135*d83cc019SAndroid Build Coastguard Worker #define VGA_WRAP_AT_256KB      0x00
136*d83cc019SAndroid Build Coastguard Worker #define VGA_NO_WRAP            0x02
137*d83cc019SAndroid Build Coastguard Worker #define GUI_MODE               0x01
138*d83cc019SAndroid Build Coastguard Worker #define STANDARD_VGA_MODE      0x00
139*d83cc019SAndroid Build Coastguard Worker #define HIRES_MODE             0x01
140*d83cc019SAndroid Build Coastguard Worker 
141*d83cc019SAndroid Build Coastguard Worker /* p375
142*d83cc019SAndroid Build Coastguard Worker  */
143*d83cc019SAndroid Build Coastguard Worker #define PIXPIPE_CONFIG_0   0x70009
144*d83cc019SAndroid Build Coastguard Worker #define DAC_8_BIT              0x80
145*d83cc019SAndroid Build Coastguard Worker #define DAC_6_BIT              0x00
146*d83cc019SAndroid Build Coastguard Worker #define HW_CURSOR_ENABLE       0x10
147*d83cc019SAndroid Build Coastguard Worker #define EXTENDED_PALETTE       0x01
148*d83cc019SAndroid Build Coastguard Worker 
149*d83cc019SAndroid Build Coastguard Worker /* p375
150*d83cc019SAndroid Build Coastguard Worker  */
151*d83cc019SAndroid Build Coastguard Worker #define PIXPIPE_CONFIG_1   0x7000a
152*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_COLOR_MODE     0x0F
153*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_VGA_MODE       0x00
154*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_8BPP_MODE      0x02
155*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_15BPP_MODE     0x04
156*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_16BPP_MODE     0x05
157*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_24BPP_MODE     0x06
158*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_32BPP_MODE     0x07
159*d83cc019SAndroid Build Coastguard Worker 
160*d83cc019SAndroid Build Coastguard Worker /* p375
161*d83cc019SAndroid Build Coastguard Worker  */
162*d83cc019SAndroid Build Coastguard Worker #define PIXPIPE_CONFIG_2   0x7000b
163*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_GAMMA_ENABLE   0x08
164*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_GAMMA_DISABLE  0x00
165*d83cc019SAndroid Build Coastguard Worker #define OVERLAY_GAMMA_ENABLE   0x04
166*d83cc019SAndroid Build Coastguard Worker #define OVERLAY_GAMMA_DISABLE  0x00
167*d83cc019SAndroid Build Coastguard Worker 
168*d83cc019SAndroid Build Coastguard Worker 
169*d83cc019SAndroid Build Coastguard Worker /* p380
170*d83cc019SAndroid Build Coastguard Worker  */
171*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_BASE       0x70020
172*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_BASE_MASK  0x03fffffc
173*d83cc019SAndroid Build Coastguard Worker 
174*d83cc019SAndroid Build Coastguard Worker 
175*d83cc019SAndroid Build Coastguard Worker /* Cursor control registers, pp383-384
176*d83cc019SAndroid Build Coastguard Worker  */
177*d83cc019SAndroid Build Coastguard Worker /* Desktop (845G, 865G) */
178*d83cc019SAndroid Build Coastguard Worker #define CURSOR_CONTROL     0x70080
179*d83cc019SAndroid Build Coastguard Worker #define CURSOR_ENABLE          0x80000000
180*d83cc019SAndroid Build Coastguard Worker #define CURSOR_GAMMA_ENABLE    0x40000000
181*d83cc019SAndroid Build Coastguard Worker #define CURSOR_STRIDE_MASK     0x30000000
182*d83cc019SAndroid Build Coastguard Worker #define CURSOR_FORMAT_SHIFT    24
183*d83cc019SAndroid Build Coastguard Worker #define CURSOR_FORMAT_MASK     (0x07 << CURSOR_FORMAT_SHIFT)
184*d83cc019SAndroid Build Coastguard Worker #define CURSOR_FORMAT_2C       (0x00 << CURSOR_FORMAT_SHIFT)
185*d83cc019SAndroid Build Coastguard Worker #define CURSOR_FORMAT_3C       (0x01 << CURSOR_FORMAT_SHIFT)
186*d83cc019SAndroid Build Coastguard Worker #define CURSOR_FORMAT_4C       (0x02 << CURSOR_FORMAT_SHIFT)
187*d83cc019SAndroid Build Coastguard Worker #define CURSOR_FORMAT_ARGB     (0x04 << CURSOR_FORMAT_SHIFT)
188*d83cc019SAndroid Build Coastguard Worker #define CURSOR_FORMAT_XRGB     (0x05 << CURSOR_FORMAT_SHIFT)
189*d83cc019SAndroid Build Coastguard Worker 
190*d83cc019SAndroid Build Coastguard Worker /* Mobile and i810 */
191*d83cc019SAndroid Build Coastguard Worker #define CURSOR_A_CONTROL   CURSOR_CONTROL
192*d83cc019SAndroid Build Coastguard Worker #define CURSOR_ORIGIN_SCREEN   0x00	/* i810 only */
193*d83cc019SAndroid Build Coastguard Worker #define CURSOR_ORIGIN_DISPLAY  0x1	/* i810 only */
194*d83cc019SAndroid Build Coastguard Worker #define CURSOR_MODE            0x27
195*d83cc019SAndroid Build Coastguard Worker #define CURSOR_MODE_DISABLE    0x00
196*d83cc019SAndroid Build Coastguard Worker #define CURSOR_MODE_32_4C_AX   0x01	/* i810 only */
197*d83cc019SAndroid Build Coastguard Worker #define CURSOR_MODE_64_3C      0x04
198*d83cc019SAndroid Build Coastguard Worker #define CURSOR_MODE_64_4C_AX   0x05
199*d83cc019SAndroid Build Coastguard Worker #define CURSOR_MODE_64_4C      0x06
200*d83cc019SAndroid Build Coastguard Worker #define CURSOR_MODE_64_32B_AX  0x07
201*d83cc019SAndroid Build Coastguard Worker #define CURSOR_MODE_64_ARGB_AX (0x20 | CURSOR_MODE_64_32B_AX)
202*d83cc019SAndroid Build Coastguard Worker #define MCURSOR_PIPE_SELECT    (1 << 28)
203*d83cc019SAndroid Build Coastguard Worker #define MCURSOR_PIPE_A         0x00
204*d83cc019SAndroid Build Coastguard Worker #define MCURSOR_PIPE_B         (1 << 28)
205*d83cc019SAndroid Build Coastguard Worker #define MCURSOR_GAMMA_ENABLE   (1 << 26)
206*d83cc019SAndroid Build Coastguard Worker #define MCURSOR_MEM_TYPE_LOCAL (1 << 25)
207*d83cc019SAndroid Build Coastguard Worker 
208*d83cc019SAndroid Build Coastguard Worker 
209*d83cc019SAndroid Build Coastguard Worker #define CURSOR_BASEADDR    0x70084
210*d83cc019SAndroid Build Coastguard Worker #define CURSOR_A_BASE      CURSOR_BASEADDR
211*d83cc019SAndroid Build Coastguard Worker #define CURSOR_BASEADDR_MASK 0x1FFFFF00
212*d83cc019SAndroid Build Coastguard Worker #define CURSOR_A_POSITION  0x70088
213*d83cc019SAndroid Build Coastguard Worker #define CURSOR_POS_SIGN        0x8000
214*d83cc019SAndroid Build Coastguard Worker #define CURSOR_POS_MASK        0x007FF
215*d83cc019SAndroid Build Coastguard Worker #define CURSOR_X_SHIFT	       0
216*d83cc019SAndroid Build Coastguard Worker #define CURSOR_Y_SHIFT         16
217*d83cc019SAndroid Build Coastguard Worker #define CURSOR_X_LO        0x70088
218*d83cc019SAndroid Build Coastguard Worker #define CURSOR_X_HI        0x70089
219*d83cc019SAndroid Build Coastguard Worker #define CURSOR_X_POS           0x00
220*d83cc019SAndroid Build Coastguard Worker #define CURSOR_X_NEG           0x80
221*d83cc019SAndroid Build Coastguard Worker #define CURSOR_Y_LO        0x7008A
222*d83cc019SAndroid Build Coastguard Worker #define CURSOR_Y_HI        0x7008B
223*d83cc019SAndroid Build Coastguard Worker #define CURSOR_Y_POS           0x00
224*d83cc019SAndroid Build Coastguard Worker #define CURSOR_Y_NEG           0x80
225*d83cc019SAndroid Build Coastguard Worker 
226*d83cc019SAndroid Build Coastguard Worker #define CURSOR_A_PALETTE0  0x70090
227*d83cc019SAndroid Build Coastguard Worker #define CURSOR_A_PALETTE1  0x70094
228*d83cc019SAndroid Build Coastguard Worker #define CURSOR_A_PALETTE2  0x70098
229*d83cc019SAndroid Build Coastguard Worker #define CURSOR_A_PALETTE3  0x7009C
230*d83cc019SAndroid Build Coastguard Worker 
231*d83cc019SAndroid Build Coastguard Worker #define CURSOR_SIZE	   0x700A0
232*d83cc019SAndroid Build Coastguard Worker #define CURSOR_SIZE_MASK       0x3FF
233*d83cc019SAndroid Build Coastguard Worker #define CURSOR_SIZE_HSHIFT     0
234*d83cc019SAndroid Build Coastguard Worker #define CURSOR_SIZE_VSHIFT     12
235*d83cc019SAndroid Build Coastguard Worker 
236*d83cc019SAndroid Build Coastguard Worker #define CURSOR_B_CONTROL   0x700C0
237*d83cc019SAndroid Build Coastguard Worker #define CURSOR_B_BASE      0x700C4
238*d83cc019SAndroid Build Coastguard Worker #define CURSOR_B_POSITION  0x700C8
239*d83cc019SAndroid Build Coastguard Worker #define CURSOR_B_PALETTE0  0x700D0
240*d83cc019SAndroid Build Coastguard Worker #define CURSOR_B_PALETTE1  0x700D4
241*d83cc019SAndroid Build Coastguard Worker #define CURSOR_B_PALETTE2  0x700D8
242*d83cc019SAndroid Build Coastguard Worker #define CURSOR_B_PALETTE3  0x700DC
243*d83cc019SAndroid Build Coastguard Worker 
244*d83cc019SAndroid Build Coastguard Worker 
245*d83cc019SAndroid Build Coastguard Worker /* Similar registers exist in Device 0 on the i810 (pp55-65), but I'm
246*d83cc019SAndroid Build Coastguard Worker  * not sure they refer to local (graphics) memory.
247*d83cc019SAndroid Build Coastguard Worker  *
248*d83cc019SAndroid Build Coastguard Worker  * These details are for the local memory control registers,
249*d83cc019SAndroid Build Coastguard Worker  * (pp301-310).  The test machines are not equiped with local memory,
250*d83cc019SAndroid Build Coastguard Worker  * so nothing is tested.  Only a single row seems to be supported.
251*d83cc019SAndroid Build Coastguard Worker  */
252*d83cc019SAndroid Build Coastguard Worker #define DRAM_ROW_TYPE      0x3000
253*d83cc019SAndroid Build Coastguard Worker #define DRAM_ROW_0             0x01
254*d83cc019SAndroid Build Coastguard Worker #define DRAM_ROW_0_SDRAM       0x01
255*d83cc019SAndroid Build Coastguard Worker #define DRAM_ROW_0_EMPTY       0x00
256*d83cc019SAndroid Build Coastguard Worker #define DRAM_ROW_CNTL_LO   0x3001
257*d83cc019SAndroid Build Coastguard Worker #define DRAM_PAGE_MODE_CTRL    0x10
258*d83cc019SAndroid Build Coastguard Worker #define DRAM_RAS_TO_CAS_OVRIDE 0x08
259*d83cc019SAndroid Build Coastguard Worker #define DRAM_CAS_LATENCY       0x04
260*d83cc019SAndroid Build Coastguard Worker #define DRAM_RAS_TIMING        0x02
261*d83cc019SAndroid Build Coastguard Worker #define DRAM_RAS_PRECHARGE     0x01
262*d83cc019SAndroid Build Coastguard Worker #define DRAM_ROW_CNTL_HI   0x3002
263*d83cc019SAndroid Build Coastguard Worker #define DRAM_REFRESH_RATE      0x18
264*d83cc019SAndroid Build Coastguard Worker #define DRAM_REFRESH_DISABLE   0x00
265*d83cc019SAndroid Build Coastguard Worker #define DRAM_REFRESH_60HZ      0x08
266*d83cc019SAndroid Build Coastguard Worker #define DRAM_REFRESH_FAST_TEST 0x10
267*d83cc019SAndroid Build Coastguard Worker #define DRAM_REFRESH_RESERVED  0x18
268*d83cc019SAndroid Build Coastguard Worker #define DRAM_SMS               0x07
269*d83cc019SAndroid Build Coastguard Worker #define DRAM_SMS_NORMAL        0x00
270*d83cc019SAndroid Build Coastguard Worker #define DRAM_SMS_NOP_ENABLE    0x01
271*d83cc019SAndroid Build Coastguard Worker #define DRAM_SMS_ABPCE         0x02
272*d83cc019SAndroid Build Coastguard Worker #define DRAM_SMS_MRCE          0x03
273*d83cc019SAndroid Build Coastguard Worker #define DRAM_SMS_CBRCE         0x04
274*d83cc019SAndroid Build Coastguard Worker 
275*d83cc019SAndroid Build Coastguard Worker /* p307
276*d83cc019SAndroid Build Coastguard Worker  */
277*d83cc019SAndroid Build Coastguard Worker #define DPMS_SYNC_SELECT   0x5002
278*d83cc019SAndroid Build Coastguard Worker #define VSYNC_CNTL             0x08
279*d83cc019SAndroid Build Coastguard Worker #define VSYNC_ON               0x00
280*d83cc019SAndroid Build Coastguard Worker #define VSYNC_OFF              0x08
281*d83cc019SAndroid Build Coastguard Worker #define HSYNC_CNTL             0x02
282*d83cc019SAndroid Build Coastguard Worker #define HSYNC_ON               0x00
283*d83cc019SAndroid Build Coastguard Worker #define HSYNC_OFF              0x02
284*d83cc019SAndroid Build Coastguard Worker 
285*d83cc019SAndroid Build Coastguard Worker #define GPIOA			0x5010
286*d83cc019SAndroid Build Coastguard Worker #define GPIOB			0x5014
287*d83cc019SAndroid Build Coastguard Worker #define GPIOC			0x5018
288*d83cc019SAndroid Build Coastguard Worker #define GPIOD			0x501c
289*d83cc019SAndroid Build Coastguard Worker #define GPIOE			0x5020
290*d83cc019SAndroid Build Coastguard Worker #define GPIOF			0x5024
291*d83cc019SAndroid Build Coastguard Worker #define GPIOG			0x5028
292*d83cc019SAndroid Build Coastguard Worker #define GPIOH			0x502c
293*d83cc019SAndroid Build Coastguard Worker # define GPIO_CLOCK_DIR_MASK		(1 << 0)
294*d83cc019SAndroid Build Coastguard Worker # define GPIO_CLOCK_DIR_IN		(0 << 1)
295*d83cc019SAndroid Build Coastguard Worker # define GPIO_CLOCK_DIR_OUT		(1 << 1)
296*d83cc019SAndroid Build Coastguard Worker # define GPIO_CLOCK_VAL_MASK		(1 << 2)
297*d83cc019SAndroid Build Coastguard Worker # define GPIO_CLOCK_VAL_OUT		(1 << 3)
298*d83cc019SAndroid Build Coastguard Worker # define GPIO_CLOCK_VAL_IN		(1 << 4)
299*d83cc019SAndroid Build Coastguard Worker # define GPIO_CLOCK_PULLUP_DISABLE	(1 << 5)
300*d83cc019SAndroid Build Coastguard Worker # define GPIO_DATA_DIR_MASK		(1 << 8)
301*d83cc019SAndroid Build Coastguard Worker # define GPIO_DATA_DIR_IN		(0 << 9)
302*d83cc019SAndroid Build Coastguard Worker # define GPIO_DATA_DIR_OUT		(1 << 9)
303*d83cc019SAndroid Build Coastguard Worker # define GPIO_DATA_VAL_MASK		(1 << 10)
304*d83cc019SAndroid Build Coastguard Worker # define GPIO_DATA_VAL_OUT		(1 << 11)
305*d83cc019SAndroid Build Coastguard Worker # define GPIO_DATA_VAL_IN		(1 << 12)
306*d83cc019SAndroid Build Coastguard Worker # define GPIO_DATA_PULLUP_DISABLE	(1 << 13)
307*d83cc019SAndroid Build Coastguard Worker 
308*d83cc019SAndroid Build Coastguard Worker /* GMBus registers for hardware-assisted (non-bitbanging) I2C access */
309*d83cc019SAndroid Build Coastguard Worker #define GMBUS0			0x5100
310*d83cc019SAndroid Build Coastguard Worker #define GMBUS1			0x5104
311*d83cc019SAndroid Build Coastguard Worker #define GMBUS2			0x5108
312*d83cc019SAndroid Build Coastguard Worker #define GMBUS3			0x510c
313*d83cc019SAndroid Build Coastguard Worker #define GMBUS4			0x5110
314*d83cc019SAndroid Build Coastguard Worker #define GMBUS5			0x5120
315*d83cc019SAndroid Build Coastguard Worker 
316*d83cc019SAndroid Build Coastguard Worker /* p317, 319
317*d83cc019SAndroid Build Coastguard Worker  */
318*d83cc019SAndroid Build Coastguard Worker #define VCLK2_VCO_M        0x6008 /* treat as 16 bit? (includes msbs) */
319*d83cc019SAndroid Build Coastguard Worker #define VCLK2_VCO_N        0x600a
320*d83cc019SAndroid Build Coastguard Worker #define VCLK2_VCO_DIV_SEL  0x6012
321*d83cc019SAndroid Build Coastguard Worker 
322*d83cc019SAndroid Build Coastguard Worker #define VCLK_DIVISOR_VGA0   0x6000
323*d83cc019SAndroid Build Coastguard Worker #define VCLK_DIVISOR_VGA1   0x6004
324*d83cc019SAndroid Build Coastguard Worker #define VCLK_POST_DIV	    0x6010
325*d83cc019SAndroid Build Coastguard Worker /* Selects a post divisor of 4 instead of 2. */
326*d83cc019SAndroid Build Coastguard Worker # define VGA1_PD_P2_DIV_4	(1 << 15)
327*d83cc019SAndroid Build Coastguard Worker /* Overrides the p2 post divisor field */
328*d83cc019SAndroid Build Coastguard Worker # define VGA1_PD_P1_DIV_2	(1 << 13)
329*d83cc019SAndroid Build Coastguard Worker # define VGA1_PD_P1_SHIFT	8
330*d83cc019SAndroid Build Coastguard Worker /* P1 value is 2 greater than this field */
331*d83cc019SAndroid Build Coastguard Worker # define VGA1_PD_P1_MASK	(0x1f << 8)
332*d83cc019SAndroid Build Coastguard Worker /* Selects a post divisor of 4 instead of 2. */
333*d83cc019SAndroid Build Coastguard Worker # define VGA0_PD_P2_DIV_4	(1 << 7)
334*d83cc019SAndroid Build Coastguard Worker /* Overrides the p2 post divisor field */
335*d83cc019SAndroid Build Coastguard Worker # define VGA0_PD_P1_DIV_2	(1 << 5)
336*d83cc019SAndroid Build Coastguard Worker # define VGA0_PD_P1_SHIFT	0
337*d83cc019SAndroid Build Coastguard Worker /* P1 value is 2 greater than this field */
338*d83cc019SAndroid Build Coastguard Worker # define VGA0_PD_P1_MASK	(0x1f << 0)
339*d83cc019SAndroid Build Coastguard Worker 
340*d83cc019SAndroid Build Coastguard Worker #define POST_DIV_SELECT        0x70
341*d83cc019SAndroid Build Coastguard Worker #define POST_DIV_1             0x00
342*d83cc019SAndroid Build Coastguard Worker #define POST_DIV_2             0x10
343*d83cc019SAndroid Build Coastguard Worker #define POST_DIV_4             0x20
344*d83cc019SAndroid Build Coastguard Worker #define POST_DIV_8             0x30
345*d83cc019SAndroid Build Coastguard Worker #define POST_DIV_16            0x40
346*d83cc019SAndroid Build Coastguard Worker #define POST_DIV_32            0x50
347*d83cc019SAndroid Build Coastguard Worker #define VCO_LOOP_DIV_BY_4M     0x00
348*d83cc019SAndroid Build Coastguard Worker #define VCO_LOOP_DIV_BY_16M    0x04
349*d83cc019SAndroid Build Coastguard Worker 
350*d83cc019SAndroid Build Coastguard Worker 
351*d83cc019SAndroid Build Coastguard Worker /* Instruction Parser Mode Register
352*d83cc019SAndroid Build Coastguard Worker  *    - p281
353*d83cc019SAndroid Build Coastguard Worker  *    - 2 new bits.
354*d83cc019SAndroid Build Coastguard Worker  */
355*d83cc019SAndroid Build Coastguard Worker #define INST_PM                  0x20c0
356*d83cc019SAndroid Build Coastguard Worker #define AGP_SYNC_PACKET_FLUSH_ENABLE 0x20 /* reserved */
357*d83cc019SAndroid Build Coastguard Worker #define SYNC_PACKET_FLUSH_ENABLE     0x10
358*d83cc019SAndroid Build Coastguard Worker #define TWO_D_INST_DISABLE           0x08
359*d83cc019SAndroid Build Coastguard Worker #define THREE_D_INST_DISABLE         0x04
360*d83cc019SAndroid Build Coastguard Worker #define STATE_VAR_UPDATE_DISABLE     0x02
361*d83cc019SAndroid Build Coastguard Worker #define PAL_STIP_DISABLE             0x01
362*d83cc019SAndroid Build Coastguard Worker #define GEN6_GLOBAL_DEBUG_ENABLE     0x10
363*d83cc019SAndroid Build Coastguard Worker 
364*d83cc019SAndroid Build Coastguard Worker 
365*d83cc019SAndroid Build Coastguard Worker #define MEMMODE                  0x20dc
366*d83cc019SAndroid Build Coastguard Worker 
367*d83cc019SAndroid Build Coastguard Worker 
368*d83cc019SAndroid Build Coastguard Worker /* Instruction parser error register.  p279
369*d83cc019SAndroid Build Coastguard Worker  */
370*d83cc019SAndroid Build Coastguard Worker #define IPEIR                  0x2088
371*d83cc019SAndroid Build Coastguard Worker #define IPEHR                  0x208C
372*d83cc019SAndroid Build Coastguard Worker 
373*d83cc019SAndroid Build Coastguard Worker #define INSTDONE                0x2090
374*d83cc019SAndroid Build Coastguard Worker #define NOP_ID                   0x2094
375*d83cc019SAndroid Build Coastguard Worker 
376*d83cc019SAndroid Build Coastguard Worker #define SCPD0                    0x209c	/* debug */
377*d83cc019SAndroid Build Coastguard Worker #define INST_PS                  0x20c4
378*d83cc019SAndroid Build Coastguard Worker #define IPEIR_I965                  0x2064 /* i965 */
379*d83cc019SAndroid Build Coastguard Worker #define IPEHR_I965                  0x2068 /* i965 */
380*d83cc019SAndroid Build Coastguard Worker #define INSTDONE_I965              0x206c
381*d83cc019SAndroid Build Coastguard Worker #define GEN6_INSTDONE_1		0x206c
382*d83cc019SAndroid Build Coastguard Worker #define INST_PS_I965                0x2070
383*d83cc019SAndroid Build Coastguard Worker 
384*d83cc019SAndroid Build Coastguard Worker /* Current active ring head address:
385*d83cc019SAndroid Build Coastguard Worker  */
386*d83cc019SAndroid Build Coastguard Worker #define ACTHD_I965                 0x2074
387*d83cc019SAndroid Build Coastguard Worker #define ACTHD			   0x20C8
388*d83cc019SAndroid Build Coastguard Worker 
389*d83cc019SAndroid Build Coastguard Worker /* Current primary/secondary DMA fetch addresses:
390*d83cc019SAndroid Build Coastguard Worker  */
391*d83cc019SAndroid Build Coastguard Worker #define DMA_FADD_P             0x2078
392*d83cc019SAndroid Build Coastguard Worker #define DMA_FADD_S               0x20d4
393*d83cc019SAndroid Build Coastguard Worker #define INSTDONE_1              0x207c
394*d83cc019SAndroid Build Coastguard Worker #define GEN6_INSTDONE_2		0x207c
395*d83cc019SAndroid Build Coastguard Worker 
396*d83cc019SAndroid Build Coastguard Worker #define CACHE_MODE_0           0x2120
397*d83cc019SAndroid Build Coastguard Worker #define CACHE_MODE_1           0x2124
398*d83cc019SAndroid Build Coastguard Worker #define MI_MODE		       0x209c
399*d83cc019SAndroid Build Coastguard Worker #define MI_DISPLAY_POWER_DOWN  0x20e0
400*d83cc019SAndroid Build Coastguard Worker #define MI_ARB_STATE           0x20e4
401*d83cc019SAndroid Build Coastguard Worker #define MI_RDRET_STATE	       0x20fc
402*d83cc019SAndroid Build Coastguard Worker 
403*d83cc019SAndroid Build Coastguard Worker /* Start addresses for each of the primary rings:
404*d83cc019SAndroid Build Coastguard Worker  */
405*d83cc019SAndroid Build Coastguard Worker #define PR0_STR                  0x20f0
406*d83cc019SAndroid Build Coastguard Worker #define PR1_STR                  0x20f4
407*d83cc019SAndroid Build Coastguard Worker #define PR2_STR                  0x20f8
408*d83cc019SAndroid Build Coastguard Worker 
409*d83cc019SAndroid Build Coastguard Worker #define WIZ_CTL                0x7c00
410*d83cc019SAndroid Build Coastguard Worker #define WIZ_CTL_SINGLE_SUBSPAN  (1<<6)
411*d83cc019SAndroid Build Coastguard Worker #define WIZ_CTL_IGNORE_STALLS  (1<<5)
412*d83cc019SAndroid Build Coastguard Worker 
413*d83cc019SAndroid Build Coastguard Worker #define SVG_WORK_CTL           0x7408
414*d83cc019SAndroid Build Coastguard Worker 
415*d83cc019SAndroid Build Coastguard Worker #define TS_CTL                 0x7e00
416*d83cc019SAndroid Build Coastguard Worker #define TS_MUX_ERR_CODE        (0<<8)
417*d83cc019SAndroid Build Coastguard Worker #define TS_MUX_URB_0           (1<<8)
418*d83cc019SAndroid Build Coastguard Worker #define TS_MUX_DISPATCH_ID_0   (10<<8)
419*d83cc019SAndroid Build Coastguard Worker #define TS_MUX_ERR_CODE_VALID  (15<<8)
420*d83cc019SAndroid Build Coastguard Worker #define TS_MUX_TID_0           (16<<8)
421*d83cc019SAndroid Build Coastguard Worker #define TS_MUX_EUID_0          (18<<8)
422*d83cc019SAndroid Build Coastguard Worker #define TS_MUX_FFID_0          (22<<8)
423*d83cc019SAndroid Build Coastguard Worker #define TS_MUX_EOT             (26<<8)
424*d83cc019SAndroid Build Coastguard Worker #define TS_MUX_SIDEBAND_0      (27<<8)
425*d83cc019SAndroid Build Coastguard Worker #define TS_SNAP_ALL_CHILD      (1<<2)
426*d83cc019SAndroid Build Coastguard Worker #define TS_SNAP_ALL_ROOT       (1<<1)
427*d83cc019SAndroid Build Coastguard Worker #define TS_SNAP_ENABLE         (1<<0)
428*d83cc019SAndroid Build Coastguard Worker 
429*d83cc019SAndroid Build Coastguard Worker #define TS_DEBUG_DATA          0x7e0c
430*d83cc019SAndroid Build Coastguard Worker 
431*d83cc019SAndroid Build Coastguard Worker #define TD_CTL                 0x8000
432*d83cc019SAndroid Build Coastguard Worker #define TD_CTL2                0x8004
433*d83cc019SAndroid Build Coastguard Worker 
434*d83cc019SAndroid Build Coastguard Worker 
435*d83cc019SAndroid Build Coastguard Worker #define ECOSKPD 0x21d0
436*d83cc019SAndroid Build Coastguard Worker #define EXCC    0x2028
437*d83cc019SAndroid Build Coastguard Worker 
438*d83cc019SAndroid Build Coastguard Worker /* I965 debug regs:
439*d83cc019SAndroid Build Coastguard Worker  */
440*d83cc019SAndroid Build Coastguard Worker #define IA_VERTICES_COUNT_QW   0x2310
441*d83cc019SAndroid Build Coastguard Worker #define IA_PRIMITIVES_COUNT_QW 0x2318
442*d83cc019SAndroid Build Coastguard Worker #define VS_INVOCATION_COUNT_QW 0x2320
443*d83cc019SAndroid Build Coastguard Worker #define GS_INVOCATION_COUNT_QW 0x2328
444*d83cc019SAndroid Build Coastguard Worker #define GS_PRIMITIVES_COUNT_QW 0x2330
445*d83cc019SAndroid Build Coastguard Worker #define CL_INVOCATION_COUNT_QW 0x2338
446*d83cc019SAndroid Build Coastguard Worker #define CL_PRIMITIVES_COUNT_QW 0x2340
447*d83cc019SAndroid Build Coastguard Worker #define PS_INVOCATION_COUNT_QW 0x2348
448*d83cc019SAndroid Build Coastguard Worker #define PS_DEPTH_COUNT_QW      0x2350
449*d83cc019SAndroid Build Coastguard Worker #define TIMESTAMP_QW           0x2358
450*d83cc019SAndroid Build Coastguard Worker #define CLKCMP_QW              0x2360
451*d83cc019SAndroid Build Coastguard Worker 
452*d83cc019SAndroid Build Coastguard Worker 
453*d83cc019SAndroid Build Coastguard Worker 
454*d83cc019SAndroid Build Coastguard Worker 
455*d83cc019SAndroid Build Coastguard Worker 
456*d83cc019SAndroid Build Coastguard Worker 
457*d83cc019SAndroid Build Coastguard Worker /* General error reporting regs, p296
458*d83cc019SAndroid Build Coastguard Worker  */
459*d83cc019SAndroid Build Coastguard Worker #define EIR               0x20B0
460*d83cc019SAndroid Build Coastguard Worker #define EMR               0x20B4
461*d83cc019SAndroid Build Coastguard Worker #define ESR               0x20B8
462*d83cc019SAndroid Build Coastguard Worker # define ERR_VERTEX_MAX				(1 << 5) /* lpt/cst */
463*d83cc019SAndroid Build Coastguard Worker # define ERR_PGTBL_ERROR			(1 << 4)
464*d83cc019SAndroid Build Coastguard Worker # define ERR_DISPLAY_OVERLAY_UNDERRUN		(1 << 3)
465*d83cc019SAndroid Build Coastguard Worker # define ERR_MAIN_MEMORY_REFRESH		(1 << 1)
466*d83cc019SAndroid Build Coastguard Worker # define ERR_INSTRUCTION_ERROR			(1 << 0)
467*d83cc019SAndroid Build Coastguard Worker 
468*d83cc019SAndroid Build Coastguard Worker 
469*d83cc019SAndroid Build Coastguard Worker /* Interrupt Control Registers
470*d83cc019SAndroid Build Coastguard Worker  *   - new bits for i810
471*d83cc019SAndroid Build Coastguard Worker  *   - new register hwstam (mask)
472*d83cc019SAndroid Build Coastguard Worker  */
473*d83cc019SAndroid Build Coastguard Worker #define HWS_PGA		     0x2080
474*d83cc019SAndroid Build Coastguard Worker #define PWRCTXA		     0x2088 /* 965GM+ only */
475*d83cc019SAndroid Build Coastguard Worker #define   PWRCTX_EN	     (1<<0)
476*d83cc019SAndroid Build Coastguard Worker #define HWSTAM               0x2098 /* p290 */
477*d83cc019SAndroid Build Coastguard Worker #define IER                  0x20a0 /* p291 */
478*d83cc019SAndroid Build Coastguard Worker #define IIR                  0x20a4 /* p292 */
479*d83cc019SAndroid Build Coastguard Worker #define IMR                  0x20a8 /* p293 */
480*d83cc019SAndroid Build Coastguard Worker #define ISR                  0x20ac /* p294 */
481*d83cc019SAndroid Build Coastguard Worker #define HW_ERROR                 0x8000
482*d83cc019SAndroid Build Coastguard Worker #define SYNC_STATUS_TOGGLE       0x1000
483*d83cc019SAndroid Build Coastguard Worker #define DPY_0_FLIP_PENDING       0x0800
484*d83cc019SAndroid Build Coastguard Worker #define DPY_1_FLIP_PENDING       0x0400	/* not implemented on i810 */
485*d83cc019SAndroid Build Coastguard Worker #define OVL_0_FLIP_PENDING       0x0200
486*d83cc019SAndroid Build Coastguard Worker #define OVL_1_FLIP_PENDING       0x0100	/* not implemented on i810 */
487*d83cc019SAndroid Build Coastguard Worker #define DPY_0_VBLANK             0x0080
488*d83cc019SAndroid Build Coastguard Worker #define DPY_0_EVENT              0x0040
489*d83cc019SAndroid Build Coastguard Worker #define DPY_1_VBLANK             0x0020	/* not implemented on i810 */
490*d83cc019SAndroid Build Coastguard Worker #define DPY_1_EVENT              0x0010	/* not implemented on i810 */
491*d83cc019SAndroid Build Coastguard Worker #define HOST_PORT_EVENT          0x0008	/*  */
492*d83cc019SAndroid Build Coastguard Worker #define CAPTURE_EVENT            0x0004	/*  */
493*d83cc019SAndroid Build Coastguard Worker #define USER_DEFINED             0x0002
494*d83cc019SAndroid Build Coastguard Worker #define BREAKPOINT               0x0001
495*d83cc019SAndroid Build Coastguard Worker 
496*d83cc019SAndroid Build Coastguard Worker 
497*d83cc019SAndroid Build Coastguard Worker #define INTR_RESERVED            (0x6000 | 		\
498*d83cc019SAndroid Build Coastguard Worker 				  DPY_1_FLIP_PENDING |	\
499*d83cc019SAndroid Build Coastguard Worker 				  OVL_1_FLIP_PENDING |	\
500*d83cc019SAndroid Build Coastguard Worker 				  DPY_1_VBLANK |	\
501*d83cc019SAndroid Build Coastguard Worker 				  DPY_1_EVENT |		\
502*d83cc019SAndroid Build Coastguard Worker 				  HOST_PORT_EVENT |	\
503*d83cc019SAndroid Build Coastguard Worker 				  CAPTURE_EVENT )
504*d83cc019SAndroid Build Coastguard Worker 
505*d83cc019SAndroid Build Coastguard Worker /* FIFO Watermark and Burst Length Control Register
506*d83cc019SAndroid Build Coastguard Worker  *
507*d83cc019SAndroid Build Coastguard Worker  * - different offset and contents on i810 (p299) (fewer bits per field)
508*d83cc019SAndroid Build Coastguard Worker  * - some overlay fields added
509*d83cc019SAndroid Build Coastguard Worker  * - what does it all mean?
510*d83cc019SAndroid Build Coastguard Worker  */
511*d83cc019SAndroid Build Coastguard Worker #define FWATER_BLC       0x20d8
512*d83cc019SAndroid Build Coastguard Worker #define FWATER_BLC2	 0x20dc
513*d83cc019SAndroid Build Coastguard Worker #define MM_BURST_LENGTH     0x00700000
514*d83cc019SAndroid Build Coastguard Worker #define MM_FIFO_WATERMARK   0x0001F000
515*d83cc019SAndroid Build Coastguard Worker #define LM_BURST_LENGTH     0x00000700
516*d83cc019SAndroid Build Coastguard Worker #define LM_FIFO_WATERMARK   0x0000001F
517*d83cc019SAndroid Build Coastguard Worker 
518*d83cc019SAndroid Build Coastguard Worker 
519*d83cc019SAndroid Build Coastguard Worker /* Fence/Tiling ranges [0..7]
520*d83cc019SAndroid Build Coastguard Worker  */
521*d83cc019SAndroid Build Coastguard Worker #define FENCE            0x2000
522*d83cc019SAndroid Build Coastguard Worker #define FENCE_NR         8
523*d83cc019SAndroid Build Coastguard Worker 
524*d83cc019SAndroid Build Coastguard Worker #define FENCE_NEW        0x3000
525*d83cc019SAndroid Build Coastguard Worker #define FENCE_NEW_NR     16
526*d83cc019SAndroid Build Coastguard Worker 
527*d83cc019SAndroid Build Coastguard Worker #define FENCE_LINEAR     0
528*d83cc019SAndroid Build Coastguard Worker #define FENCE_XMAJOR	 1
529*d83cc019SAndroid Build Coastguard Worker #define FENCE_YMAJOR  	 2
530*d83cc019SAndroid Build Coastguard Worker 
531*d83cc019SAndroid Build Coastguard Worker #define I915G_FENCE_START_MASK	0x0ff00000
532*d83cc019SAndroid Build Coastguard Worker 
533*d83cc019SAndroid Build Coastguard Worker #define I830_FENCE_START_MASK	0x07f80000
534*d83cc019SAndroid Build Coastguard Worker 
535*d83cc019SAndroid Build Coastguard Worker #define FENCE_START_MASK    0x03F80000
536*d83cc019SAndroid Build Coastguard Worker #define FENCE_X_MAJOR       0x00000000
537*d83cc019SAndroid Build Coastguard Worker #define FENCE_Y_MAJOR       0x00001000
538*d83cc019SAndroid Build Coastguard Worker #define FENCE_SIZE_MASK     0x00000700
539*d83cc019SAndroid Build Coastguard Worker #define FENCE_SIZE_512K     0x00000000
540*d83cc019SAndroid Build Coastguard Worker #define FENCE_SIZE_1M       0x00000100
541*d83cc019SAndroid Build Coastguard Worker #define FENCE_SIZE_2M       0x00000200
542*d83cc019SAndroid Build Coastguard Worker #define FENCE_SIZE_4M       0x00000300
543*d83cc019SAndroid Build Coastguard Worker #define FENCE_SIZE_8M       0x00000400
544*d83cc019SAndroid Build Coastguard Worker #define FENCE_SIZE_16M      0x00000500
545*d83cc019SAndroid Build Coastguard Worker #define FENCE_SIZE_32M      0x00000600
546*d83cc019SAndroid Build Coastguard Worker #define FENCE_SIZE_64M	    0x00000700
547*d83cc019SAndroid Build Coastguard Worker #define I915G_FENCE_SIZE_1M       0x00000000
548*d83cc019SAndroid Build Coastguard Worker #define I915G_FENCE_SIZE_2M       0x00000100
549*d83cc019SAndroid Build Coastguard Worker #define I915G_FENCE_SIZE_4M       0x00000200
550*d83cc019SAndroid Build Coastguard Worker #define I915G_FENCE_SIZE_8M       0x00000300
551*d83cc019SAndroid Build Coastguard Worker #define I915G_FENCE_SIZE_16M      0x00000400
552*d83cc019SAndroid Build Coastguard Worker #define I915G_FENCE_SIZE_32M      0x00000500
553*d83cc019SAndroid Build Coastguard Worker #define I915G_FENCE_SIZE_64M	0x00000600
554*d83cc019SAndroid Build Coastguard Worker #define I915G_FENCE_SIZE_128M	0x00000700
555*d83cc019SAndroid Build Coastguard Worker #define I965_FENCE_X_MAJOR	0x00000000
556*d83cc019SAndroid Build Coastguard Worker #define I965_FENCE_Y_MAJOR	0x00000002
557*d83cc019SAndroid Build Coastguard Worker #define FENCE_PITCH_1       0x00000000
558*d83cc019SAndroid Build Coastguard Worker #define FENCE_PITCH_2       0x00000010
559*d83cc019SAndroid Build Coastguard Worker #define FENCE_PITCH_4       0x00000020
560*d83cc019SAndroid Build Coastguard Worker #define FENCE_PITCH_8       0x00000030
561*d83cc019SAndroid Build Coastguard Worker #define FENCE_PITCH_16      0x00000040
562*d83cc019SAndroid Build Coastguard Worker #define FENCE_PITCH_32      0x00000050
563*d83cc019SAndroid Build Coastguard Worker #define FENCE_PITCH_64	    0x00000060
564*d83cc019SAndroid Build Coastguard Worker #define FENCE_VALID         0x00000001
565*d83cc019SAndroid Build Coastguard Worker 
566*d83cc019SAndroid Build Coastguard Worker #define FENCE_REG_SANDYBRIDGE_0		0x100000
567*d83cc019SAndroid Build Coastguard Worker 
568*d83cc019SAndroid Build Coastguard Worker /* Registers to control page table, p274
569*d83cc019SAndroid Build Coastguard Worker  */
570*d83cc019SAndroid Build Coastguard Worker #define PGETBL_CTL       0x2020
571*d83cc019SAndroid Build Coastguard Worker #define PGETBL_ADDR_MASK    0xFFFFF000
572*d83cc019SAndroid Build Coastguard Worker #define PGETBL_ENABLE_MASK  0x00000001
573*d83cc019SAndroid Build Coastguard Worker #define PGETBL_ENABLED      0x00000001
574*d83cc019SAndroid Build Coastguard Worker /* Added in 965G, this field has the actual size of the global GTT */
575*d83cc019SAndroid Build Coastguard Worker #define PGETBL_SIZE_MASK    0x0000000e
576*d83cc019SAndroid Build Coastguard Worker #define PGETBL_SIZE_512KB   (0 << 1)
577*d83cc019SAndroid Build Coastguard Worker #define PGETBL_SIZE_256KB   (1 << 1)
578*d83cc019SAndroid Build Coastguard Worker #define PGETBL_SIZE_128KB   (2 << 1)
579*d83cc019SAndroid Build Coastguard Worker #define PGETBL_SIZE_1MB     (3 << 1)
580*d83cc019SAndroid Build Coastguard Worker #define PGETBL_SIZE_2MB     (4 << 1)
581*d83cc019SAndroid Build Coastguard Worker #define PGETBL_SIZE_1_5MB   (5 << 1)
582*d83cc019SAndroid Build Coastguard Worker #define G33_PGETBL_SIZE_MASK		(3 << 8)
583*d83cc019SAndroid Build Coastguard Worker #define G33_PGETBL_SIZE_1M		(1 << 8)
584*d83cc019SAndroid Build Coastguard Worker #define G33_PGETBL_SIZE_2M		(2 << 8)
585*d83cc019SAndroid Build Coastguard Worker 
586*d83cc019SAndroid Build Coastguard Worker #define I830_PTE_BASE			0x10000
587*d83cc019SAndroid Build Coastguard Worker #define PTE_ADDRESS_MASK		0xfffff000
588*d83cc019SAndroid Build Coastguard Worker #define PTE_ADDRESS_MASK_HIGH		0x000000f0 /* i915+ */
589*d83cc019SAndroid Build Coastguard Worker #define PTE_MAPPING_TYPE_UNCACHED	(0 << 1)
590*d83cc019SAndroid Build Coastguard Worker #define PTE_MAPPING_TYPE_DCACHE		(1 << 1) /* i830 only */
591*d83cc019SAndroid Build Coastguard Worker #define PTE_MAPPING_TYPE_CACHED		(3 << 1)
592*d83cc019SAndroid Build Coastguard Worker #define PTE_MAPPING_TYPE_MASK		(3 << 1)
593*d83cc019SAndroid Build Coastguard Worker #define PTE_VALID			(1 << 0)
594*d83cc019SAndroid Build Coastguard Worker 
595*d83cc019SAndroid Build Coastguard Worker /* @defgroup PGE_ERR
596*d83cc019SAndroid Build Coastguard Worker  * @{
597*d83cc019SAndroid Build Coastguard Worker  */
598*d83cc019SAndroid Build Coastguard Worker /* Page table debug register for i845 */
599*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR          0x2024
600*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_ADDR_MASK   0xFFFFF000
601*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_ID_MASK     0x00000038
602*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_CAPTURE     0x00000000
603*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_OVERLAY     0x00000008
604*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_DISPLAY     0x00000010
605*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_HOST        0x00000018
606*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_RENDER      0x00000020
607*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_BLITTER     0x00000028
608*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_MAPPING     0x00000030
609*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_CMD_PARSER  0x00000038
610*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_TYPE_MASK   0x00000007
611*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_INV_TABLE   0x00000000
612*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_INV_PTE     0x00000001
613*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_MIXED_TYPES 0x00000002
614*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_PAGE_MISS   0x00000003
615*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_ILLEGAL_TRX 0x00000004
616*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_LOCAL_MEM   0x00000005
617*d83cc019SAndroid Build Coastguard Worker #define PGE_ERR_TILED       0x00000006
618*d83cc019SAndroid Build Coastguard Worker /* @} */
619*d83cc019SAndroid Build Coastguard Worker 
620*d83cc019SAndroid Build Coastguard Worker /* @defgroup PGTBL_ER
621*d83cc019SAndroid Build Coastguard Worker  * @{
622*d83cc019SAndroid Build Coastguard Worker  */
623*d83cc019SAndroid Build Coastguard Worker /* Page table debug register for i945 */
624*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ER	0x2024
625*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_MT_TILING			(1 << 27)
626*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_MT_GTT_PTE			(1 << 26)
627*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_LC_TILING			(1 << 25)
628*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_LC_GTT_PTE			(1 << 24)
629*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_BIN_VERTEXDATA_GTT_PTE	(1 << 23)
630*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_BIN_INSTRUCTION_GTT_PTE	(1 << 22)
631*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_CS_VERTEXDATA_GTT_PTE	(1 << 21)
632*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_CS_INSTRUCTION_GTT_PTE	(1 << 20)
633*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_CS_GTT		(1 << 19)
634*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_OVERLAY_TILING		(1 << 18)
635*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_OVERLAY_GTT_PTE		(1 << 16)
636*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_DISPC_TILING			(1 << 14)
637*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_DISPC_GTT_PTE		(1 << 12)
638*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_DISPB_TILING			(1 << 10)
639*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_DISPB_GTT_PTE		(1 << 8)
640*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_DISPA_TILING			(1 << 6)
641*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_DISPA_GTT_PTE		(1 << 4)
642*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_HOST_PTE_DATA		(1 << 1)
643*d83cc019SAndroid Build Coastguard Worker # define PGTBL_ERR_HOST_GTT_PTE			(1 << 0)
644*d83cc019SAndroid Build Coastguard Worker /* @} */
645*d83cc019SAndroid Build Coastguard Worker 
646*d83cc019SAndroid Build Coastguard Worker /* Ring buffer registers, p277, overview p19
647*d83cc019SAndroid Build Coastguard Worker  */
648*d83cc019SAndroid Build Coastguard Worker #define LP_RING     0x2030
649*d83cc019SAndroid Build Coastguard Worker #define HP_RING     0x2040
650*d83cc019SAndroid Build Coastguard Worker 
651*d83cc019SAndroid Build Coastguard Worker #define RING_TAIL      0x00
652*d83cc019SAndroid Build Coastguard Worker #define TAIL_ADDR           0x000FFFF8
653*d83cc019SAndroid Build Coastguard Worker #define I830_TAIL_MASK	    0x001FFFF8
654*d83cc019SAndroid Build Coastguard Worker 
655*d83cc019SAndroid Build Coastguard Worker #define RING_HEAD      0x04
656*d83cc019SAndroid Build Coastguard Worker #define HEAD_WRAP_COUNT     0xFFE00000
657*d83cc019SAndroid Build Coastguard Worker #define HEAD_WRAP_ONE       0x00200000
658*d83cc019SAndroid Build Coastguard Worker #define HEAD_ADDR           0x001FFFFC
659*d83cc019SAndroid Build Coastguard Worker #define I830_HEAD_MASK      0x001FFFFC
660*d83cc019SAndroid Build Coastguard Worker 
661*d83cc019SAndroid Build Coastguard Worker #define RING_START     0x08
662*d83cc019SAndroid Build Coastguard Worker #define START_ADDR          0x03FFFFF8
663*d83cc019SAndroid Build Coastguard Worker #define I830_RING_START_MASK	0xFFFFF000
664*d83cc019SAndroid Build Coastguard Worker 
665*d83cc019SAndroid Build Coastguard Worker #define RING_LEN       0x0C
666*d83cc019SAndroid Build Coastguard Worker #define RING_NR_PAGES       0x001FF000
667*d83cc019SAndroid Build Coastguard Worker #define I830_RING_NR_PAGES	0x001FF000
668*d83cc019SAndroid Build Coastguard Worker #define RING_REPORT_MASK    0x00000006
669*d83cc019SAndroid Build Coastguard Worker #define RING_REPORT_64K     0x00000002
670*d83cc019SAndroid Build Coastguard Worker #define RING_REPORT_128K    0x00000004
671*d83cc019SAndroid Build Coastguard Worker #define RING_NO_REPORT      0x00000000
672*d83cc019SAndroid Build Coastguard Worker #define RING_VALID_MASK     0x00000001
673*d83cc019SAndroid Build Coastguard Worker #define RING_VALID          0x00000001
674*d83cc019SAndroid Build Coastguard Worker #define RING_INVALID        0x00000000
675*d83cc019SAndroid Build Coastguard Worker 
676*d83cc019SAndroid Build Coastguard Worker 
677*d83cc019SAndroid Build Coastguard Worker 
678*d83cc019SAndroid Build Coastguard Worker /* BitBlt Instructions
679*d83cc019SAndroid Build Coastguard Worker  *
680*d83cc019SAndroid Build Coastguard Worker  * There are many more masks & ranges yet to add.
681*d83cc019SAndroid Build Coastguard Worker  */
682*d83cc019SAndroid Build Coastguard Worker #define BR00_BITBLT_CLIENT   0x40000000
683*d83cc019SAndroid Build Coastguard Worker #define BR00_OP_COLOR_BLT    0x10000000
684*d83cc019SAndroid Build Coastguard Worker #define BR00_OP_SRC_COPY_BLT 0x10C00000
685*d83cc019SAndroid Build Coastguard Worker #define BR00_OP_FULL_BLT     0x11400000
686*d83cc019SAndroid Build Coastguard Worker #define BR00_OP_MONO_SRC_BLT 0x11800000
687*d83cc019SAndroid Build Coastguard Worker #define BR00_OP_MONO_SRC_COPY_BLT 0x11000000
688*d83cc019SAndroid Build Coastguard Worker #define BR00_OP_MONO_PAT_BLT 0x11C00000
689*d83cc019SAndroid Build Coastguard Worker #define BR00_OP_MONO_SRC_COPY_IMMEDIATE_BLT (0x61 << 22)
690*d83cc019SAndroid Build Coastguard Worker #define BR00_OP_TEXT_IMMEDIATE_BLT 0xc000000
691*d83cc019SAndroid Build Coastguard Worker 
692*d83cc019SAndroid Build Coastguard Worker 
693*d83cc019SAndroid Build Coastguard Worker #define BR00_TPCY_DISABLE    0x00000000
694*d83cc019SAndroid Build Coastguard Worker #define BR00_TPCY_ENABLE     0x00000010
695*d83cc019SAndroid Build Coastguard Worker 
696*d83cc019SAndroid Build Coastguard Worker #define BR00_TPCY_ROP        0x00000000
697*d83cc019SAndroid Build Coastguard Worker #define BR00_TPCY_NO_ROP     0x00000020
698*d83cc019SAndroid Build Coastguard Worker #define BR00_TPCY_EQ         0x00000000
699*d83cc019SAndroid Build Coastguard Worker #define BR00_TPCY_NOT_EQ     0x00000040
700*d83cc019SAndroid Build Coastguard Worker 
701*d83cc019SAndroid Build Coastguard Worker #define BR00_PAT_MSB_FIRST   0x00000000	/* ? */
702*d83cc019SAndroid Build Coastguard Worker 
703*d83cc019SAndroid Build Coastguard Worker #define BR00_PAT_VERT_ALIGN  0x000000e0
704*d83cc019SAndroid Build Coastguard Worker 
705*d83cc019SAndroid Build Coastguard Worker #define BR00_LENGTH          0x0000000F
706*d83cc019SAndroid Build Coastguard Worker 
707*d83cc019SAndroid Build Coastguard Worker #define BR09_DEST_ADDR       0x03FFFFFF
708*d83cc019SAndroid Build Coastguard Worker 
709*d83cc019SAndroid Build Coastguard Worker #define BR11_SOURCE_PITCH    0x00003FFF
710*d83cc019SAndroid Build Coastguard Worker 
711*d83cc019SAndroid Build Coastguard Worker #define BR12_SOURCE_ADDR     0x03FFFFFF
712*d83cc019SAndroid Build Coastguard Worker 
713*d83cc019SAndroid Build Coastguard Worker #define BR13_SOLID_PATTERN   0x80000000
714*d83cc019SAndroid Build Coastguard Worker #define BR13_RIGHT_TO_LEFT   0x40000000
715*d83cc019SAndroid Build Coastguard Worker #define BR13_LEFT_TO_RIGHT   0x00000000
716*d83cc019SAndroid Build Coastguard Worker #define BR13_MONO_TRANSPCY   0x20000000
717*d83cc019SAndroid Build Coastguard Worker #define BR13_MONO_PATN_TRANS 0x10000000
718*d83cc019SAndroid Build Coastguard Worker #define BR13_USE_DYN_DEPTH   0x04000000
719*d83cc019SAndroid Build Coastguard Worker #define BR13_DYN_8BPP        0x00000000
720*d83cc019SAndroid Build Coastguard Worker #define BR13_DYN_16BPP       0x01000000
721*d83cc019SAndroid Build Coastguard Worker #define BR13_DYN_24BPP       0x02000000
722*d83cc019SAndroid Build Coastguard Worker #define BR13_ROP_MASK        0x00FF0000
723*d83cc019SAndroid Build Coastguard Worker #define BR13_DEST_PITCH      0x0000FFFF
724*d83cc019SAndroid Build Coastguard Worker #define BR13_PITCH_SIGN_BIT  0x00008000
725*d83cc019SAndroid Build Coastguard Worker 
726*d83cc019SAndroid Build Coastguard Worker #define BR14_DEST_HEIGHT     0xFFFF0000
727*d83cc019SAndroid Build Coastguard Worker #define BR14_DEST_WIDTH      0x0000FFFF
728*d83cc019SAndroid Build Coastguard Worker 
729*d83cc019SAndroid Build Coastguard Worker #define BR15_PATTERN_ADDR    0x03FFFFFF
730*d83cc019SAndroid Build Coastguard Worker 
731*d83cc019SAndroid Build Coastguard Worker #define BR16_SOLID_PAT_COLOR 0x00FFFFFF
732*d83cc019SAndroid Build Coastguard Worker #define BR16_BACKGND_PAT_CLR 0x00FFFFFF
733*d83cc019SAndroid Build Coastguard Worker 
734*d83cc019SAndroid Build Coastguard Worker #define BR17_FGND_PAT_CLR    0x00FFFFFF
735*d83cc019SAndroid Build Coastguard Worker 
736*d83cc019SAndroid Build Coastguard Worker #define BR18_SRC_BGND_CLR    0x00FFFFFF
737*d83cc019SAndroid Build Coastguard Worker #define BR19_SRC_FGND_CLR    0x00FFFFFF
738*d83cc019SAndroid Build Coastguard Worker 
739*d83cc019SAndroid Build Coastguard Worker 
740*d83cc019SAndroid Build Coastguard Worker /* Instruction parser instructions
741*d83cc019SAndroid Build Coastguard Worker  */
742*d83cc019SAndroid Build Coastguard Worker 
743*d83cc019SAndroid Build Coastguard Worker #define INST_PARSER_CLIENT   0x00000000
744*d83cc019SAndroid Build Coastguard Worker #define INST_OP_FLUSH        0x02000000
745*d83cc019SAndroid Build Coastguard Worker #define INST_FLUSH_MAP_CACHE 0x00000001
746*d83cc019SAndroid Build Coastguard Worker 
747*d83cc019SAndroid Build Coastguard Worker 
748*d83cc019SAndroid Build Coastguard Worker #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23))
749*d83cc019SAndroid Build Coastguard Worker 
750*d83cc019SAndroid Build Coastguard Worker 
751*d83cc019SAndroid Build Coastguard Worker /* Registers in the i810 host-pci bridge pci config space which affect
752*d83cc019SAndroid Build Coastguard Worker  * the i810 graphics operations.
753*d83cc019SAndroid Build Coastguard Worker  */
754*d83cc019SAndroid Build Coastguard Worker #define SMRAM_MISCC         0x70
755*d83cc019SAndroid Build Coastguard Worker #define GMS                    0x000000c0
756*d83cc019SAndroid Build Coastguard Worker #define GMS_DISABLE            0x00000000
757*d83cc019SAndroid Build Coastguard Worker #define GMS_ENABLE_BARE        0x00000040
758*d83cc019SAndroid Build Coastguard Worker #define GMS_ENABLE_512K        0x00000080
759*d83cc019SAndroid Build Coastguard Worker #define GMS_ENABLE_1M          0x000000c0
760*d83cc019SAndroid Build Coastguard Worker #define USMM                   0x00000030
761*d83cc019SAndroid Build Coastguard Worker #define USMM_DISABLE           0x00000000
762*d83cc019SAndroid Build Coastguard Worker #define USMM_TSEG_ZERO         0x00000010
763*d83cc019SAndroid Build Coastguard Worker #define USMM_TSEG_512K         0x00000020
764*d83cc019SAndroid Build Coastguard Worker #define USMM_TSEG_1M           0x00000030
765*d83cc019SAndroid Build Coastguard Worker #define GFX_MEM_WIN_SIZE       0x00010000
766*d83cc019SAndroid Build Coastguard Worker #define GFX_MEM_WIN_32M        0x00010000
767*d83cc019SAndroid Build Coastguard Worker #define GFX_MEM_WIN_64M        0x00000000
768*d83cc019SAndroid Build Coastguard Worker 
769*d83cc019SAndroid Build Coastguard Worker /* Overkill?  I don't know.  Need to figure out top of mem to make the
770*d83cc019SAndroid Build Coastguard Worker  * SMRAM calculations come out.  Linux seems to have problems
771*d83cc019SAndroid Build Coastguard Worker  * detecting it all on its own, so this seems a reasonable double
772*d83cc019SAndroid Build Coastguard Worker  * check to any user supplied 'mem=...' boot param.
773*d83cc019SAndroid Build Coastguard Worker  *
774*d83cc019SAndroid Build Coastguard Worker  * ... unfortunately this reg doesn't work according to spec on the
775*d83cc019SAndroid Build Coastguard Worker  * test hardware.
776*d83cc019SAndroid Build Coastguard Worker  */
777*d83cc019SAndroid Build Coastguard Worker #define WHTCFG_PAMR_DRP      0x50
778*d83cc019SAndroid Build Coastguard Worker #define SYS_DRAM_ROW_0_SHIFT    16
779*d83cc019SAndroid Build Coastguard Worker #define SYS_DRAM_ROW_1_SHIFT    20
780*d83cc019SAndroid Build Coastguard Worker #define DRAM_MASK           0x0f
781*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_0        0
782*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_1        8
783*d83cc019SAndroid Build Coastguard Worker /* No 2 value defined */
784*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_3        16
785*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_4        16
786*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_5        24
787*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_6        32
788*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_7        32
789*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_8        48
790*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_9        64
791*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_A        64
792*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_B        96
793*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_C        128
794*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_D        128
795*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_E        192
796*d83cc019SAndroid Build Coastguard Worker #define DRAM_VALUE_F        256	/* nice one, geezer */
797*d83cc019SAndroid Build Coastguard Worker #define LM_FREQ_MASK        0x10
798*d83cc019SAndroid Build Coastguard Worker #define LM_FREQ_133         0x10
799*d83cc019SAndroid Build Coastguard Worker #define LM_FREQ_100         0x00
800*d83cc019SAndroid Build Coastguard Worker 
801*d83cc019SAndroid Build Coastguard Worker 
802*d83cc019SAndroid Build Coastguard Worker 
803*d83cc019SAndroid Build Coastguard Worker 
804*d83cc019SAndroid Build Coastguard Worker /* These are 3d state registers, but the state is invarient, so we let
805*d83cc019SAndroid Build Coastguard Worker  * the X server handle it:
806*d83cc019SAndroid Build Coastguard Worker  */
807*d83cc019SAndroid Build Coastguard Worker 
808*d83cc019SAndroid Build Coastguard Worker 
809*d83cc019SAndroid Build Coastguard Worker 
810*d83cc019SAndroid Build Coastguard Worker /* GFXRENDERSTATE_COLOR_CHROMA_KEY, p135
811*d83cc019SAndroid Build Coastguard Worker  */
812*d83cc019SAndroid Build Coastguard Worker #define GFX_OP_COLOR_CHROMA_KEY  ((0x3<<29)|(0x1d<<24)|(0x2<<16)|0x1)
813*d83cc019SAndroid Build Coastguard Worker #define CC1_UPDATE_KILL_WRITE    (1<<28)
814*d83cc019SAndroid Build Coastguard Worker #define CC1_ENABLE_KILL_WRITE    (1<<27)
815*d83cc019SAndroid Build Coastguard Worker #define CC1_DISABLE_KILL_WRITE    0
816*d83cc019SAndroid Build Coastguard Worker #define CC1_UPDATE_COLOR_IDX     (1<<26)
817*d83cc019SAndroid Build Coastguard Worker #define CC1_UPDATE_CHROMA_LOW    (1<<25)
818*d83cc019SAndroid Build Coastguard Worker #define CC1_UPDATE_CHROMA_HI     (1<<24)
819*d83cc019SAndroid Build Coastguard Worker #define CC1_CHROMA_LOW_MASK      ((1<<24)-1)
820*d83cc019SAndroid Build Coastguard Worker #define CC2_COLOR_IDX_SHIFT      24
821*d83cc019SAndroid Build Coastguard Worker #define CC2_COLOR_IDX_MASK       (0xff<<24)
822*d83cc019SAndroid Build Coastguard Worker #define CC2_CHROMA_HI_MASK       ((1<<24)-1)
823*d83cc019SAndroid Build Coastguard Worker 
824*d83cc019SAndroid Build Coastguard Worker 
825*d83cc019SAndroid Build Coastguard Worker #define GFX_CMD_CONTEXT_SEL      ((0<<29)|(0x5<<23))
826*d83cc019SAndroid Build Coastguard Worker #define CS_UPDATE_LOAD           (1<<17)
827*d83cc019SAndroid Build Coastguard Worker #define CS_UPDATE_USE            (1<<16)
828*d83cc019SAndroid Build Coastguard Worker #define CS_UPDATE_LOAD           (1<<17)
829*d83cc019SAndroid Build Coastguard Worker #define CS_LOAD_CTX0             0
830*d83cc019SAndroid Build Coastguard Worker #define CS_LOAD_CTX1             (1<<8)
831*d83cc019SAndroid Build Coastguard Worker #define CS_USE_CTX0              0
832*d83cc019SAndroid Build Coastguard Worker #define CS_USE_CTX1              (1<<0)
833*d83cc019SAndroid Build Coastguard Worker 
834*d83cc019SAndroid Build Coastguard Worker /* I810 LCD/TV registers */
835*d83cc019SAndroid Build Coastguard Worker #define LCD_TV_HTOTAL	0x60000
836*d83cc019SAndroid Build Coastguard Worker #define LCD_TV_C	0x60018
837*d83cc019SAndroid Build Coastguard Worker #define LCD_TV_OVRACT   0x6001C
838*d83cc019SAndroid Build Coastguard Worker 
839*d83cc019SAndroid Build Coastguard Worker #define LCD_TV_ENABLE (1 << 31)
840*d83cc019SAndroid Build Coastguard Worker #define LCD_TV_VGAMOD (1 << 28)
841*d83cc019SAndroid Build Coastguard Worker 
842*d83cc019SAndroid Build Coastguard Worker /* I830 CRTC registers */
843*d83cc019SAndroid Build Coastguard Worker #define HTOTAL_A	0x60000
844*d83cc019SAndroid Build Coastguard Worker #define HBLANK_A	0x60004
845*d83cc019SAndroid Build Coastguard Worker #define HSYNC_A 	0x60008
846*d83cc019SAndroid Build Coastguard Worker #define VTOTAL_A	0x6000c
847*d83cc019SAndroid Build Coastguard Worker #define VBLANK_A	0x60010
848*d83cc019SAndroid Build Coastguard Worker #define VSYNC_A 	0x60014
849*d83cc019SAndroid Build Coastguard Worker #define PIPEASRC	0x6001c
850*d83cc019SAndroid Build Coastguard Worker #define BCLRPAT_A	0x60020
851*d83cc019SAndroid Build Coastguard Worker #define VSYNCSHIFT_A	0x60028
852*d83cc019SAndroid Build Coastguard Worker 
853*d83cc019SAndroid Build Coastguard Worker #define HTOTAL_B	0x61000
854*d83cc019SAndroid Build Coastguard Worker #define HBLANK_B	0x61004
855*d83cc019SAndroid Build Coastguard Worker #define HSYNC_B 	0x61008
856*d83cc019SAndroid Build Coastguard Worker #define VTOTAL_B	0x6100c
857*d83cc019SAndroid Build Coastguard Worker #define VBLANK_B	0x61010
858*d83cc019SAndroid Build Coastguard Worker #define VSYNC_B 	0x61014
859*d83cc019SAndroid Build Coastguard Worker #define PIPEBSRC	0x6101c
860*d83cc019SAndroid Build Coastguard Worker #define BCLRPAT_B	0x61020
861*d83cc019SAndroid Build Coastguard Worker #define VSYNCSHIFT_B	0x61028
862*d83cc019SAndroid Build Coastguard Worker 
863*d83cc019SAndroid Build Coastguard Worker #define HTOTAL_C	0x62000
864*d83cc019SAndroid Build Coastguard Worker #define HBLANK_C	0x62004
865*d83cc019SAndroid Build Coastguard Worker #define HSYNC_C 	0x62008
866*d83cc019SAndroid Build Coastguard Worker #define VTOTAL_C	0x6200c
867*d83cc019SAndroid Build Coastguard Worker #define VBLANK_C	0x62010
868*d83cc019SAndroid Build Coastguard Worker #define VSYNC_C 	0x62014
869*d83cc019SAndroid Build Coastguard Worker #define PIPECSRC	0x6201c
870*d83cc019SAndroid Build Coastguard Worker #define BCLRPAT_C	0x62020
871*d83cc019SAndroid Build Coastguard Worker #define VSYNCSHIFT_C	0x62028
872*d83cc019SAndroid Build Coastguard Worker 
873*d83cc019SAndroid Build Coastguard Worker #define HTOTAL_EDP	0x6F000
874*d83cc019SAndroid Build Coastguard Worker #define HBLANK_EDP	0x6F004
875*d83cc019SAndroid Build Coastguard Worker #define HSYNC_EDP	0x6F008
876*d83cc019SAndroid Build Coastguard Worker #define VTOTAL_EDP	0x6F00c
877*d83cc019SAndroid Build Coastguard Worker #define VBLANK_EDP	0x6F010
878*d83cc019SAndroid Build Coastguard Worker #define VSYNC_EDP	0x6F014
879*d83cc019SAndroid Build Coastguard Worker #define VSYNCSHIFT_EDP	0x6F028
880*d83cc019SAndroid Build Coastguard Worker 
881*d83cc019SAndroid Build Coastguard Worker #define PP_STATUS	0x61200
882*d83cc019SAndroid Build Coastguard Worker # define PP_ON					(1 << 31)
883*d83cc019SAndroid Build Coastguard Worker /*
884*d83cc019SAndroid Build Coastguard Worker  * Indicates that all dependencies of the panel are on:
885*d83cc019SAndroid Build Coastguard Worker  *
886*d83cc019SAndroid Build Coastguard Worker  * - PLL enabled
887*d83cc019SAndroid Build Coastguard Worker  * - pipe enabled
888*d83cc019SAndroid Build Coastguard Worker  * - LVDS/DVOB/DVOC on
889*d83cc019SAndroid Build Coastguard Worker  */
890*d83cc019SAndroid Build Coastguard Worker # define PP_READY				(1 << 30)
891*d83cc019SAndroid Build Coastguard Worker # define PP_SEQUENCE_NONE			(0 << 28)
892*d83cc019SAndroid Build Coastguard Worker # define PP_SEQUENCE_ON				(1 << 28)
893*d83cc019SAndroid Build Coastguard Worker # define PP_SEQUENCE_OFF			(2 << 28)
894*d83cc019SAndroid Build Coastguard Worker # define PP_SEQUENCE_MASK			0x30000000
895*d83cc019SAndroid Build Coastguard Worker 
896*d83cc019SAndroid Build Coastguard Worker #define PP_CONTROL	0x61204
897*d83cc019SAndroid Build Coastguard Worker # define POWER_DOWN_ON_RESET			(1 << 1)
898*d83cc019SAndroid Build Coastguard Worker # define POWER_TARGET_ON			(1 << 0)
899*d83cc019SAndroid Build Coastguard Worker 
900*d83cc019SAndroid Build Coastguard Worker #define PP_ON_DELAYS	0x61208
901*d83cc019SAndroid Build Coastguard Worker #define PP_OFF_DELAYS	0x6120c
902*d83cc019SAndroid Build Coastguard Worker #define PP_DIVISOR	0x61210
903*d83cc019SAndroid Build Coastguard Worker 
904*d83cc019SAndroid Build Coastguard Worker #define PFIT_CONTROL	0x61230
905*d83cc019SAndroid Build Coastguard Worker # define PFIT_ENABLE				(1 << 31)
906*d83cc019SAndroid Build Coastguard Worker /* Pre-965 */
907*d83cc019SAndroid Build Coastguard Worker # define VERT_INTERP_DISABLE			(0 << 10)
908*d83cc019SAndroid Build Coastguard Worker # define VERT_INTERP_BILINEAR			(1 << 10)
909*d83cc019SAndroid Build Coastguard Worker # define VERT_INTERP_MASK			(3 << 10)
910*d83cc019SAndroid Build Coastguard Worker # define VERT_AUTO_SCALE			(1 << 9)
911*d83cc019SAndroid Build Coastguard Worker # define HORIZ_INTERP_DISABLE			(0 << 6)
912*d83cc019SAndroid Build Coastguard Worker # define HORIZ_INTERP_BILINEAR			(1 << 6)
913*d83cc019SAndroid Build Coastguard Worker # define HORIZ_INTERP_MASK			(3 << 6)
914*d83cc019SAndroid Build Coastguard Worker # define HORIZ_AUTO_SCALE			(1 << 5)
915*d83cc019SAndroid Build Coastguard Worker # define PANEL_8TO6_DITHER_ENABLE		(1 << 3)
916*d83cc019SAndroid Build Coastguard Worker /* 965+ */
917*d83cc019SAndroid Build Coastguard Worker # define PFIT_PIPE_MASK				(3 << 29)
918*d83cc019SAndroid Build Coastguard Worker # define PFIT_PIPE_SHIFT			29
919*d83cc019SAndroid Build Coastguard Worker # define PFIT_SCALING_MODE_MASK			(7 << 26)
920*d83cc019SAndroid Build Coastguard Worker #  define PFIT_SCALING_AUTO			(0 << 26)
921*d83cc019SAndroid Build Coastguard Worker #  define PFIT_SCALING_PROGRAMMED		(1 << 26)
922*d83cc019SAndroid Build Coastguard Worker #  define PFIT_SCALING_PILLAR			(2 << 26)
923*d83cc019SAndroid Build Coastguard Worker #  define PFIT_SCALING_LETTER			(3 << 26)
924*d83cc019SAndroid Build Coastguard Worker # define PFIT_FILTER_SELECT_MASK		(3 << 24)
925*d83cc019SAndroid Build Coastguard Worker #  define PFIT_FILTER_FUZZY			(0 << 24)
926*d83cc019SAndroid Build Coastguard Worker #  define PFIT_FILTER_CRISP			(1 << 24)
927*d83cc019SAndroid Build Coastguard Worker #  define PFIT_FILTER_MEDIAN			(2 << 24)
928*d83cc019SAndroid Build Coastguard Worker 
929*d83cc019SAndroid Build Coastguard Worker #define PFIT_PGM_RATIOS	0x61234
930*d83cc019SAndroid Build Coastguard Worker /* Pre-965 */
931*d83cc019SAndroid Build Coastguard Worker # define PFIT_VERT_SCALE_SHIFT			20
932*d83cc019SAndroid Build Coastguard Worker # define PFIT_VERT_SCALE_MASK			0xfff00000
933*d83cc019SAndroid Build Coastguard Worker # define PFIT_HORIZ_SCALE_SHIFT			4
934*d83cc019SAndroid Build Coastguard Worker # define PFIT_HORIZ_SCALE_MASK			0x0000fff0
935*d83cc019SAndroid Build Coastguard Worker /* 965+ */
936*d83cc019SAndroid Build Coastguard Worker # define PFIT_VERT_SCALE_SHIFT_965		16
937*d83cc019SAndroid Build Coastguard Worker # define PFIT_VERT_SCALE_MASK_965		0x1fff0000
938*d83cc019SAndroid Build Coastguard Worker # define PFIT_HORIZ_SCALE_SHIFT_965		0
939*d83cc019SAndroid Build Coastguard Worker # define PFIT_HORIZ_SCALE_MASK_965		0x00001fff
940*d83cc019SAndroid Build Coastguard Worker 
941*d83cc019SAndroid Build Coastguard Worker #define DPLL_A		0x06014
942*d83cc019SAndroid Build Coastguard Worker #define DPLL_B		0x06018
943*d83cc019SAndroid Build Coastguard Worker # define DPLL_VCO_ENABLE			(1 << 31)
944*d83cc019SAndroid Build Coastguard Worker # define DPLL_DVO_HIGH_SPEED			(1 << 30)
945*d83cc019SAndroid Build Coastguard Worker # define DPLL_SYNCLOCK_ENABLE			(1 << 29)
946*d83cc019SAndroid Build Coastguard Worker # define DPLL_VGA_MODE_DIS			(1 << 28)
947*d83cc019SAndroid Build Coastguard Worker # define DPLLB_MODE_DAC_SERIAL			(1 << 26) /* i915 */
948*d83cc019SAndroid Build Coastguard Worker # define DPLLB_MODE_LVDS			(2 << 26) /* i915 */
949*d83cc019SAndroid Build Coastguard Worker # define DPLL_MODE_MASK				(3 << 26)
950*d83cc019SAndroid Build Coastguard Worker # define DPLL_DAC_SERIAL_P2_CLOCK_DIV_10	(0 << 24) /* i915 */
951*d83cc019SAndroid Build Coastguard Worker # define DPLL_DAC_SERIAL_P2_CLOCK_DIV_5		(1 << 24) /* i915 */
952*d83cc019SAndroid Build Coastguard Worker # define DPLLB_LVDS_P2_CLOCK_DIV_14		(0 << 24) /* i915 */
953*d83cc019SAndroid Build Coastguard Worker # define DPLLB_LVDS_P2_CLOCK_DIV_7		(1 << 24) /* i915 */
954*d83cc019SAndroid Build Coastguard Worker # define DPLL_P2_CLOCK_DIV_MASK			0x03000000 /* i915 */
955*d83cc019SAndroid Build Coastguard Worker # define DPLL_FPA01_P1_POST_DIV_MASK		0x00ff0000 /* i915 */
956*d83cc019SAndroid Build Coastguard Worker # define DPLL_FPA01_P1_POST_DIV_MASK_IGD	0x00ff8000 /* IGD */
957*d83cc019SAndroid Build Coastguard Worker /*
958*d83cc019SAndroid Build Coastguard Worker  *  The i830 generation, in DAC/serial mode, defines p1 as two plus this
959*d83cc019SAndroid Build Coastguard Worker  * bitfield, or just 2 if PLL_P1_DIVIDE_BY_TWO is set.
960*d83cc019SAndroid Build Coastguard Worker  */
961*d83cc019SAndroid Build Coastguard Worker # define DPLL_FPA01_P1_POST_DIV_MASK_I830	0x001f0000
962*d83cc019SAndroid Build Coastguard Worker /*
963*d83cc019SAndroid Build Coastguard Worker  * The i830 generation, in LVDS mode, defines P1 as the bit number set within
964*d83cc019SAndroid Build Coastguard Worker  * this field (only one bit may be set).
965*d83cc019SAndroid Build Coastguard Worker  */
966*d83cc019SAndroid Build Coastguard Worker # define DPLL_FPA01_P1_POST_DIV_MASK_I830_LVDS	0x003f0000
967*d83cc019SAndroid Build Coastguard Worker # define DPLL_FPA01_P1_POST_DIV_SHIFT		16
968*d83cc019SAndroid Build Coastguard Worker # define DPLL_FPA01_P1_POST_DIV_SHIFT_IGD	15
969*d83cc019SAndroid Build Coastguard Worker # define PLL_P2_DIVIDE_BY_4			(1 << 23) /* i830, required in DVO non-gang */
970*d83cc019SAndroid Build Coastguard Worker # define PLL_P1_DIVIDE_BY_TWO			(1 << 21) /* i830 */
971*d83cc019SAndroid Build Coastguard Worker # define PLL_REF_INPUT_DREFCLK			(0 << 13)
972*d83cc019SAndroid Build Coastguard Worker # define PLL_REF_INPUT_TVCLKINA			(1 << 13) /* i830 */
973*d83cc019SAndroid Build Coastguard Worker # define PLL_REF_INPUT_SUPER_SSC		(1 << 13) /* Ironlake: 120M SSC */
974*d83cc019SAndroid Build Coastguard Worker # define PLL_REF_INPUT_TVCLKINBC		(2 << 13) /* SDVO TVCLKIN */
975*d83cc019SAndroid Build Coastguard Worker # define PLLB_REF_INPUT_SPREADSPECTRUMIN	(3 << 13)
976*d83cc019SAndroid Build Coastguard Worker # define PLL_REF_INPUT_MASK			(3 << 13)
977*d83cc019SAndroid Build Coastguard Worker # define PLL_REF_INPUT_DMICLK			(5 << 13) /* Ironlake: DMI refclk */
978*d83cc019SAndroid Build Coastguard Worker # define PLL_LOAD_PULSE_PHASE_SHIFT		9
979*d83cc019SAndroid Build Coastguard Worker /*
980*d83cc019SAndroid Build Coastguard Worker  * Parallel to Serial Load Pulse phase selection.
981*d83cc019SAndroid Build Coastguard Worker  * Selects the phase for the 10X DPLL clock for the PCIe
982*d83cc019SAndroid Build Coastguard Worker  * digital display port. The range is 4 to 13; 10 or more
983*d83cc019SAndroid Build Coastguard Worker  * is just a flip delay. The default is 6
984*d83cc019SAndroid Build Coastguard Worker  */
985*d83cc019SAndroid Build Coastguard Worker # define PLL_LOAD_PULSE_PHASE_MASK		(0xf << PLL_LOAD_PULSE_PHASE_SHIFT)
986*d83cc019SAndroid Build Coastguard Worker # define DISPLAY_RATE_SELECT_FPA1		(1 << 8)
987*d83cc019SAndroid Build Coastguard Worker /* Ironlake */
988*d83cc019SAndroid Build Coastguard Worker # define PLL_REF_SDVO_HDMI_MULTIPLIER_SHIFT	9
989*d83cc019SAndroid Build Coastguard Worker # define PLL_REF_SDVO_HDMI_MULTIPLIER_MASK	(7 << 9)
990*d83cc019SAndroid Build Coastguard Worker # define PLL_REF_SDVO_HDMI_MULTIPLIER(x)	(((x)-1)<< PLL_REF_SDVO_HDMI_MULTIPLIER_SHIFT)
991*d83cc019SAndroid Build Coastguard Worker # define DPLL_FPA1_P1_POST_DIV_SHIFT		0
992*d83cc019SAndroid Build Coastguard Worker # define DPLL_FPA1_P1_POST_DIV_MASK		0xff
993*d83cc019SAndroid Build Coastguard Worker 
994*d83cc019SAndroid Build Coastguard Worker /*
995*d83cc019SAndroid Build Coastguard Worker  * SDVO multiplier for 945G/GM. Not used on 965.
996*d83cc019SAndroid Build Coastguard Worker  *
997*d83cc019SAndroid Build Coastguard Worker  * \sa DPLL_MD_UDI_MULTIPLIER_MASK
998*d83cc019SAndroid Build Coastguard Worker  */
999*d83cc019SAndroid Build Coastguard Worker # define SDVO_MULTIPLIER_MASK			0x000000ff
1000*d83cc019SAndroid Build Coastguard Worker # define SDVO_MULTIPLIER_SHIFT_HIRES		4
1001*d83cc019SAndroid Build Coastguard Worker # define SDVO_MULTIPLIER_SHIFT_VGA		0
1002*d83cc019SAndroid Build Coastguard Worker 
1003*d83cc019SAndroid Build Coastguard Worker /* @defgroup DPLL_MD
1004*d83cc019SAndroid Build Coastguard Worker  * @{
1005*d83cc019SAndroid Build Coastguard Worker  */
1006*d83cc019SAndroid Build Coastguard Worker /* Pipe A SDVO/UDI clock multiplier/divider register for G965. */
1007*d83cc019SAndroid Build Coastguard Worker #define DPLL_A_MD		0x0601c
1008*d83cc019SAndroid Build Coastguard Worker /* Pipe B SDVO/UDI clock multiplier/divider register for G965. */
1009*d83cc019SAndroid Build Coastguard Worker #define DPLL_B_MD		0x06020
1010*d83cc019SAndroid Build Coastguard Worker /*
1011*d83cc019SAndroid Build Coastguard Worker  * UDI pixel divider, controlling how many pixels are stuffed into a packet.
1012*d83cc019SAndroid Build Coastguard Worker  *
1013*d83cc019SAndroid Build Coastguard Worker  * Value is pixels minus 1.  Must be set to 1 pixel for SDVO.
1014*d83cc019SAndroid Build Coastguard Worker  */
1015*d83cc019SAndroid Build Coastguard Worker # define DPLL_MD_UDI_DIVIDER_MASK		0x3f000000
1016*d83cc019SAndroid Build Coastguard Worker # define DPLL_MD_UDI_DIVIDER_SHIFT		24
1017*d83cc019SAndroid Build Coastguard Worker /* UDI pixel divider for VGA, same as DPLL_MD_UDI_DIVIDER_MASK. */
1018*d83cc019SAndroid Build Coastguard Worker # define DPLL_MD_VGA_UDI_DIVIDER_MASK		0x003f0000
1019*d83cc019SAndroid Build Coastguard Worker # define DPLL_MD_VGA_UDI_DIVIDER_SHIFT		16
1020*d83cc019SAndroid Build Coastguard Worker /*
1021*d83cc019SAndroid Build Coastguard Worker  * SDVO/UDI pixel multiplier.
1022*d83cc019SAndroid Build Coastguard Worker  *
1023*d83cc019SAndroid Build Coastguard Worker  * SDVO requires that the bus clock rate be between 1 and 2 Ghz, and the bus
1024*d83cc019SAndroid Build Coastguard Worker  * clock rate is 10 times the DPLL clock.  At low resolution/refresh rate
1025*d83cc019SAndroid Build Coastguard Worker  * modes, the bus rate would be below the limits, so SDVO allows for stuffing
1026*d83cc019SAndroid Build Coastguard Worker  * dummy bytes in the datastream at an increased clock rate, with both sides of
1027*d83cc019SAndroid Build Coastguard Worker  * the link knowing how many bytes are fill.
1028*d83cc019SAndroid Build Coastguard Worker  *
1029*d83cc019SAndroid Build Coastguard Worker  * So, for a mode with a dotclock of 65Mhz, we would want to double the clock
1030*d83cc019SAndroid Build Coastguard Worker  * rate to 130Mhz to get a bus rate of 1.30Ghz.  The DPLL clock rate would be
1031*d83cc019SAndroid Build Coastguard Worker  * set to 130Mhz, and the SDVO multiplier set to 2x in this register and
1032*d83cc019SAndroid Build Coastguard Worker  * through an SDVO command.
1033*d83cc019SAndroid Build Coastguard Worker  *
1034*d83cc019SAndroid Build Coastguard Worker  * This register field has values of multiplication factor minus 1, with
1035*d83cc019SAndroid Build Coastguard Worker  * a maximum multiplier of 5 for SDVO.
1036*d83cc019SAndroid Build Coastguard Worker  */
1037*d83cc019SAndroid Build Coastguard Worker # define DPLL_MD_UDI_MULTIPLIER_MASK		0x00003f00
1038*d83cc019SAndroid Build Coastguard Worker # define DPLL_MD_UDI_MULTIPLIER_SHIFT		8
1039*d83cc019SAndroid Build Coastguard Worker /* SDVO/UDI pixel multiplier for VGA, same as DPLL_MD_UDI_MULTIPLIER_MASK.
1040*d83cc019SAndroid Build Coastguard Worker  * This best be set to the default value (3) or the CRT won't work. No,
1041*d83cc019SAndroid Build Coastguard Worker  * I don't entirely understand what this does...
1042*d83cc019SAndroid Build Coastguard Worker  */
1043*d83cc019SAndroid Build Coastguard Worker # define DPLL_MD_VGA_UDI_MULTIPLIER_MASK	0x0000003f
1044*d83cc019SAndroid Build Coastguard Worker # define DPLL_MD_VGA_UDI_MULTIPLIER_SHIFT	0
1045*d83cc019SAndroid Build Coastguard Worker /* @} */
1046*d83cc019SAndroid Build Coastguard Worker 
1047*d83cc019SAndroid Build Coastguard Worker #define DPLL_TEST		0x606c
1048*d83cc019SAndroid Build Coastguard Worker # define DPLLB_TEST_SDVO_DIV_1			(0 << 22)
1049*d83cc019SAndroid Build Coastguard Worker # define DPLLB_TEST_SDVO_DIV_2			(1 << 22)
1050*d83cc019SAndroid Build Coastguard Worker # define DPLLB_TEST_SDVO_DIV_4			(2 << 22)
1051*d83cc019SAndroid Build Coastguard Worker # define DPLLB_TEST_SDVO_DIV_MASK		(3 << 22)
1052*d83cc019SAndroid Build Coastguard Worker # define DPLLB_TEST_N_BYPASS			(1 << 19)
1053*d83cc019SAndroid Build Coastguard Worker # define DPLLB_TEST_M_BYPASS			(1 << 18)
1054*d83cc019SAndroid Build Coastguard Worker # define DPLLB_INPUT_BUFFER_ENABLE		(1 << 16)
1055*d83cc019SAndroid Build Coastguard Worker # define DPLLA_TEST_N_BYPASS			(1 << 3)
1056*d83cc019SAndroid Build Coastguard Worker # define DPLLA_TEST_M_BYPASS			(1 << 2)
1057*d83cc019SAndroid Build Coastguard Worker # define DPLLA_INPUT_BUFFER_ENABLE		(1 << 0)
1058*d83cc019SAndroid Build Coastguard Worker 
1059*d83cc019SAndroid Build Coastguard Worker #define D_STATE			0x6104
1060*d83cc019SAndroid Build Coastguard Worker #define DSPCLK_GATE_D		0x6200
1061*d83cc019SAndroid Build Coastguard Worker # define DPUNIT_B_CLOCK_GATE_DISABLE		(1 << 30) /* 965 */
1062*d83cc019SAndroid Build Coastguard Worker # define VSUNIT_CLOCK_GATE_DISABLE		(1 << 29) /* 965 */
1063*d83cc019SAndroid Build Coastguard Worker # define VRHUNIT_CLOCK_GATE_DISABLE		(1 << 28) /* 965 */
1064*d83cc019SAndroid Build Coastguard Worker # define VRDUNIT_CLOCK_GATE_DISABLE		(1 << 27) /* 965 */
1065*d83cc019SAndroid Build Coastguard Worker # define AUDUNIT_CLOCK_GATE_DISABLE		(1 << 26) /* 965 */
1066*d83cc019SAndroid Build Coastguard Worker # define DPUNIT_A_CLOCK_GATE_DISABLE		(1 << 25) /* 965 */
1067*d83cc019SAndroid Build Coastguard Worker # define DPCUNIT_CLOCK_GATE_DISABLE		(1 << 24) /* 965 */
1068*d83cc019SAndroid Build Coastguard Worker # define TVRUNIT_CLOCK_GATE_DISABLE		(1 << 23) /* 915-945 */
1069*d83cc019SAndroid Build Coastguard Worker # define TVCUNIT_CLOCK_GATE_DISABLE		(1 << 22) /* 915-945 */
1070*d83cc019SAndroid Build Coastguard Worker # define TVFUNIT_CLOCK_GATE_DISABLE		(1 << 21) /* 915-945 */
1071*d83cc019SAndroid Build Coastguard Worker # define TVEUNIT_CLOCK_GATE_DISABLE		(1 << 20) /* 915-945 */
1072*d83cc019SAndroid Build Coastguard Worker # define DVSUNIT_CLOCK_GATE_DISABLE		(1 << 19) /* 915-945 */
1073*d83cc019SAndroid Build Coastguard Worker # define DSSUNIT_CLOCK_GATE_DISABLE		(1 << 18) /* 915-945 */
1074*d83cc019SAndroid Build Coastguard Worker # define DDBUNIT_CLOCK_GATE_DISABLE		(1 << 17) /* 915-945 */
1075*d83cc019SAndroid Build Coastguard Worker # define DPRUNIT_CLOCK_GATE_DISABLE		(1 << 16) /* 915-945 */
1076*d83cc019SAndroid Build Coastguard Worker # define DPFUNIT_CLOCK_GATE_DISABLE		(1 << 15) /* 915-945 */
1077*d83cc019SAndroid Build Coastguard Worker # define DPBMUNIT_CLOCK_GATE_DISABLE		(1 << 14) /* 915-945 */
1078*d83cc019SAndroid Build Coastguard Worker # define DPLSUNIT_CLOCK_GATE_DISABLE		(1 << 13) /* 915-945 */
1079*d83cc019SAndroid Build Coastguard Worker # define DPLUNIT_CLOCK_GATE_DISABLE		(1 << 12) /* 915-945 */
1080*d83cc019SAndroid Build Coastguard Worker # define DPOUNIT_CLOCK_GATE_DISABLE		(1 << 11)
1081*d83cc019SAndroid Build Coastguard Worker # define DPBUNIT_CLOCK_GATE_DISABLE		(1 << 10)
1082*d83cc019SAndroid Build Coastguard Worker # define DCUNIT_CLOCK_GATE_DISABLE		(1 << 9)
1083*d83cc019SAndroid Build Coastguard Worker # define DPUNIT_CLOCK_GATE_DISABLE		(1 << 8)
1084*d83cc019SAndroid Build Coastguard Worker # define VRUNIT_CLOCK_GATE_DISABLE		(1 << 7) /* 915+: reserved */
1085*d83cc019SAndroid Build Coastguard Worker # define OVHUNIT_CLOCK_GATE_DISABLE		(1 << 6) /* 830-865 */
1086*d83cc019SAndroid Build Coastguard Worker # define DPIOUNIT_CLOCK_GATE_DISABLE		(1 << 6) /* 915-945 */
1087*d83cc019SAndroid Build Coastguard Worker # define OVFUNIT_CLOCK_GATE_DISABLE		(1 << 5)
1088*d83cc019SAndroid Build Coastguard Worker # define OVBUNIT_CLOCK_GATE_DISABLE		(1 << 4)
1089*d83cc019SAndroid Build Coastguard Worker /*
1090*d83cc019SAndroid Build Coastguard Worker  * This bit must be set on the 830 to prevent hangs when turning off the
1091*d83cc019SAndroid Build Coastguard Worker  * overlay scaler.
1092*d83cc019SAndroid Build Coastguard Worker  */
1093*d83cc019SAndroid Build Coastguard Worker # define OVRUNIT_CLOCK_GATE_DISABLE		(1 << 3)
1094*d83cc019SAndroid Build Coastguard Worker # define OVCUNIT_CLOCK_GATE_DISABLE		(1 << 2)
1095*d83cc019SAndroid Build Coastguard Worker # define OVUUNIT_CLOCK_GATE_DISABLE		(1 << 1)
1096*d83cc019SAndroid Build Coastguard Worker # define ZVUNIT_CLOCK_GATE_DISABLE		(1 << 0) /* 830 */
1097*d83cc019SAndroid Build Coastguard Worker # define OVLUNIT_CLOCK_GATE_DISABLE		(1 << 0) /* 845,865 */
1098*d83cc019SAndroid Build Coastguard Worker 
1099*d83cc019SAndroid Build Coastguard Worker #define RENCLK_GATE_D1		0x6204
1100*d83cc019SAndroid Build Coastguard Worker # define BLITTER_CLOCK_GATE_DISABLE		(1 << 13) /* 945GM only */
1101*d83cc019SAndroid Build Coastguard Worker # define MPEG_CLOCK_GATE_DISABLE		(1 << 12) /* 945GM only */
1102*d83cc019SAndroid Build Coastguard Worker # define PC_FE_CLOCK_GATE_DISABLE		(1 << 11)
1103*d83cc019SAndroid Build Coastguard Worker # define PC_BE_CLOCK_GATE_DISABLE		(1 << 10)
1104*d83cc019SAndroid Build Coastguard Worker # define WINDOWER_CLOCK_GATE_DISABLE		(1 << 9)
1105*d83cc019SAndroid Build Coastguard Worker # define INTERPOLATOR_CLOCK_GATE_DISABLE	(1 << 8)
1106*d83cc019SAndroid Build Coastguard Worker # define COLOR_CALCULATOR_CLOCK_GATE_DISABLE	(1 << 7)
1107*d83cc019SAndroid Build Coastguard Worker # define MOTION_COMP_CLOCK_GATE_DISABLE		(1 << 6)
1108*d83cc019SAndroid Build Coastguard Worker # define MAG_CLOCK_GATE_DISABLE			(1 << 5)
1109*d83cc019SAndroid Build Coastguard Worker /* This bit must be unset on 855,865 */
1110*d83cc019SAndroid Build Coastguard Worker # define MECI_CLOCK_GATE_DISABLE		(1 << 4)
1111*d83cc019SAndroid Build Coastguard Worker # define DCMP_CLOCK_GATE_DISABLE		(1 << 3)
1112*d83cc019SAndroid Build Coastguard Worker # define MEC_CLOCK_GATE_DISABLE			(1 << 2)
1113*d83cc019SAndroid Build Coastguard Worker # define MECO_CLOCK_GATE_DISABLE		(1 << 1)
1114*d83cc019SAndroid Build Coastguard Worker /* This bit must be set on 855,865. */
1115*d83cc019SAndroid Build Coastguard Worker # define SV_CLOCK_GATE_DISABLE			(1 << 0)
1116*d83cc019SAndroid Build Coastguard Worker # define I915_MPEG_CLOCK_GATE_DISABLE		(1 << 16)
1117*d83cc019SAndroid Build Coastguard Worker # define I915_VLD_IP_PR_CLOCK_GATE_DISABLE	(1 << 15)
1118*d83cc019SAndroid Build Coastguard Worker # define I915_MOTION_COMP_CLOCK_GATE_DISABLE	(1 << 14)
1119*d83cc019SAndroid Build Coastguard Worker # define I915_BD_BF_CLOCK_GATE_DISABLE		(1 << 13)
1120*d83cc019SAndroid Build Coastguard Worker # define I915_SF_SE_CLOCK_GATE_DISABLE		(1 << 12)
1121*d83cc019SAndroid Build Coastguard Worker # define I915_WM_CLOCK_GATE_DISABLE		(1 << 11)
1122*d83cc019SAndroid Build Coastguard Worker # define I915_IZ_CLOCK_GATE_DISABLE		(1 << 10)
1123*d83cc019SAndroid Build Coastguard Worker # define I915_PI_CLOCK_GATE_DISABLE		(1 << 9)
1124*d83cc019SAndroid Build Coastguard Worker # define I915_DI_CLOCK_GATE_DISABLE		(1 << 8)
1125*d83cc019SAndroid Build Coastguard Worker # define I915_SH_SV_CLOCK_GATE_DISABLE		(1 << 7)
1126*d83cc019SAndroid Build Coastguard Worker # define I915_PL_DG_QC_FT_CLOCK_GATE_DISABLE	(1 << 6)
1127*d83cc019SAndroid Build Coastguard Worker # define I915_SC_CLOCK_GATE_DISABLE		(1 << 5)
1128*d83cc019SAndroid Build Coastguard Worker # define I915_FL_CLOCK_GATE_DISABLE		(1 << 4)
1129*d83cc019SAndroid Build Coastguard Worker # define I915_DM_CLOCK_GATE_DISABLE		(1 << 3)
1130*d83cc019SAndroid Build Coastguard Worker # define I915_PS_CLOCK_GATE_DISABLE		(1 << 2)
1131*d83cc019SAndroid Build Coastguard Worker # define I915_CC_CLOCK_GATE_DISABLE		(1 << 1)
1132*d83cc019SAndroid Build Coastguard Worker # define I915_BY_CLOCK_GATE_DISABLE		(1 << 0)
1133*d83cc019SAndroid Build Coastguard Worker 
1134*d83cc019SAndroid Build Coastguard Worker # define I965_RCZ_CLOCK_GATE_DISABLE		(1 << 30)
1135*d83cc019SAndroid Build Coastguard Worker /* This bit must always be set on 965G/965GM */
1136*d83cc019SAndroid Build Coastguard Worker # define I965_RCC_CLOCK_GATE_DISABLE		(1 << 29)
1137*d83cc019SAndroid Build Coastguard Worker # define I965_RCPB_CLOCK_GATE_DISABLE		(1 << 28)
1138*d83cc019SAndroid Build Coastguard Worker # define I965_DAP_CLOCK_GATE_DISABLE		(1 << 27)
1139*d83cc019SAndroid Build Coastguard Worker # define I965_ROC_CLOCK_GATE_DISABLE		(1 << 26)
1140*d83cc019SAndroid Build Coastguard Worker # define I965_GW_CLOCK_GATE_DISABLE		(1 << 25)
1141*d83cc019SAndroid Build Coastguard Worker # define I965_TD_CLOCK_GATE_DISABLE		(1 << 24)
1142*d83cc019SAndroid Build Coastguard Worker /* This bit must always be set on 965G */
1143*d83cc019SAndroid Build Coastguard Worker # define I965_ISC_CLOCK_GATE_DISABLE		(1 << 23)
1144*d83cc019SAndroid Build Coastguard Worker # define I965_IC_CLOCK_GATE_DISABLE		(1 << 22)
1145*d83cc019SAndroid Build Coastguard Worker # define I965_EU_CLOCK_GATE_DISABLE		(1 << 21)
1146*d83cc019SAndroid Build Coastguard Worker # define I965_IF_CLOCK_GATE_DISABLE		(1 << 20)
1147*d83cc019SAndroid Build Coastguard Worker # define I965_TC_CLOCK_GATE_DISABLE		(1 << 19)
1148*d83cc019SAndroid Build Coastguard Worker # define I965_SO_CLOCK_GATE_DISABLE		(1 << 17)
1149*d83cc019SAndroid Build Coastguard Worker # define I965_FBC_CLOCK_GATE_DISABLE		(1 << 16)
1150*d83cc019SAndroid Build Coastguard Worker # define I965_MARI_CLOCK_GATE_DISABLE		(1 << 15)
1151*d83cc019SAndroid Build Coastguard Worker # define I965_MASF_CLOCK_GATE_DISABLE		(1 << 14)
1152*d83cc019SAndroid Build Coastguard Worker # define I965_MAWB_CLOCK_GATE_DISABLE		(1 << 13)
1153*d83cc019SAndroid Build Coastguard Worker # define I965_EM_CLOCK_GATE_DISABLE		(1 << 12)
1154*d83cc019SAndroid Build Coastguard Worker # define I965_UC_CLOCK_GATE_DISABLE		(1 << 11)
1155*d83cc019SAndroid Build Coastguard Worker # define I965_SI_CLOCK_GATE_DISABLE		(1 << 6)
1156*d83cc019SAndroid Build Coastguard Worker # define I965_MT_CLOCK_GATE_DISABLE		(1 << 5)
1157*d83cc019SAndroid Build Coastguard Worker # define I965_PL_CLOCK_GATE_DISABLE		(1 << 4)
1158*d83cc019SAndroid Build Coastguard Worker # define I965_DG_CLOCK_GATE_DISABLE		(1 << 3)
1159*d83cc019SAndroid Build Coastguard Worker # define I965_QC_CLOCK_GATE_DISABLE		(1 << 2)
1160*d83cc019SAndroid Build Coastguard Worker # define I965_FT_CLOCK_GATE_DISABLE		(1 << 1)
1161*d83cc019SAndroid Build Coastguard Worker # define I965_DM_CLOCK_GATE_DISABLE		(1 << 0)
1162*d83cc019SAndroid Build Coastguard Worker 
1163*d83cc019SAndroid Build Coastguard Worker #define RENCLK_GATE_D2		0x6208
1164*d83cc019SAndroid Build Coastguard Worker #define VF_UNIT_CLOCK_GATE_DISABLE		(1 << 9)
1165*d83cc019SAndroid Build Coastguard Worker #define GS_UNIT_CLOCK_GATE_DISABLE		(1 << 7)
1166*d83cc019SAndroid Build Coastguard Worker #define CL_UNIT_CLOCK_GATE_DISABLE		(1 << 6)
1167*d83cc019SAndroid Build Coastguard Worker #define RAMCLK_GATE_D		0x6210		/* CRL only */
1168*d83cc019SAndroid Build Coastguard Worker #define DEUC			0x6214          /* CRL only */
1169*d83cc019SAndroid Build Coastguard Worker 
1170*d83cc019SAndroid Build Coastguard Worker /*
1171*d83cc019SAndroid Build Coastguard Worker  * This is a PCI config space register to manipulate backlight brightness
1172*d83cc019SAndroid Build Coastguard Worker  * It is used when the BLM_LEGACY_MODE is turned on. When enabled, the first
1173*d83cc019SAndroid Build Coastguard Worker  * byte of this config register sets brightness within the range from
1174*d83cc019SAndroid Build Coastguard Worker  * 0 to 0xff
1175*d83cc019SAndroid Build Coastguard Worker  */
1176*d83cc019SAndroid Build Coastguard Worker #define LEGACY_BACKLIGHT_BRIGHTNESS 0xf4
1177*d83cc019SAndroid Build Coastguard Worker 
1178*d83cc019SAndroid Build Coastguard Worker #define BLC_PWM_CTL		0x61254
1179*d83cc019SAndroid Build Coastguard Worker #define BACKLIGHT_MODULATION_FREQ_SHIFT		(17)
1180*d83cc019SAndroid Build Coastguard Worker #define BACKLIGHT_MODULATION_FREQ_SHIFT2	(16)
1181*d83cc019SAndroid Build Coastguard Worker /*
1182*d83cc019SAndroid Build Coastguard Worker  * This is the most significant 15 bits of the number of backlight cycles in a
1183*d83cc019SAndroid Build Coastguard Worker  * complete cycle of the modulated backlight control.
1184*d83cc019SAndroid Build Coastguard Worker  *
1185*d83cc019SAndroid Build Coastguard Worker  * The actual value is this field multiplied by two.
1186*d83cc019SAndroid Build Coastguard Worker  */
1187*d83cc019SAndroid Build Coastguard Worker #define BACKLIGHT_MODULATION_FREQ_MASK		(0x7fff << 17)
1188*d83cc019SAndroid Build Coastguard Worker #define BACKLIGHT_MODULATION_FREQ_MASK2		(0xffff << 16)
1189*d83cc019SAndroid Build Coastguard Worker #define BLM_LEGACY_MODE				(1 << 16)
1190*d83cc019SAndroid Build Coastguard Worker 
1191*d83cc019SAndroid Build Coastguard Worker /*
1192*d83cc019SAndroid Build Coastguard Worker  * This is the number of cycles out of the backlight modulation cycle for which
1193*d83cc019SAndroid Build Coastguard Worker  * the backlight is on.
1194*d83cc019SAndroid Build Coastguard Worker  *
1195*d83cc019SAndroid Build Coastguard Worker  * This field must be no greater than the number of cycles in the complete
1196*d83cc019SAndroid Build Coastguard Worker  * backlight modulation cycle.
1197*d83cc019SAndroid Build Coastguard Worker  */
1198*d83cc019SAndroid Build Coastguard Worker #define BACKLIGHT_DUTY_CYCLE_SHIFT		(0)
1199*d83cc019SAndroid Build Coastguard Worker #define BACKLIGHT_DUTY_CYCLE_MASK		(0xffff)
1200*d83cc019SAndroid Build Coastguard Worker 
1201*d83cc019SAndroid Build Coastguard Worker /* On 965+ backlight control is in another register */
1202*d83cc019SAndroid Build Coastguard Worker #define BLC_PWM_CTL2			0x61250
1203*d83cc019SAndroid Build Coastguard Worker #define 	BLM_LEGACY_MODE2	(1 << 30)
1204*d83cc019SAndroid Build Coastguard Worker 
1205*d83cc019SAndroid Build Coastguard Worker #define BLM_CTL			0x61260
1206*d83cc019SAndroid Build Coastguard Worker #define BLM_THRESHOLD_0		0x61270
1207*d83cc019SAndroid Build Coastguard Worker #define BLM_THRESHOLD_1		0x61274
1208*d83cc019SAndroid Build Coastguard Worker #define BLM_THRESHOLD_2		0x61278
1209*d83cc019SAndroid Build Coastguard Worker #define BLM_THRESHOLD_3		0x6127c
1210*d83cc019SAndroid Build Coastguard Worker #define BLM_THRESHOLD_4		0x61280
1211*d83cc019SAndroid Build Coastguard Worker #define BLM_THRESHOLD_5		0x61284
1212*d83cc019SAndroid Build Coastguard Worker 
1213*d83cc019SAndroid Build Coastguard Worker #define BLM_ACCUMULATOR_0	0x61290
1214*d83cc019SAndroid Build Coastguard Worker #define BLM_ACCUMULATOR_1	0x61294
1215*d83cc019SAndroid Build Coastguard Worker #define BLM_ACCUMULATOR_2	0x61298
1216*d83cc019SAndroid Build Coastguard Worker #define BLM_ACCUMULATOR_3	0x6129c
1217*d83cc019SAndroid Build Coastguard Worker #define BLM_ACCUMULATOR_4	0x612a0
1218*d83cc019SAndroid Build Coastguard Worker #define BLM_ACCUMULATOR_5	0x612a4
1219*d83cc019SAndroid Build Coastguard Worker 
1220*d83cc019SAndroid Build Coastguard Worker #define FPA0		0x06040
1221*d83cc019SAndroid Build Coastguard Worker #define FPA1		0x06044
1222*d83cc019SAndroid Build Coastguard Worker #define FPB0		0x06048
1223*d83cc019SAndroid Build Coastguard Worker #define FPB1		0x0604c
1224*d83cc019SAndroid Build Coastguard Worker # define FP_N_DIV_MASK				0x003f0000
1225*d83cc019SAndroid Build Coastguard Worker # define FP_N_IGD_DIV_MASK			0x00ff0000
1226*d83cc019SAndroid Build Coastguard Worker # define FP_N_DIV_SHIFT				16
1227*d83cc019SAndroid Build Coastguard Worker # define FP_M1_DIV_MASK				0x00003f00
1228*d83cc019SAndroid Build Coastguard Worker # define FP_M1_DIV_SHIFT			8
1229*d83cc019SAndroid Build Coastguard Worker # define FP_M2_DIV_MASK				0x0000003f
1230*d83cc019SAndroid Build Coastguard Worker # define FP_M2_IGD_DIV_MASK			0x000000ff
1231*d83cc019SAndroid Build Coastguard Worker # define FP_M2_DIV_SHIFT			0
1232*d83cc019SAndroid Build Coastguard Worker 
1233*d83cc019SAndroid Build Coastguard Worker #define PORT_HOTPLUG_EN		0x61110
1234*d83cc019SAndroid Build Coastguard Worker # define HDMIB_HOTPLUG_INT_EN			(1 << 29)
1235*d83cc019SAndroid Build Coastguard Worker # define HDMIC_HOTPLUG_INT_EN			(1 << 28)
1236*d83cc019SAndroid Build Coastguard Worker # define HDMID_HOTPLUG_INT_EN			(1 << 27)
1237*d83cc019SAndroid Build Coastguard Worker # define SDVOB_HOTPLUG_INT_EN			(1 << 26)
1238*d83cc019SAndroid Build Coastguard Worker # define SDVOC_HOTPLUG_INT_EN			(1 << 25)
1239*d83cc019SAndroid Build Coastguard Worker # define TV_HOTPLUG_INT_EN			(1 << 18)
1240*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_INT_EN			(1 << 9)
1241*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_ACTIVATION_PERIOD_32	(0 << 8)
1242*d83cc019SAndroid Build Coastguard Worker /* must use period 64 on GM45 according to docs */
1243*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_ACTIVATION_PERIOD_64	(1 << 8)
1244*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_DAC_ON_TIME_2M		(0 << 7)
1245*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_DAC_ON_TIME_4M		(1 << 7)
1246*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_VOLTAGE_COMPARE_40		(0 << 5)
1247*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_VOLTAGE_COMPARE_50		(1 << 5)
1248*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_VOLTAGE_COMPARE_60		(2 << 5)
1249*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_VOLTAGE_COMPARE_70		(3 << 5)
1250*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_VOLTAGE_COMPARE_MASK	(3 << 5)
1251*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_DETECT_DELAY_1G		(0 << 4)
1252*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_DETECT_DELAY_2G		(1 << 4)
1253*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_FORCE_DETECT		(1 << 3)
1254*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_DETECT_VOLTAGE_325MV	(0 << 2)
1255*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_DETECT_VOLTAGE_475MV	(1 << 2)
1256*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_MASK			(0x3fc)	/* Bits 9-2 */
1257*d83cc019SAndroid Build Coastguard Worker 
1258*d83cc019SAndroid Build Coastguard Worker #define PORT_HOTPLUG_STAT	0x61114
1259*d83cc019SAndroid Build Coastguard Worker # define HDMIB_HOTPLUG_INT_STATUS		(1 << 29)
1260*d83cc019SAndroid Build Coastguard Worker # define HDMIC_HOTPLUG_INT_STATUS		(1 << 28)
1261*d83cc019SAndroid Build Coastguard Worker # define HDMID_HOTPLUG_INT_STATUS		(1 << 27)
1262*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_INT_STATUS			(1 << 11)
1263*d83cc019SAndroid Build Coastguard Worker # define TV_HOTPLUG_INT_STATUS			(1 << 10)
1264*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_MONITOR_MASK		(3 << 8)
1265*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_MONITOR_COLOR		(3 << 8)
1266*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_MONITOR_MONO		(2 << 8)
1267*d83cc019SAndroid Build Coastguard Worker # define CRT_HOTPLUG_MONITOR_NONE		(0 << 8)
1268*d83cc019SAndroid Build Coastguard Worker # define SDVOC_HOTPLUG_INT_STATUS		(1 << 7)
1269*d83cc019SAndroid Build Coastguard Worker # define SDVOB_HOTPLUG_INT_STATUS		(1 << 6)
1270*d83cc019SAndroid Build Coastguard Worker 
1271*d83cc019SAndroid Build Coastguard Worker #define SDVOB			0x61140
1272*d83cc019SAndroid Build Coastguard Worker #define SDVOC			0x61160
1273*d83cc019SAndroid Build Coastguard Worker #define SDVO_ENABLE				(1 << 31)
1274*d83cc019SAndroid Build Coastguard Worker #define SDVO_PIPE_B_SELECT			(1 << 30)
1275*d83cc019SAndroid Build Coastguard Worker #define SDVO_STALL_SELECT			(1 << 29)
1276*d83cc019SAndroid Build Coastguard Worker #define SDVO_INTERRUPT_ENABLE			(1 << 26)
1277*d83cc019SAndroid Build Coastguard Worker 
1278*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_HOTPLUG_CTL 0x61164
1279*d83cc019SAndroid Build Coastguard Worker /*
1280*d83cc019SAndroid Build Coastguard Worker  * 915G/GM SDVO pixel multiplier.
1281*d83cc019SAndroid Build Coastguard Worker  *
1282*d83cc019SAndroid Build Coastguard Worker  * Programmed value is multiplier - 1, up to 5x.
1283*d83cc019SAndroid Build Coastguard Worker  *
1284*d83cc019SAndroid Build Coastguard Worker  * \sa DPLL_MD_UDI_MULTIPLIER_MASK
1285*d83cc019SAndroid Build Coastguard Worker  */
1286*d83cc019SAndroid Build Coastguard Worker #define SDVO_PORT_MULTIPLY_MASK			(7 << 23)
1287*d83cc019SAndroid Build Coastguard Worker #define SDVO_PORT_MULTIPLY_SHIFT		23
1288*d83cc019SAndroid Build Coastguard Worker #define SDVO_PHASE_SELECT_MASK			(15 << 19)
1289*d83cc019SAndroid Build Coastguard Worker #define SDVO_PHASE_SELECT_DEFAULT		(6 << 19)
1290*d83cc019SAndroid Build Coastguard Worker #define SDVO_CLOCK_OUTPUT_INVERT		(1 << 18)
1291*d83cc019SAndroid Build Coastguard Worker #define SDVOC_GANG_MODE				(1 << 16)
1292*d83cc019SAndroid Build Coastguard Worker #define SDVO_ENCODING_SDVO			(0x0 << 10)
1293*d83cc019SAndroid Build Coastguard Worker #define SDVO_ENCODING_HDMI			(0x2 << 10)
1294*d83cc019SAndroid Build Coastguard Worker /* Requird for HDMI operation */
1295*d83cc019SAndroid Build Coastguard Worker #define SDVO_NULL_PACKETS_DURING_VSYNC		(1 << 9)
1296*d83cc019SAndroid Build Coastguard Worker #define SDVO_BORDER_ENABLE			(1 << 7)
1297*d83cc019SAndroid Build Coastguard Worker #define SDVO_AUDIO_ENABLE			(1 << 6)
1298*d83cc019SAndroid Build Coastguard Worker /* New with 965, default is to be set */
1299*d83cc019SAndroid Build Coastguard Worker #define SDVO_VSYNC_ACTIVE_HIGH			(1 << 4)
1300*d83cc019SAndroid Build Coastguard Worker /* New with 965, default is to be set */
1301*d83cc019SAndroid Build Coastguard Worker #define SDVO_HSYNC_ACTIVE_HIGH			(1 << 3)
1302*d83cc019SAndroid Build Coastguard Worker /* 915/945 only, read-only bit */
1303*d83cc019SAndroid Build Coastguard Worker #define SDVOB_PCIE_CONCURRENCY			(1 << 3)
1304*d83cc019SAndroid Build Coastguard Worker #define SDVO_DETECTED				(1 << 2)
1305*d83cc019SAndroid Build Coastguard Worker /* Bits to be preserved when writing */
1306*d83cc019SAndroid Build Coastguard Worker #define SDVOB_PRESERVE_MASK			((1 << 17) | (1 << 16) | (1 << 14))
1307*d83cc019SAndroid Build Coastguard Worker #define SDVOC_PRESERVE_MASK			(1 << 17)
1308*d83cc019SAndroid Build Coastguard Worker 
1309*d83cc019SAndroid Build Coastguard Worker #define UDIB_SVB_SHB_CODES    		0x61144
1310*d83cc019SAndroid Build Coastguard Worker #define UDIB_SHA_BLANK_CODES		0x61148
1311*d83cc019SAndroid Build Coastguard Worker #define UDIB_START_END_FILL_CODES	0x6114c
1312*d83cc019SAndroid Build Coastguard Worker 
1313*d83cc019SAndroid Build Coastguard Worker 
1314*d83cc019SAndroid Build Coastguard Worker #define SDVOUDI				0x61150
1315*d83cc019SAndroid Build Coastguard Worker 
1316*d83cc019SAndroid Build Coastguard Worker #define I830_HTOTAL_MASK 	0xfff0000
1317*d83cc019SAndroid Build Coastguard Worker #define I830_HACTIVE_MASK	0x7ff
1318*d83cc019SAndroid Build Coastguard Worker 
1319*d83cc019SAndroid Build Coastguard Worker #define I830_HBLANKEND_MASK	0xfff0000
1320*d83cc019SAndroid Build Coastguard Worker #define I830_HBLANKSTART_MASK    0xfff
1321*d83cc019SAndroid Build Coastguard Worker 
1322*d83cc019SAndroid Build Coastguard Worker #define I830_HSYNCEND_MASK	0xfff0000
1323*d83cc019SAndroid Build Coastguard Worker #define I830_HSYNCSTART_MASK    0xfff
1324*d83cc019SAndroid Build Coastguard Worker 
1325*d83cc019SAndroid Build Coastguard Worker #define I830_VTOTAL_MASK 	0xfff0000
1326*d83cc019SAndroid Build Coastguard Worker #define I830_VACTIVE_MASK	0x7ff
1327*d83cc019SAndroid Build Coastguard Worker 
1328*d83cc019SAndroid Build Coastguard Worker #define I830_VBLANKEND_MASK	0xfff0000
1329*d83cc019SAndroid Build Coastguard Worker #define I830_VBLANKSTART_MASK    0xfff
1330*d83cc019SAndroid Build Coastguard Worker 
1331*d83cc019SAndroid Build Coastguard Worker #define I830_VSYNCEND_MASK	0xfff0000
1332*d83cc019SAndroid Build Coastguard Worker #define I830_VSYNCSTART_MASK    0xfff
1333*d83cc019SAndroid Build Coastguard Worker 
1334*d83cc019SAndroid Build Coastguard Worker #define I830_PIPEA_HORZ_MASK	0x7ff0000
1335*d83cc019SAndroid Build Coastguard Worker #define I830_PIPEA_VERT_MASK	0x7ff
1336*d83cc019SAndroid Build Coastguard Worker 
1337*d83cc019SAndroid Build Coastguard Worker #define ADPA			0x61100
1338*d83cc019SAndroid Build Coastguard Worker #define ADPA_DAC_ENABLE 	(1<<31)
1339*d83cc019SAndroid Build Coastguard Worker #define ADPA_DAC_DISABLE	0
1340*d83cc019SAndroid Build Coastguard Worker #define ADPA_PIPE_SELECT_MASK	(1<<30)
1341*d83cc019SAndroid Build Coastguard Worker #define ADPA_PIPE_A_SELECT	0
1342*d83cc019SAndroid Build Coastguard Worker #define ADPA_PIPE_B_SELECT	(1<<30)
1343*d83cc019SAndroid Build Coastguard Worker #define ADPA_USE_VGA_HVPOLARITY (1<<15)
1344*d83cc019SAndroid Build Coastguard Worker #define ADPA_SETS_HVPOLARITY	0
1345*d83cc019SAndroid Build Coastguard Worker #define ADPA_VSYNC_CNTL_DISABLE (1<<11)
1346*d83cc019SAndroid Build Coastguard Worker #define ADPA_VSYNC_CNTL_ENABLE	0
1347*d83cc019SAndroid Build Coastguard Worker #define ADPA_HSYNC_CNTL_DISABLE (1<<10)
1348*d83cc019SAndroid Build Coastguard Worker #define ADPA_HSYNC_CNTL_ENABLE	0
1349*d83cc019SAndroid Build Coastguard Worker #define ADPA_VSYNC_ACTIVE_HIGH	(1<<4)
1350*d83cc019SAndroid Build Coastguard Worker #define ADPA_VSYNC_ACTIVE_LOW	0
1351*d83cc019SAndroid Build Coastguard Worker #define ADPA_HSYNC_ACTIVE_HIGH	(1<<3)
1352*d83cc019SAndroid Build Coastguard Worker #define ADPA_HSYNC_ACTIVE_LOW	0
1353*d83cc019SAndroid Build Coastguard Worker 
1354*d83cc019SAndroid Build Coastguard Worker #define PCH_DSP_CHICKEN1	0x42000
1355*d83cc019SAndroid Build Coastguard Worker #define PCH_DSP_CHICKEN2	0x42004
1356*d83cc019SAndroid Build Coastguard Worker #define PCH_DSP_CHICKEN3	0x4200c
1357*d83cc019SAndroid Build Coastguard Worker #define PCH_DSPCLK_GATE_D	0x42020
1358*d83cc019SAndroid Build Coastguard Worker #define PCH_DSPRAMCLK_GATE_D	0x42024
1359*d83cc019SAndroid Build Coastguard Worker #define PCH_3DCGDIS0		0x46020
1360*d83cc019SAndroid Build Coastguard Worker #define PCH_3DCGDIS1		0x46024
1361*d83cc019SAndroid Build Coastguard Worker #define PCH_3DRAMCGDIS0		0x46028
1362*d83cc019SAndroid Build Coastguard Worker #define SOUTH_DSPCLK_GATE_D	0xc2020
1363*d83cc019SAndroid Build Coastguard Worker 
1364*d83cc019SAndroid Build Coastguard Worker #define CPU_eDP_A		0x64000
1365*d83cc019SAndroid Build Coastguard Worker #define PCH_DP_B		0xe4100
1366*d83cc019SAndroid Build Coastguard Worker #define PCH_DP_C		0xe4200
1367*d83cc019SAndroid Build Coastguard Worker #define PCH_DP_D		0xe4300
1368*d83cc019SAndroid Build Coastguard Worker 
1369*d83cc019SAndroid Build Coastguard Worker #define DVOA			0x61120
1370*d83cc019SAndroid Build Coastguard Worker #define DVOB			0x61140
1371*d83cc019SAndroid Build Coastguard Worker #define DVOC			0x61160
1372*d83cc019SAndroid Build Coastguard Worker #define DVO_ENABLE			(1 << 31)
1373*d83cc019SAndroid Build Coastguard Worker #define DVO_PIPE_B_SELECT		(1 << 30)
1374*d83cc019SAndroid Build Coastguard Worker #define DVO_PIPE_STALL_UNUSED		(0 << 28)
1375*d83cc019SAndroid Build Coastguard Worker #define DVO_PIPE_STALL			(1 << 28)
1376*d83cc019SAndroid Build Coastguard Worker #define DVO_PIPE_STALL_TV		(2 << 28)
1377*d83cc019SAndroid Build Coastguard Worker #define DVO_PIPE_STALL_MASK		(3 << 28)
1378*d83cc019SAndroid Build Coastguard Worker #define DVO_USE_VGA_SYNC		(1 << 15)
1379*d83cc019SAndroid Build Coastguard Worker #define DVO_DATA_ORDER_I740		(0 << 14)
1380*d83cc019SAndroid Build Coastguard Worker #define DVO_DATA_ORDER_FP		(1 << 14)
1381*d83cc019SAndroid Build Coastguard Worker #define DVO_VSYNC_DISABLE		(1 << 11)
1382*d83cc019SAndroid Build Coastguard Worker #define DVO_HSYNC_DISABLE		(1 << 10)
1383*d83cc019SAndroid Build Coastguard Worker #define DVO_VSYNC_TRISTATE		(1 << 9)
1384*d83cc019SAndroid Build Coastguard Worker #define DVO_HSYNC_TRISTATE		(1 << 8)
1385*d83cc019SAndroid Build Coastguard Worker #define DVO_BORDER_ENABLE		(1 << 7)
1386*d83cc019SAndroid Build Coastguard Worker #define DVO_DATA_ORDER_GBRG		(1 << 6)
1387*d83cc019SAndroid Build Coastguard Worker #define DVO_DATA_ORDER_RGGB		(0 << 6)
1388*d83cc019SAndroid Build Coastguard Worker #define DVO_DATA_ORDER_GBRG_ERRATA	(0 << 6)
1389*d83cc019SAndroid Build Coastguard Worker #define DVO_DATA_ORDER_RGGB_ERRATA	(1 << 6)
1390*d83cc019SAndroid Build Coastguard Worker #define DVO_VSYNC_ACTIVE_HIGH		(1 << 4)
1391*d83cc019SAndroid Build Coastguard Worker #define DVO_HSYNC_ACTIVE_HIGH		(1 << 3)
1392*d83cc019SAndroid Build Coastguard Worker #define DVO_BLANK_ACTIVE_HIGH		(1 << 2)
1393*d83cc019SAndroid Build Coastguard Worker #define DVO_OUTPUT_CSTATE_PIXELS	(1 << 1)	/* SDG only */
1394*d83cc019SAndroid Build Coastguard Worker #define DVO_OUTPUT_SOURCE_SIZE_PIXELS	(1 << 0)	/* SDG only */
1395*d83cc019SAndroid Build Coastguard Worker #define DVO_PRESERVE_MASK	(0x7<<24)
1396*d83cc019SAndroid Build Coastguard Worker 
1397*d83cc019SAndroid Build Coastguard Worker #define DVOA_SRCDIM		0x61124
1398*d83cc019SAndroid Build Coastguard Worker #define DVOB_SRCDIM		0x61144
1399*d83cc019SAndroid Build Coastguard Worker #define DVOC_SRCDIM		0x61164
1400*d83cc019SAndroid Build Coastguard Worker #define DVO_SRCDIM_HORIZONTAL_SHIFT	12
1401*d83cc019SAndroid Build Coastguard Worker #define DVO_SRCDIM_VERTICAL_SHIFT	0
1402*d83cc019SAndroid Build Coastguard Worker 
1403*d83cc019SAndroid Build Coastguard Worker /* @defgroup LVDS
1404*d83cc019SAndroid Build Coastguard Worker  * @{
1405*d83cc019SAndroid Build Coastguard Worker  */
1406*d83cc019SAndroid Build Coastguard Worker /*
1407*d83cc019SAndroid Build Coastguard Worker  * This register controls the LVDS output enable, pipe selection, and data
1408*d83cc019SAndroid Build Coastguard Worker  * format selection.
1409*d83cc019SAndroid Build Coastguard Worker  *
1410*d83cc019SAndroid Build Coastguard Worker  * All of the clock/data pairs are force powered down by power sequencing.
1411*d83cc019SAndroid Build Coastguard Worker  */
1412*d83cc019SAndroid Build Coastguard Worker #define LVDS			0x61180
1413*d83cc019SAndroid Build Coastguard Worker /*
1414*d83cc019SAndroid Build Coastguard Worker  * Enables the LVDS port.  This bit must be set before DPLLs are enabled, as
1415*d83cc019SAndroid Build Coastguard Worker  * the DPLL semantics change when the LVDS is assigned to that pipe.
1416*d83cc019SAndroid Build Coastguard Worker  */
1417*d83cc019SAndroid Build Coastguard Worker # define LVDS_PORT_EN			(1 << 31)
1418*d83cc019SAndroid Build Coastguard Worker /* Selects pipe B for LVDS data.  Must be set on pre-965. */
1419*d83cc019SAndroid Build Coastguard Worker # define LVDS_PIPEB_SELECT		(1 << 30)
1420*d83cc019SAndroid Build Coastguard Worker 
1421*d83cc019SAndroid Build Coastguard Worker /* on 965, dithering is enabled in this register, not PFIT_CONTROL */
1422*d83cc019SAndroid Build Coastguard Worker # define LVDS_DITHER_ENABLE		(1 << 25)
1423*d83cc019SAndroid Build Coastguard Worker 
1424*d83cc019SAndroid Build Coastguard Worker /*
1425*d83cc019SAndroid Build Coastguard Worker  * Selects between .0 and .1 formats:
1426*d83cc019SAndroid Build Coastguard Worker  *
1427*d83cc019SAndroid Build Coastguard Worker  * 0 = 1x18.0, 2x18.0, 1x24.0 or 2x24.0
1428*d83cc019SAndroid Build Coastguard Worker  * 1 = 1x24.1 or 2x24.1
1429*d83cc019SAndroid Build Coastguard Worker  */
1430*d83cc019SAndroid Build Coastguard Worker # define LVDS_DATA_FORMAT_DOT_ONE	(1 << 24)
1431*d83cc019SAndroid Build Coastguard Worker 
1432*d83cc019SAndroid Build Coastguard Worker /* Using LE instead of HS on second channel control signal */
1433*d83cc019SAndroid Build Coastguard Worker # define LVDS_LE_CONTROL_ENABLE		(1 << 23)
1434*d83cc019SAndroid Build Coastguard Worker 
1435*d83cc019SAndroid Build Coastguard Worker /* Using LF instead of VS on second channel control signal */
1436*d83cc019SAndroid Build Coastguard Worker # define LVDS_LF_CONTROL_ENABLE		(1 << 22)
1437*d83cc019SAndroid Build Coastguard Worker 
1438*d83cc019SAndroid Build Coastguard Worker /* invert vsync signal polarity */
1439*d83cc019SAndroid Build Coastguard Worker # define LVDS_VSYNC_POLARITY_INVERT	(1 << 21)
1440*d83cc019SAndroid Build Coastguard Worker 
1441*d83cc019SAndroid Build Coastguard Worker /* invert hsync signal polarity */
1442*d83cc019SAndroid Build Coastguard Worker # define LVDS_HSYNC_POLARITY_INVERT	(1 << 20)
1443*d83cc019SAndroid Build Coastguard Worker 
1444*d83cc019SAndroid Build Coastguard Worker /* invert display enable signal polarity */
1445*d83cc019SAndroid Build Coastguard Worker # define LVDS_DE_POLARITY_INVERT	(1 << 19)
1446*d83cc019SAndroid Build Coastguard Worker 
1447*d83cc019SAndroid Build Coastguard Worker /*
1448*d83cc019SAndroid Build Coastguard Worker  * Control signals for second channel, ignored in single channel modes
1449*d83cc019SAndroid Build Coastguard Worker  */
1450*d83cc019SAndroid Build Coastguard Worker 
1451*d83cc019SAndroid Build Coastguard Worker /* send DE, HS, VS on second channel */
1452*d83cc019SAndroid Build Coastguard Worker # define LVDS_SECOND_CHANNEL_DE_HS_VS	(0 << 17)
1453*d83cc019SAndroid Build Coastguard Worker 
1454*d83cc019SAndroid Build Coastguard Worker # define LVDS_SECOND_CHANNEL_RESERVED	(1 << 17)
1455*d83cc019SAndroid Build Coastguard Worker 
1456*d83cc019SAndroid Build Coastguard Worker /* Send zeros instead of DE, HS, VS on second channel */
1457*d83cc019SAndroid Build Coastguard Worker # define LVDS_SECOND_CHANNEL_ZEROS	(2 << 17)
1458*d83cc019SAndroid Build Coastguard Worker 
1459*d83cc019SAndroid Build Coastguard Worker /* Set DE=0, HS=LE, VS=LF on second channel */
1460*d83cc019SAndroid Build Coastguard Worker # define LVDS_SECOND_CHANNEL_HS_VS	(3 << 17)
1461*d83cc019SAndroid Build Coastguard Worker 
1462*d83cc019SAndroid Build Coastguard Worker /*
1463*d83cc019SAndroid Build Coastguard Worker  * Send duplicate data for channel reserved bits, otherwise send zeros
1464*d83cc019SAndroid Build Coastguard Worker  */
1465*d83cc019SAndroid Build Coastguard Worker # define LVDS_CHANNEL_DUP_RESERVED	(1 << 16)
1466*d83cc019SAndroid Build Coastguard Worker 
1467*d83cc019SAndroid Build Coastguard Worker /*
1468*d83cc019SAndroid Build Coastguard Worker  * Enable border for unscaled (or aspect-scaled) display
1469*d83cc019SAndroid Build Coastguard Worker  */
1470*d83cc019SAndroid Build Coastguard Worker # define LVDS_BORDER_ENABLE		(1 << 15)
1471*d83cc019SAndroid Build Coastguard Worker 
1472*d83cc019SAndroid Build Coastguard Worker /*
1473*d83cc019SAndroid Build Coastguard Worker  * Tri-state the LVDS buffers when powered down, otherwise
1474*d83cc019SAndroid Build Coastguard Worker  * they are set to 0V
1475*d83cc019SAndroid Build Coastguard Worker  */
1476*d83cc019SAndroid Build Coastguard Worker # define LVDS_POWER_DOWN_TRI_STATE	(1 << 10)
1477*d83cc019SAndroid Build Coastguard Worker 
1478*d83cc019SAndroid Build Coastguard Worker /*
1479*d83cc019SAndroid Build Coastguard Worker  * Enables the A0-A2 data pairs and CLKA, containing 18 bits of color data per
1480*d83cc019SAndroid Build Coastguard Worker  * pixel.
1481*d83cc019SAndroid Build Coastguard Worker  */
1482*d83cc019SAndroid Build Coastguard Worker # define LVDS_A0A2_CLKA_POWER_MASK	(3 << 8)
1483*d83cc019SAndroid Build Coastguard Worker # define LVDS_A0A2_CLKA_POWER_DOWN	(0 << 8)
1484*d83cc019SAndroid Build Coastguard Worker # define LVDS_A0A2_CLKA_POWER_UP	(3 << 8)
1485*d83cc019SAndroid Build Coastguard Worker /*
1486*d83cc019SAndroid Build Coastguard Worker  * Controls the A3 data pair, which contains the additional LSBs for 24 bit
1487*d83cc019SAndroid Build Coastguard Worker  * mode.  Only enabled if LVDS_A0A2_CLKA_POWER_UP also indicates it should be
1488*d83cc019SAndroid Build Coastguard Worker  * on.
1489*d83cc019SAndroid Build Coastguard Worker  */
1490*d83cc019SAndroid Build Coastguard Worker # define LVDS_A3_POWER_MASK		(3 << 6)
1491*d83cc019SAndroid Build Coastguard Worker # define LVDS_A3_POWER_DOWN		(0 << 6)
1492*d83cc019SAndroid Build Coastguard Worker # define LVDS_A3_POWER_UP		(3 << 6)
1493*d83cc019SAndroid Build Coastguard Worker /*
1494*d83cc019SAndroid Build Coastguard Worker  * Controls the CLKB pair.  This should only be set when LVDS_B0B3_POWER_UP
1495*d83cc019SAndroid Build Coastguard Worker  * is set.
1496*d83cc019SAndroid Build Coastguard Worker  */
1497*d83cc019SAndroid Build Coastguard Worker # define LVDS_CLKB_POWER_MASK		(3 << 4)
1498*d83cc019SAndroid Build Coastguard Worker # define LVDS_CLKB_POWER_DOWN		(0 << 4)
1499*d83cc019SAndroid Build Coastguard Worker # define LVDS_CLKB_POWER_UP		(3 << 4)
1500*d83cc019SAndroid Build Coastguard Worker 
1501*d83cc019SAndroid Build Coastguard Worker /*
1502*d83cc019SAndroid Build Coastguard Worker  * Controls the B0-B3 data pairs.  This must be set to match the DPLL p2
1503*d83cc019SAndroid Build Coastguard Worker  * setting for whether we are in dual-channel mode.  The B3 pair will
1504*d83cc019SAndroid Build Coastguard Worker  * additionally only be powered up when LVDS_A3_POWER_UP is set.
1505*d83cc019SAndroid Build Coastguard Worker  */
1506*d83cc019SAndroid Build Coastguard Worker # define LVDS_B0B3_POWER_MASK		(3 << 2)
1507*d83cc019SAndroid Build Coastguard Worker # define LVDS_B0B3_POWER_DOWN		(0 << 2)
1508*d83cc019SAndroid Build Coastguard Worker # define LVDS_B0B3_POWER_UP		(3 << 2)
1509*d83cc019SAndroid Build Coastguard Worker 
1510*d83cc019SAndroid Build Coastguard Worker /* @} */
1511*d83cc019SAndroid Build Coastguard Worker 
1512*d83cc019SAndroid Build Coastguard Worker #define DP_B			0x64100
1513*d83cc019SAndroid Build Coastguard Worker #define DPB_AUX_CH_CTL		0x64110
1514*d83cc019SAndroid Build Coastguard Worker #define DPB_AUX_CH_DATA1	0x64114
1515*d83cc019SAndroid Build Coastguard Worker #define DPB_AUX_CH_DATA2	0x64118
1516*d83cc019SAndroid Build Coastguard Worker #define DPB_AUX_CH_DATA3	0x6411c
1517*d83cc019SAndroid Build Coastguard Worker #define DPB_AUX_CH_DATA4	0x64120
1518*d83cc019SAndroid Build Coastguard Worker #define DPB_AUX_CH_DATA5	0x64124
1519*d83cc019SAndroid Build Coastguard Worker 
1520*d83cc019SAndroid Build Coastguard Worker #define DP_C			0x64200
1521*d83cc019SAndroid Build Coastguard Worker #define DPC_AUX_CH_CTL		0x64210
1522*d83cc019SAndroid Build Coastguard Worker #define DPC_AUX_CH_DATA1	0x64214
1523*d83cc019SAndroid Build Coastguard Worker #define DPC_AUX_CH_DATA2	0x64218
1524*d83cc019SAndroid Build Coastguard Worker #define DPC_AUX_CH_DATA3	0x6421c
1525*d83cc019SAndroid Build Coastguard Worker #define DPC_AUX_CH_DATA4	0x64220
1526*d83cc019SAndroid Build Coastguard Worker #define DPC_AUX_CH_DATA5	0x64224
1527*d83cc019SAndroid Build Coastguard Worker 
1528*d83cc019SAndroid Build Coastguard Worker #define DP_D			0x64300
1529*d83cc019SAndroid Build Coastguard Worker #define DPD_AUX_CH_CTL		0x64310
1530*d83cc019SAndroid Build Coastguard Worker #define DPD_AUX_CH_DATA1	0x64314
1531*d83cc019SAndroid Build Coastguard Worker #define DPD_AUX_CH_DATA2	0x64318
1532*d83cc019SAndroid Build Coastguard Worker #define DPD_AUX_CH_DATA3	0x6431c
1533*d83cc019SAndroid Build Coastguard Worker #define DPD_AUX_CH_DATA4	0x64320
1534*d83cc019SAndroid Build Coastguard Worker #define DPD_AUX_CH_DATA5	0x64324
1535*d83cc019SAndroid Build Coastguard Worker 
1536*d83cc019SAndroid Build Coastguard Worker /*
1537*d83cc019SAndroid Build Coastguard Worker  * Two channel clock control. Turn this on if you need clkb for two channel mode
1538*d83cc019SAndroid Build Coastguard Worker  * Overridden by global LVDS power sequencing
1539*d83cc019SAndroid Build Coastguard Worker  */
1540*d83cc019SAndroid Build Coastguard Worker 
1541*d83cc019SAndroid Build Coastguard Worker /* clkb off */
1542*d83cc019SAndroid Build Coastguard Worker # define LVDS_CLKB_POWER_DOWN		(0 << 4)
1543*d83cc019SAndroid Build Coastguard Worker 
1544*d83cc019SAndroid Build Coastguard Worker /* powered up, but clkb forced to 0 */
1545*d83cc019SAndroid Build Coastguard Worker # define LVDS_CLKB_POWER_PARTIAL	(1 << 4)
1546*d83cc019SAndroid Build Coastguard Worker 
1547*d83cc019SAndroid Build Coastguard Worker /* clock B running */
1548*d83cc019SAndroid Build Coastguard Worker # define LVDS_CLKB_POWER_UP		(3 << 4)
1549*d83cc019SAndroid Build Coastguard Worker 
1550*d83cc019SAndroid Build Coastguard Worker /*
1551*d83cc019SAndroid Build Coastguard Worker  * Two channel mode B0-B2 control. Sets state when power is on.
1552*d83cc019SAndroid Build Coastguard Worker  * Set to POWER_DOWN in single channel mode, other settings enable
1553*d83cc019SAndroid Build Coastguard Worker  * two channel mode. The CLKB power control controls whether that clock
1554*d83cc019SAndroid Build Coastguard Worker  * is enabled during two channel mode.
1555*d83cc019SAndroid Build Coastguard Worker  *
1556*d83cc019SAndroid Build Coastguard Worker  */
1557*d83cc019SAndroid Build Coastguard Worker /* Everything is off, including B3 and CLKB */
1558*d83cc019SAndroid Build Coastguard Worker # define LVDS_B_POWER_DOWN		(0 << 2)
1559*d83cc019SAndroid Build Coastguard Worker 
1560*d83cc019SAndroid Build Coastguard Worker /* B0, B1, B2 and data lines forced to 0. timing is active */
1561*d83cc019SAndroid Build Coastguard Worker # define LVDS_B_POWER_PARTIAL		(1 << 2)
1562*d83cc019SAndroid Build Coastguard Worker 
1563*d83cc019SAndroid Build Coastguard Worker /* data lines active (both timing and colour) */
1564*d83cc019SAndroid Build Coastguard Worker # define LVDS_B_POWER_UP		(3 << 2)
1565*d83cc019SAndroid Build Coastguard Worker 
1566*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_CTL
1567*d83cc019SAndroid Build Coastguard Worker  * @{
1568*d83cc019SAndroid Build Coastguard Worker  */
1569*d83cc019SAndroid Build Coastguard Worker #define TV_CTL			0x68000
1570*d83cc019SAndroid Build Coastguard Worker /* Enables the TV encoder */
1571*d83cc019SAndroid Build Coastguard Worker # define TV_ENC_ENABLE			(1 << 31)
1572*d83cc019SAndroid Build Coastguard Worker /* Sources the TV encoder input from pipe B instead of A. */
1573*d83cc019SAndroid Build Coastguard Worker # define TV_ENC_PIPEB_SELECT		(1 << 30)
1574*d83cc019SAndroid Build Coastguard Worker /* Outputs composite video (DAC A only) */
1575*d83cc019SAndroid Build Coastguard Worker # define TV_ENC_OUTPUT_COMPOSITE	(0 << 28)
1576*d83cc019SAndroid Build Coastguard Worker /* Outputs SVideo video (DAC B/C) */
1577*d83cc019SAndroid Build Coastguard Worker # define TV_ENC_OUTPUT_SVIDEO		(1 << 28)
1578*d83cc019SAndroid Build Coastguard Worker /* Outputs Component video (DAC A/B/C) */
1579*d83cc019SAndroid Build Coastguard Worker # define TV_ENC_OUTPUT_COMPONENT	(2 << 28)
1580*d83cc019SAndroid Build Coastguard Worker /* Outputs Composite and SVideo (DAC A/B/C) */
1581*d83cc019SAndroid Build Coastguard Worker # define TV_ENC_OUTPUT_SVIDEO_COMPOSITE	(3 << 28)
1582*d83cc019SAndroid Build Coastguard Worker # define TV_TRILEVEL_SYNC		(1 << 21)
1583*d83cc019SAndroid Build Coastguard Worker /* Enables slow sync generation (945GM only) */
1584*d83cc019SAndroid Build Coastguard Worker # define TV_SLOW_SYNC			(1 << 20)
1585*d83cc019SAndroid Build Coastguard Worker /* Selects 4x oversampling for 480i and 576p */
1586*d83cc019SAndroid Build Coastguard Worker # define TV_OVERSAMPLE_4X		(0 << 18)
1587*d83cc019SAndroid Build Coastguard Worker /* Selects 2x oversampling for 720p and 1080i */
1588*d83cc019SAndroid Build Coastguard Worker # define TV_OVERSAMPLE_2X		(1 << 18)
1589*d83cc019SAndroid Build Coastguard Worker /* Selects no oversampling for 1080p */
1590*d83cc019SAndroid Build Coastguard Worker # define TV_OVERSAMPLE_NONE		(2 << 18)
1591*d83cc019SAndroid Build Coastguard Worker /* Selects 8x oversampling */
1592*d83cc019SAndroid Build Coastguard Worker # define TV_OVERSAMPLE_8X		(3 << 18)
1593*d83cc019SAndroid Build Coastguard Worker /* Selects progressive mode rather than interlaced */
1594*d83cc019SAndroid Build Coastguard Worker # define TV_PROGRESSIVE			(1 << 17)
1595*d83cc019SAndroid Build Coastguard Worker /* Sets the colorburst to PAL mode.  Required for non-M PAL modes. */
1596*d83cc019SAndroid Build Coastguard Worker # define TV_PAL_BURST			(1 << 16)
1597*d83cc019SAndroid Build Coastguard Worker /* Field for setting delay of Y compared to C */
1598*d83cc019SAndroid Build Coastguard Worker # define TV_YC_SKEW_MASK		(7 << 12)
1599*d83cc019SAndroid Build Coastguard Worker /* Enables a fix for 480p/576p standard definition modes on the 915GM only */
1600*d83cc019SAndroid Build Coastguard Worker # define TV_ENC_SDP_FIX			(1 << 11)
1601*d83cc019SAndroid Build Coastguard Worker /*
1602*d83cc019SAndroid Build Coastguard Worker  * Enables a fix for the 915GM only.
1603*d83cc019SAndroid Build Coastguard Worker  *
1604*d83cc019SAndroid Build Coastguard Worker  * Not sure what it does.
1605*d83cc019SAndroid Build Coastguard Worker  */
1606*d83cc019SAndroid Build Coastguard Worker # define TV_ENC_C0_FIX			(1 << 10)
1607*d83cc019SAndroid Build Coastguard Worker /* Bits that must be preserved by software */
1608*d83cc019SAndroid Build Coastguard Worker # define TV_CTL_SAVE			((1 << 11) | (3 << 9) | (7 << 6) | 0xf)
1609*d83cc019SAndroid Build Coastguard Worker # define TV_FUSE_STATE_MASK		(3 << 4)
1610*d83cc019SAndroid Build Coastguard Worker /* Read-only state that reports all features enabled */
1611*d83cc019SAndroid Build Coastguard Worker # define TV_FUSE_STATE_ENABLED		(0 << 4)
1612*d83cc019SAndroid Build Coastguard Worker /* Read-only state that reports that Macrovision is disabled in hardware*/
1613*d83cc019SAndroid Build Coastguard Worker # define TV_FUSE_STATE_NO_MACROVISION	(1 << 4)
1614*d83cc019SAndroid Build Coastguard Worker /* Read-only state that reports that TV-out is disabled in hardware. */
1615*d83cc019SAndroid Build Coastguard Worker # define TV_FUSE_STATE_DISABLED		(2 << 4)
1616*d83cc019SAndroid Build Coastguard Worker /* Normal operation */
1617*d83cc019SAndroid Build Coastguard Worker # define TV_TEST_MODE_NORMAL		(0 << 0)
1618*d83cc019SAndroid Build Coastguard Worker /* Encoder test pattern 1 - combo pattern */
1619*d83cc019SAndroid Build Coastguard Worker # define TV_TEST_MODE_PATTERN_1		(1 << 0)
1620*d83cc019SAndroid Build Coastguard Worker /* Encoder test pattern 2 - full screen vertical 75% color bars */
1621*d83cc019SAndroid Build Coastguard Worker # define TV_TEST_MODE_PATTERN_2		(2 << 0)
1622*d83cc019SAndroid Build Coastguard Worker /* Encoder test pattern 3 - full screen horizontal 75% color bars */
1623*d83cc019SAndroid Build Coastguard Worker # define TV_TEST_MODE_PATTERN_3		(3 << 0)
1624*d83cc019SAndroid Build Coastguard Worker /* Encoder test pattern 4 - random noise */
1625*d83cc019SAndroid Build Coastguard Worker # define TV_TEST_MODE_PATTERN_4		(4 << 0)
1626*d83cc019SAndroid Build Coastguard Worker /* Encoder test pattern 5 - linear color ramps */
1627*d83cc019SAndroid Build Coastguard Worker # define TV_TEST_MODE_PATTERN_5		(5 << 0)
1628*d83cc019SAndroid Build Coastguard Worker /*
1629*d83cc019SAndroid Build Coastguard Worker  * This test mode forces the DACs to 50% of full output.
1630*d83cc019SAndroid Build Coastguard Worker  *
1631*d83cc019SAndroid Build Coastguard Worker  * This is used for load detection in combination with TVDAC_SENSE_MASK
1632*d83cc019SAndroid Build Coastguard Worker  */
1633*d83cc019SAndroid Build Coastguard Worker # define TV_TEST_MODE_MONITOR_DETECT	(7 << 0)
1634*d83cc019SAndroid Build Coastguard Worker # define TV_TEST_MODE_MASK		(7 << 0)
1635*d83cc019SAndroid Build Coastguard Worker /* @} */
1636*d83cc019SAndroid Build Coastguard Worker 
1637*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_DAC
1638*d83cc019SAndroid Build Coastguard Worker  * @{
1639*d83cc019SAndroid Build Coastguard Worker  */
1640*d83cc019SAndroid Build Coastguard Worker #define TV_DAC			0x68004
1641*d83cc019SAndroid Build Coastguard Worker /*
1642*d83cc019SAndroid Build Coastguard Worker  * Reports that DAC state change logic has reported change (RO).
1643*d83cc019SAndroid Build Coastguard Worker  *
1644*d83cc019SAndroid Build Coastguard Worker  * This gets cleared when TV_DAC_STATE_EN is cleared
1645*d83cc019SAndroid Build Coastguard Worker */
1646*d83cc019SAndroid Build Coastguard Worker # define TVDAC_STATE_CHG		(1 << 31)
1647*d83cc019SAndroid Build Coastguard Worker # define TVDAC_SENSE_MASK		(7 << 28)
1648*d83cc019SAndroid Build Coastguard Worker /* Reports that DAC A voltage is above the detect threshold */
1649*d83cc019SAndroid Build Coastguard Worker # define TVDAC_A_SENSE			(1 << 30)
1650*d83cc019SAndroid Build Coastguard Worker /* Reports that DAC B voltage is above the detect threshold */
1651*d83cc019SAndroid Build Coastguard Worker # define TVDAC_B_SENSE			(1 << 29)
1652*d83cc019SAndroid Build Coastguard Worker /* Reports that DAC C voltage is above the detect threshold */
1653*d83cc019SAndroid Build Coastguard Worker # define TVDAC_C_SENSE			(1 << 28)
1654*d83cc019SAndroid Build Coastguard Worker /*
1655*d83cc019SAndroid Build Coastguard Worker  * Enables DAC state detection logic, for load-based TV detection.
1656*d83cc019SAndroid Build Coastguard Worker  *
1657*d83cc019SAndroid Build Coastguard Worker  * The PLL of the chosen pipe (in TV_CTL) must be running, and the encoder set
1658*d83cc019SAndroid Build Coastguard Worker  * to off, for load detection to work.
1659*d83cc019SAndroid Build Coastguard Worker  */
1660*d83cc019SAndroid Build Coastguard Worker # define TVDAC_STATE_CHG_EN		(1 << 27)
1661*d83cc019SAndroid Build Coastguard Worker /* Sets the DAC A sense value to high */
1662*d83cc019SAndroid Build Coastguard Worker # define TVDAC_A_SENSE_CTL		(1 << 26)
1663*d83cc019SAndroid Build Coastguard Worker /* Sets the DAC B sense value to high */
1664*d83cc019SAndroid Build Coastguard Worker # define TVDAC_B_SENSE_CTL		(1 << 25)
1665*d83cc019SAndroid Build Coastguard Worker /* Sets the DAC C sense value to high */
1666*d83cc019SAndroid Build Coastguard Worker # define TVDAC_C_SENSE_CTL		(1 << 24)
1667*d83cc019SAndroid Build Coastguard Worker /* Overrides the ENC_ENABLE and DAC voltage levels */
1668*d83cc019SAndroid Build Coastguard Worker # define DAC_CTL_OVERRIDE		(1 << 7)
1669*d83cc019SAndroid Build Coastguard Worker /* Sets the slew rate.  Must be preserved in software */
1670*d83cc019SAndroid Build Coastguard Worker # define ENC_TVDAC_SLEW_FAST		(1 << 6)
1671*d83cc019SAndroid Build Coastguard Worker # define DAC_A_1_3_V			(0 << 4)
1672*d83cc019SAndroid Build Coastguard Worker # define DAC_A_1_1_V			(1 << 4)
1673*d83cc019SAndroid Build Coastguard Worker # define DAC_A_0_7_V			(2 << 4)
1674*d83cc019SAndroid Build Coastguard Worker # define DAC_A_OFF			(3 << 4)
1675*d83cc019SAndroid Build Coastguard Worker # define DAC_B_1_3_V			(0 << 2)
1676*d83cc019SAndroid Build Coastguard Worker # define DAC_B_1_1_V			(1 << 2)
1677*d83cc019SAndroid Build Coastguard Worker # define DAC_B_0_7_V			(2 << 2)
1678*d83cc019SAndroid Build Coastguard Worker # define DAC_B_OFF			(3 << 2)
1679*d83cc019SAndroid Build Coastguard Worker # define DAC_C_1_3_V			(0 << 0)
1680*d83cc019SAndroid Build Coastguard Worker # define DAC_C_1_1_V			(1 << 0)
1681*d83cc019SAndroid Build Coastguard Worker # define DAC_C_0_7_V			(2 << 0)
1682*d83cc019SAndroid Build Coastguard Worker # define DAC_C_OFF			(3 << 0)
1683*d83cc019SAndroid Build Coastguard Worker /* @} */
1684*d83cc019SAndroid Build Coastguard Worker 
1685*d83cc019SAndroid Build Coastguard Worker /*
1686*d83cc019SAndroid Build Coastguard Worker  * CSC coefficients are stored in a floating point format with 9 bits of
1687*d83cc019SAndroid Build Coastguard Worker  * mantissa and 2 or 3 bits of exponent.  The exponent is represented as 2*-n,
1688*d83cc019SAndroid Build Coastguard Worker  * where 2-bit exponents are unsigned n, and 3-bit exponents are signed n with
1689*d83cc019SAndroid Build Coastguard Worker  * -1 (0x3) being the only legal negative value.
1690*d83cc019SAndroid Build Coastguard Worker  */
1691*d83cc019SAndroid Build Coastguard Worker #define TV_CSC_Y		0x68010
1692*d83cc019SAndroid Build Coastguard Worker # define TV_RY_MASK			0x07ff0000
1693*d83cc019SAndroid Build Coastguard Worker # define TV_RY_SHIFT			16
1694*d83cc019SAndroid Build Coastguard Worker # define TV_GY_MASK			0x00000fff
1695*d83cc019SAndroid Build Coastguard Worker # define TV_GY_SHIFT			0
1696*d83cc019SAndroid Build Coastguard Worker 
1697*d83cc019SAndroid Build Coastguard Worker #define TV_CSC_Y2		0x68014
1698*d83cc019SAndroid Build Coastguard Worker # define TV_BY_MASK			0x07ff0000
1699*d83cc019SAndroid Build Coastguard Worker # define TV_BY_SHIFT			16
1700*d83cc019SAndroid Build Coastguard Worker /*
1701*d83cc019SAndroid Build Coastguard Worker  * Y attenuation for component video.
1702*d83cc019SAndroid Build Coastguard Worker  *
1703*d83cc019SAndroid Build Coastguard Worker  * Stored in 1.9 fixed point.
1704*d83cc019SAndroid Build Coastguard Worker  */
1705*d83cc019SAndroid Build Coastguard Worker # define TV_AY_MASK			0x000003ff
1706*d83cc019SAndroid Build Coastguard Worker # define TV_AY_SHIFT			0
1707*d83cc019SAndroid Build Coastguard Worker 
1708*d83cc019SAndroid Build Coastguard Worker #define TV_CSC_U		0x68018
1709*d83cc019SAndroid Build Coastguard Worker # define TV_RU_MASK			0x07ff0000
1710*d83cc019SAndroid Build Coastguard Worker # define TV_RU_SHIFT			16
1711*d83cc019SAndroid Build Coastguard Worker # define TV_GU_MASK			0x000007ff
1712*d83cc019SAndroid Build Coastguard Worker # define TV_GU_SHIFT			0
1713*d83cc019SAndroid Build Coastguard Worker 
1714*d83cc019SAndroid Build Coastguard Worker #define TV_CSC_U2		0x6801c
1715*d83cc019SAndroid Build Coastguard Worker # define TV_BU_MASK			0x07ff0000
1716*d83cc019SAndroid Build Coastguard Worker # define TV_BU_SHIFT			16
1717*d83cc019SAndroid Build Coastguard Worker /*
1718*d83cc019SAndroid Build Coastguard Worker  * U attenuation for component video.
1719*d83cc019SAndroid Build Coastguard Worker  *
1720*d83cc019SAndroid Build Coastguard Worker  * Stored in 1.9 fixed point.
1721*d83cc019SAndroid Build Coastguard Worker  */
1722*d83cc019SAndroid Build Coastguard Worker # define TV_AU_MASK			0x000003ff
1723*d83cc019SAndroid Build Coastguard Worker # define TV_AU_SHIFT			0
1724*d83cc019SAndroid Build Coastguard Worker 
1725*d83cc019SAndroid Build Coastguard Worker #define TV_CSC_V		0x68020
1726*d83cc019SAndroid Build Coastguard Worker # define TV_RV_MASK			0x0fff0000
1727*d83cc019SAndroid Build Coastguard Worker # define TV_RV_SHIFT			16
1728*d83cc019SAndroid Build Coastguard Worker # define TV_GV_MASK			0x000007ff
1729*d83cc019SAndroid Build Coastguard Worker # define TV_GV_SHIFT			0
1730*d83cc019SAndroid Build Coastguard Worker 
1731*d83cc019SAndroid Build Coastguard Worker #define TV_CSC_V2		0x68024
1732*d83cc019SAndroid Build Coastguard Worker # define TV_BV_MASK			0x07ff0000
1733*d83cc019SAndroid Build Coastguard Worker # define TV_BV_SHIFT			16
1734*d83cc019SAndroid Build Coastguard Worker /*
1735*d83cc019SAndroid Build Coastguard Worker  * V attenuation for component video.
1736*d83cc019SAndroid Build Coastguard Worker  *
1737*d83cc019SAndroid Build Coastguard Worker  * Stored in 1.9 fixed point.
1738*d83cc019SAndroid Build Coastguard Worker  */
1739*d83cc019SAndroid Build Coastguard Worker # define TV_AV_MASK			0x000007ff
1740*d83cc019SAndroid Build Coastguard Worker # define TV_AV_SHIFT			0
1741*d83cc019SAndroid Build Coastguard Worker 
1742*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_CSC_KNOBS
1743*d83cc019SAndroid Build Coastguard Worker  * @{
1744*d83cc019SAndroid Build Coastguard Worker  */
1745*d83cc019SAndroid Build Coastguard Worker #define TV_CLR_KNOBS		0x68028
1746*d83cc019SAndroid Build Coastguard Worker /* 2s-complement brightness adjustment */
1747*d83cc019SAndroid Build Coastguard Worker # define TV_BRIGHTNESS_MASK		0xff000000
1748*d83cc019SAndroid Build Coastguard Worker # define TV_BRIGHTNESS_SHIFT		24
1749*d83cc019SAndroid Build Coastguard Worker /* Contrast adjustment, as a 2.6 unsigned floating point number */
1750*d83cc019SAndroid Build Coastguard Worker # define TV_CONTRAST_MASK		0x00ff0000
1751*d83cc019SAndroid Build Coastguard Worker # define TV_CONTRAST_SHIFT		16
1752*d83cc019SAndroid Build Coastguard Worker /* Saturation adjustment, as a 2.6 unsigned floating point number */
1753*d83cc019SAndroid Build Coastguard Worker # define TV_SATURATION_MASK		0x0000ff00
1754*d83cc019SAndroid Build Coastguard Worker # define TV_SATURATION_SHIFT		8
1755*d83cc019SAndroid Build Coastguard Worker /* Hue adjustment, as an integer phase angle in degrees */
1756*d83cc019SAndroid Build Coastguard Worker # define TV_HUE_MASK			0x000000ff
1757*d83cc019SAndroid Build Coastguard Worker # define TV_HUE_SHIFT			0
1758*d83cc019SAndroid Build Coastguard Worker /* @} */
1759*d83cc019SAndroid Build Coastguard Worker 
1760*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_CLR_LEVEL
1761*d83cc019SAndroid Build Coastguard Worker  * @{
1762*d83cc019SAndroid Build Coastguard Worker  */
1763*d83cc019SAndroid Build Coastguard Worker #define TV_CLR_LEVEL		0x6802c
1764*d83cc019SAndroid Build Coastguard Worker /* Controls the DAC level for black */
1765*d83cc019SAndroid Build Coastguard Worker # define TV_BLACK_LEVEL_MASK		0x01ff0000
1766*d83cc019SAndroid Build Coastguard Worker # define TV_BLACK_LEVEL_SHIFT		16
1767*d83cc019SAndroid Build Coastguard Worker /* Controls the DAC level for blanking */
1768*d83cc019SAndroid Build Coastguard Worker # define TV_BLANK_LEVEL_MASK		0x000001ff
1769*d83cc019SAndroid Build Coastguard Worker # define TV_BLANK_LEVEL_SHIFT		0
1770*d83cc019SAndroid Build Coastguard Worker /* @} */
1771*d83cc019SAndroid Build Coastguard Worker 
1772*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_H_CTL_1
1773*d83cc019SAndroid Build Coastguard Worker  * @{
1774*d83cc019SAndroid Build Coastguard Worker  */
1775*d83cc019SAndroid Build Coastguard Worker #define TV_H_CTL_1		0x68030
1776*d83cc019SAndroid Build Coastguard Worker /* Number of pixels in the hsync. */
1777*d83cc019SAndroid Build Coastguard Worker # define TV_HSYNC_END_MASK		0x1fff0000
1778*d83cc019SAndroid Build Coastguard Worker # define TV_HSYNC_END_SHIFT		16
1779*d83cc019SAndroid Build Coastguard Worker /* Total number of pixels minus one in the line (display and blanking). */
1780*d83cc019SAndroid Build Coastguard Worker # define TV_HTOTAL_MASK			0x00001fff
1781*d83cc019SAndroid Build Coastguard Worker # define TV_HTOTAL_SHIFT		0
1782*d83cc019SAndroid Build Coastguard Worker /* @} */
1783*d83cc019SAndroid Build Coastguard Worker 
1784*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_H_CTL_2
1785*d83cc019SAndroid Build Coastguard Worker  * @{
1786*d83cc019SAndroid Build Coastguard Worker  */
1787*d83cc019SAndroid Build Coastguard Worker #define TV_H_CTL_2		0x68034
1788*d83cc019SAndroid Build Coastguard Worker /* Enables the colorburst (needed for non-component color) */
1789*d83cc019SAndroid Build Coastguard Worker # define TV_BURST_ENA			(1 << 31)
1790*d83cc019SAndroid Build Coastguard Worker /* Offset of the colorburst from the start of hsync, in pixels minus one. */
1791*d83cc019SAndroid Build Coastguard Worker # define TV_HBURST_START_SHIFT		16
1792*d83cc019SAndroid Build Coastguard Worker # define TV_HBURST_START_MASK		0x1fff0000
1793*d83cc019SAndroid Build Coastguard Worker /* Length of the colorburst */
1794*d83cc019SAndroid Build Coastguard Worker # define TV_HBURST_LEN_SHIFT		0
1795*d83cc019SAndroid Build Coastguard Worker # define TV_HBURST_LEN_MASK		0x0001fff
1796*d83cc019SAndroid Build Coastguard Worker /* @} */
1797*d83cc019SAndroid Build Coastguard Worker 
1798*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_H_CTL_3
1799*d83cc019SAndroid Build Coastguard Worker  * @{
1800*d83cc019SAndroid Build Coastguard Worker  */
1801*d83cc019SAndroid Build Coastguard Worker #define TV_H_CTL_3		0x68038
1802*d83cc019SAndroid Build Coastguard Worker /* End of hblank, measured in pixels minus one from start of hsync */
1803*d83cc019SAndroid Build Coastguard Worker # define TV_HBLANK_END_SHIFT		16
1804*d83cc019SAndroid Build Coastguard Worker # define TV_HBLANK_END_MASK		0x1fff0000
1805*d83cc019SAndroid Build Coastguard Worker /* Start of hblank, measured in pixels minus one from start of hsync */
1806*d83cc019SAndroid Build Coastguard Worker # define TV_HBLANK_START_SHIFT		0
1807*d83cc019SAndroid Build Coastguard Worker # define TV_HBLANK_START_MASK		0x0001fff
1808*d83cc019SAndroid Build Coastguard Worker /* @} */
1809*d83cc019SAndroid Build Coastguard Worker 
1810*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_V_CTL_1
1811*d83cc019SAndroid Build Coastguard Worker  * @{
1812*d83cc019SAndroid Build Coastguard Worker  */
1813*d83cc019SAndroid Build Coastguard Worker #define TV_V_CTL_1		0x6803c
1814*d83cc019SAndroid Build Coastguard Worker /* XXX */
1815*d83cc019SAndroid Build Coastguard Worker # define TV_NBR_END_SHIFT		16
1816*d83cc019SAndroid Build Coastguard Worker # define TV_NBR_END_MASK		0x07ff0000
1817*d83cc019SAndroid Build Coastguard Worker /* XXX */
1818*d83cc019SAndroid Build Coastguard Worker # define TV_VI_END_F1_SHIFT		8
1819*d83cc019SAndroid Build Coastguard Worker # define TV_VI_END_F1_MASK		0x00003f00
1820*d83cc019SAndroid Build Coastguard Worker /* XXX */
1821*d83cc019SAndroid Build Coastguard Worker # define TV_VI_END_F2_SHIFT		0
1822*d83cc019SAndroid Build Coastguard Worker # define TV_VI_END_F2_MASK		0x0000003f
1823*d83cc019SAndroid Build Coastguard Worker /* @} */
1824*d83cc019SAndroid Build Coastguard Worker 
1825*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_V_CTL_2
1826*d83cc019SAndroid Build Coastguard Worker  * @{
1827*d83cc019SAndroid Build Coastguard Worker  */
1828*d83cc019SAndroid Build Coastguard Worker #define TV_V_CTL_2		0x68040
1829*d83cc019SAndroid Build Coastguard Worker /* Length of vsync, in half lines */
1830*d83cc019SAndroid Build Coastguard Worker # define TV_VSYNC_LEN_MASK		0x07ff0000
1831*d83cc019SAndroid Build Coastguard Worker # define TV_VSYNC_LEN_SHIFT		16
1832*d83cc019SAndroid Build Coastguard Worker /* Offset of the start of vsync in field 1, measured in one less than the
1833*d83cc019SAndroid Build Coastguard Worker  * number of half lines.
1834*d83cc019SAndroid Build Coastguard Worker  */
1835*d83cc019SAndroid Build Coastguard Worker # define TV_VSYNC_START_F1_MASK		0x00007f00
1836*d83cc019SAndroid Build Coastguard Worker # define TV_VSYNC_START_F1_SHIFT	8
1837*d83cc019SAndroid Build Coastguard Worker /*
1838*d83cc019SAndroid Build Coastguard Worker  * Offset of the start of vsync in field 2, measured in one less than the
1839*d83cc019SAndroid Build Coastguard Worker  * number of half lines.
1840*d83cc019SAndroid Build Coastguard Worker  */
1841*d83cc019SAndroid Build Coastguard Worker # define TV_VSYNC_START_F2_MASK		0x0000007f
1842*d83cc019SAndroid Build Coastguard Worker # define TV_VSYNC_START_F2_SHIFT	0
1843*d83cc019SAndroid Build Coastguard Worker /* @} */
1844*d83cc019SAndroid Build Coastguard Worker 
1845*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_V_CTL_3
1846*d83cc019SAndroid Build Coastguard Worker  * @{
1847*d83cc019SAndroid Build Coastguard Worker  */
1848*d83cc019SAndroid Build Coastguard Worker #define TV_V_CTL_3		0x68044
1849*d83cc019SAndroid Build Coastguard Worker /* Enables generation of the equalization signal */
1850*d83cc019SAndroid Build Coastguard Worker # define TV_EQUAL_ENA			(1 << 31)
1851*d83cc019SAndroid Build Coastguard Worker /* Length of vsync, in half lines */
1852*d83cc019SAndroid Build Coastguard Worker # define TV_VEQ_LEN_MASK		0x007f0000
1853*d83cc019SAndroid Build Coastguard Worker # define TV_VEQ_LEN_SHIFT		16
1854*d83cc019SAndroid Build Coastguard Worker /* Offset of the start of equalization in field 1, measured in one less than
1855*d83cc019SAndroid Build Coastguard Worker  * the number of half lines.
1856*d83cc019SAndroid Build Coastguard Worker  */
1857*d83cc019SAndroid Build Coastguard Worker # define TV_VEQ_START_F1_MASK		0x0007f00
1858*d83cc019SAndroid Build Coastguard Worker # define TV_VEQ_START_F1_SHIFT		8
1859*d83cc019SAndroid Build Coastguard Worker /*
1860*d83cc019SAndroid Build Coastguard Worker  * Offset of the start of equalization in field 2, measured in one less than
1861*d83cc019SAndroid Build Coastguard Worker  * the number of half lines.
1862*d83cc019SAndroid Build Coastguard Worker  */
1863*d83cc019SAndroid Build Coastguard Worker # define TV_VEQ_START_F2_MASK		0x000007f
1864*d83cc019SAndroid Build Coastguard Worker # define TV_VEQ_START_F2_SHIFT		0
1865*d83cc019SAndroid Build Coastguard Worker /* @} */
1866*d83cc019SAndroid Build Coastguard Worker 
1867*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_V_CTL_4
1868*d83cc019SAndroid Build Coastguard Worker  * @{
1869*d83cc019SAndroid Build Coastguard Worker  */
1870*d83cc019SAndroid Build Coastguard Worker #define TV_V_CTL_4		0x68048
1871*d83cc019SAndroid Build Coastguard Worker /*
1872*d83cc019SAndroid Build Coastguard Worker  * Offset to start of vertical colorburst, measured in one less than the
1873*d83cc019SAndroid Build Coastguard Worker  * number of lines from vertical start.
1874*d83cc019SAndroid Build Coastguard Worker  */
1875*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_START_F1_MASK	0x003f0000
1876*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_START_F1_SHIFT	16
1877*d83cc019SAndroid Build Coastguard Worker /*
1878*d83cc019SAndroid Build Coastguard Worker  * Offset to the end of vertical colorburst, measured in one less than the
1879*d83cc019SAndroid Build Coastguard Worker  * number of lines from the start of NBR.
1880*d83cc019SAndroid Build Coastguard Worker  */
1881*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_END_F1_MASK		0x000000ff
1882*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_END_F1_SHIFT		0
1883*d83cc019SAndroid Build Coastguard Worker /* @} */
1884*d83cc019SAndroid Build Coastguard Worker 
1885*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_V_CTL_5
1886*d83cc019SAndroid Build Coastguard Worker  * @{
1887*d83cc019SAndroid Build Coastguard Worker  */
1888*d83cc019SAndroid Build Coastguard Worker #define TV_V_CTL_5		0x6804c
1889*d83cc019SAndroid Build Coastguard Worker /*
1890*d83cc019SAndroid Build Coastguard Worker  * Offset to start of vertical colorburst, measured in one less than the
1891*d83cc019SAndroid Build Coastguard Worker  * number of lines from vertical start.
1892*d83cc019SAndroid Build Coastguard Worker  */
1893*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_START_F2_MASK	0x003f0000
1894*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_START_F2_SHIFT	16
1895*d83cc019SAndroid Build Coastguard Worker /*
1896*d83cc019SAndroid Build Coastguard Worker  * Offset to the end of vertical colorburst, measured in one less than the
1897*d83cc019SAndroid Build Coastguard Worker  * number of lines from the start of NBR.
1898*d83cc019SAndroid Build Coastguard Worker  */
1899*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_END_F2_MASK		0x000000ff
1900*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_END_F2_SHIFT		0
1901*d83cc019SAndroid Build Coastguard Worker /* @} */
1902*d83cc019SAndroid Build Coastguard Worker 
1903*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_V_CTL_6
1904*d83cc019SAndroid Build Coastguard Worker  * @{
1905*d83cc019SAndroid Build Coastguard Worker  */
1906*d83cc019SAndroid Build Coastguard Worker #define TV_V_CTL_6		0x68050
1907*d83cc019SAndroid Build Coastguard Worker /*
1908*d83cc019SAndroid Build Coastguard Worker  * Offset to start of vertical colorburst, measured in one less than the
1909*d83cc019SAndroid Build Coastguard Worker  * number of lines from vertical start.
1910*d83cc019SAndroid Build Coastguard Worker  */
1911*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_START_F3_MASK	0x003f0000
1912*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_START_F3_SHIFT	16
1913*d83cc019SAndroid Build Coastguard Worker /*
1914*d83cc019SAndroid Build Coastguard Worker  * Offset to the end of vertical colorburst, measured in one less than the
1915*d83cc019SAndroid Build Coastguard Worker  * number of lines from the start of NBR.
1916*d83cc019SAndroid Build Coastguard Worker  */
1917*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_END_F3_MASK		0x000000ff
1918*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_END_F3_SHIFT		0
1919*d83cc019SAndroid Build Coastguard Worker /* @} */
1920*d83cc019SAndroid Build Coastguard Worker 
1921*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_V_CTL_7
1922*d83cc019SAndroid Build Coastguard Worker  * @{
1923*d83cc019SAndroid Build Coastguard Worker  */
1924*d83cc019SAndroid Build Coastguard Worker #define TV_V_CTL_7		0x68054
1925*d83cc019SAndroid Build Coastguard Worker /*
1926*d83cc019SAndroid Build Coastguard Worker  * Offset to start of vertical colorburst, measured in one less than the
1927*d83cc019SAndroid Build Coastguard Worker  * number of lines from vertical start.
1928*d83cc019SAndroid Build Coastguard Worker  */
1929*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_START_F4_MASK	0x003f0000
1930*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_START_F4_SHIFT	16
1931*d83cc019SAndroid Build Coastguard Worker /*
1932*d83cc019SAndroid Build Coastguard Worker  * Offset to the end of vertical colorburst, measured in one less than the
1933*d83cc019SAndroid Build Coastguard Worker  * number of lines from the start of NBR.
1934*d83cc019SAndroid Build Coastguard Worker  */
1935*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_END_F4_MASK		0x000000ff
1936*d83cc019SAndroid Build Coastguard Worker # define TV_VBURST_END_F4_SHIFT		0
1937*d83cc019SAndroid Build Coastguard Worker /* @} */
1938*d83cc019SAndroid Build Coastguard Worker 
1939*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_SC_CTL_1
1940*d83cc019SAndroid Build Coastguard Worker  * @{
1941*d83cc019SAndroid Build Coastguard Worker  */
1942*d83cc019SAndroid Build Coastguard Worker #define TV_SC_CTL_1		0x68060
1943*d83cc019SAndroid Build Coastguard Worker /* Turns on the first subcarrier phase generation DDA */
1944*d83cc019SAndroid Build Coastguard Worker # define TV_SC_DDA1_EN			(1 << 31)
1945*d83cc019SAndroid Build Coastguard Worker /* Turns on the first subcarrier phase generation DDA */
1946*d83cc019SAndroid Build Coastguard Worker # define TV_SC_DDA2_EN			(1 << 30)
1947*d83cc019SAndroid Build Coastguard Worker /* Turns on the first subcarrier phase generation DDA */
1948*d83cc019SAndroid Build Coastguard Worker # define TV_SC_DDA3_EN			(1 << 29)
1949*d83cc019SAndroid Build Coastguard Worker /* Sets the subcarrier DDA to reset frequency every other field */
1950*d83cc019SAndroid Build Coastguard Worker # define TV_SC_RESET_EVERY_2		(0 << 24)
1951*d83cc019SAndroid Build Coastguard Worker /* Sets the subcarrier DDA to reset frequency every fourth field */
1952*d83cc019SAndroid Build Coastguard Worker # define TV_SC_RESET_EVERY_4		(1 << 24)
1953*d83cc019SAndroid Build Coastguard Worker /* Sets the subcarrier DDA to reset frequency every eighth field */
1954*d83cc019SAndroid Build Coastguard Worker # define TV_SC_RESET_EVERY_8		(2 << 24)
1955*d83cc019SAndroid Build Coastguard Worker /* Sets the subcarrier DDA to never reset the frequency */
1956*d83cc019SAndroid Build Coastguard Worker # define TV_SC_RESET_NEVER		(3 << 24)
1957*d83cc019SAndroid Build Coastguard Worker /* Sets the peak amplitude of the colorburst.*/
1958*d83cc019SAndroid Build Coastguard Worker # define TV_BURST_LEVEL_MASK		0x00ff0000
1959*d83cc019SAndroid Build Coastguard Worker # define TV_BURST_LEVEL_SHIFT		16
1960*d83cc019SAndroid Build Coastguard Worker /* Sets the increment of the first subcarrier phase generation DDA */
1961*d83cc019SAndroid Build Coastguard Worker # define TV_SCDDA1_INC_MASK		0x00000fff
1962*d83cc019SAndroid Build Coastguard Worker # define TV_SCDDA1_INC_SHIFT		0
1963*d83cc019SAndroid Build Coastguard Worker /* @} */
1964*d83cc019SAndroid Build Coastguard Worker 
1965*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_SC_CTL_2
1966*d83cc019SAndroid Build Coastguard Worker  * @{
1967*d83cc019SAndroid Build Coastguard Worker  */
1968*d83cc019SAndroid Build Coastguard Worker #define TV_SC_CTL_2		0x68064
1969*d83cc019SAndroid Build Coastguard Worker /* Sets the rollover for the second subcarrier phase generation DDA */
1970*d83cc019SAndroid Build Coastguard Worker # define TV_SCDDA2_SIZE_MASK		0x7fff0000
1971*d83cc019SAndroid Build Coastguard Worker # define TV_SCDDA2_SIZE_SHIFT		16
1972*d83cc019SAndroid Build Coastguard Worker /* Sets the increent of the second subcarrier phase generation DDA */
1973*d83cc019SAndroid Build Coastguard Worker # define TV_SCDDA2_INC_MASK		0x00007fff
1974*d83cc019SAndroid Build Coastguard Worker # define TV_SCDDA2_INC_SHIFT		0
1975*d83cc019SAndroid Build Coastguard Worker /* @} */
1976*d83cc019SAndroid Build Coastguard Worker 
1977*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_SC_CTL_3
1978*d83cc019SAndroid Build Coastguard Worker  * @{
1979*d83cc019SAndroid Build Coastguard Worker  */
1980*d83cc019SAndroid Build Coastguard Worker #define TV_SC_CTL_3		0x68068
1981*d83cc019SAndroid Build Coastguard Worker /* Sets the rollover for the third subcarrier phase generation DDA */
1982*d83cc019SAndroid Build Coastguard Worker # define TV_SCDDA3_SIZE_MASK		0x7fff0000
1983*d83cc019SAndroid Build Coastguard Worker # define TV_SCDDA3_SIZE_SHIFT		16
1984*d83cc019SAndroid Build Coastguard Worker /* Sets the increent of the third subcarrier phase generation DDA */
1985*d83cc019SAndroid Build Coastguard Worker # define TV_SCDDA3_INC_MASK		0x00007fff
1986*d83cc019SAndroid Build Coastguard Worker # define TV_SCDDA3_INC_SHIFT		0
1987*d83cc019SAndroid Build Coastguard Worker /* @} */
1988*d83cc019SAndroid Build Coastguard Worker 
1989*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_WIN_POS
1990*d83cc019SAndroid Build Coastguard Worker  * @{
1991*d83cc019SAndroid Build Coastguard Worker  */
1992*d83cc019SAndroid Build Coastguard Worker #define TV_WIN_POS		0x68070
1993*d83cc019SAndroid Build Coastguard Worker /* X coordinate of the display from the start of horizontal active */
1994*d83cc019SAndroid Build Coastguard Worker # define TV_XPOS_MASK			0x1fff0000
1995*d83cc019SAndroid Build Coastguard Worker # define TV_XPOS_SHIFT			16
1996*d83cc019SAndroid Build Coastguard Worker /* Y coordinate of the display from the start of vertical active (NBR) */
1997*d83cc019SAndroid Build Coastguard Worker # define TV_YPOS_MASK			0x00000fff
1998*d83cc019SAndroid Build Coastguard Worker # define TV_YPOS_SHIFT			0
1999*d83cc019SAndroid Build Coastguard Worker /* @} */
2000*d83cc019SAndroid Build Coastguard Worker 
2001*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_WIN_SIZE
2002*d83cc019SAndroid Build Coastguard Worker  * @{
2003*d83cc019SAndroid Build Coastguard Worker  */
2004*d83cc019SAndroid Build Coastguard Worker #define TV_WIN_SIZE		0x68074
2005*d83cc019SAndroid Build Coastguard Worker /* Horizontal size of the display window, measured in pixels*/
2006*d83cc019SAndroid Build Coastguard Worker # define TV_XSIZE_MASK			0x1fff0000
2007*d83cc019SAndroid Build Coastguard Worker # define TV_XSIZE_SHIFT			16
2008*d83cc019SAndroid Build Coastguard Worker /*
2009*d83cc019SAndroid Build Coastguard Worker  * Vertical size of the display window, measured in pixels.
2010*d83cc019SAndroid Build Coastguard Worker  *
2011*d83cc019SAndroid Build Coastguard Worker  * Must be even for interlaced modes.
2012*d83cc019SAndroid Build Coastguard Worker  */
2013*d83cc019SAndroid Build Coastguard Worker # define TV_YSIZE_MASK			0x00000fff
2014*d83cc019SAndroid Build Coastguard Worker # define TV_YSIZE_SHIFT			0
2015*d83cc019SAndroid Build Coastguard Worker /* @} */
2016*d83cc019SAndroid Build Coastguard Worker 
2017*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_FILTER_CTL_1
2018*d83cc019SAndroid Build Coastguard Worker  * @{
2019*d83cc019SAndroid Build Coastguard Worker  */
2020*d83cc019SAndroid Build Coastguard Worker #define TV_FILTER_CTL_1		0x68080
2021*d83cc019SAndroid Build Coastguard Worker /*
2022*d83cc019SAndroid Build Coastguard Worker  * Enables automatic scaling calculation.
2023*d83cc019SAndroid Build Coastguard Worker  *
2024*d83cc019SAndroid Build Coastguard Worker  * If set, the rest of the registers are ignored, and the calculated values can
2025*d83cc019SAndroid Build Coastguard Worker  * be read back from the register.
2026*d83cc019SAndroid Build Coastguard Worker  */
2027*d83cc019SAndroid Build Coastguard Worker # define TV_AUTO_SCALE			(1 << 31)
2028*d83cc019SAndroid Build Coastguard Worker /*
2029*d83cc019SAndroid Build Coastguard Worker  * Disables the vertical filter.
2030*d83cc019SAndroid Build Coastguard Worker  *
2031*d83cc019SAndroid Build Coastguard Worker  * This is required on modes more than 1024 pixels wide */
2032*d83cc019SAndroid Build Coastguard Worker # define TV_V_FILTER_BYPASS		(1 << 29)
2033*d83cc019SAndroid Build Coastguard Worker /* Enables adaptive vertical filtering */
2034*d83cc019SAndroid Build Coastguard Worker # define TV_VADAPT			(1 << 28)
2035*d83cc019SAndroid Build Coastguard Worker # define TV_VADAPT_MODE_MASK		(3 << 26)
2036*d83cc019SAndroid Build Coastguard Worker /* Selects the least adaptive vertical filtering mode */
2037*d83cc019SAndroid Build Coastguard Worker # define TV_VADAPT_MODE_LEAST		(0 << 26)
2038*d83cc019SAndroid Build Coastguard Worker /* Selects the moderately adaptive vertical filtering mode */
2039*d83cc019SAndroid Build Coastguard Worker # define TV_VADAPT_MODE_MODERATE	(1 << 26)
2040*d83cc019SAndroid Build Coastguard Worker /* Selects the most adaptive vertical filtering mode */
2041*d83cc019SAndroid Build Coastguard Worker # define TV_VADAPT_MODE_MOST		(3 << 26)
2042*d83cc019SAndroid Build Coastguard Worker /*
2043*d83cc019SAndroid Build Coastguard Worker  * Sets the horizontal scaling factor.
2044*d83cc019SAndroid Build Coastguard Worker  *
2045*d83cc019SAndroid Build Coastguard Worker  * This should be the fractional part of the horizontal scaling factor divided
2046*d83cc019SAndroid Build Coastguard Worker  * by the oversampling rate.  TV_HSCALE should be less than 1, and set to:
2047*d83cc019SAndroid Build Coastguard Worker  *
2048*d83cc019SAndroid Build Coastguard Worker  * (src width - 1) / ((oversample * dest width) - 1)
2049*d83cc019SAndroid Build Coastguard Worker  */
2050*d83cc019SAndroid Build Coastguard Worker # define TV_HSCALE_FRAC_MASK		0x00003fff
2051*d83cc019SAndroid Build Coastguard Worker # define TV_HSCALE_FRAC_SHIFT		0
2052*d83cc019SAndroid Build Coastguard Worker /* @} */
2053*d83cc019SAndroid Build Coastguard Worker 
2054*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_FILTER_CTL_2
2055*d83cc019SAndroid Build Coastguard Worker  * @{
2056*d83cc019SAndroid Build Coastguard Worker  */
2057*d83cc019SAndroid Build Coastguard Worker #define TV_FILTER_CTL_2		0x68084
2058*d83cc019SAndroid Build Coastguard Worker /*
2059*d83cc019SAndroid Build Coastguard Worker  * Sets the integer part of the 3.15 fixed-point vertical scaling factor.
2060*d83cc019SAndroid Build Coastguard Worker  *
2061*d83cc019SAndroid Build Coastguard Worker  * TV_VSCALE should be (src height - 1) / ((interlace * dest height) - 1)
2062*d83cc019SAndroid Build Coastguard Worker  */
2063*d83cc019SAndroid Build Coastguard Worker # define TV_VSCALE_INT_MASK		0x00038000
2064*d83cc019SAndroid Build Coastguard Worker # define TV_VSCALE_INT_SHIFT		15
2065*d83cc019SAndroid Build Coastguard Worker /*
2066*d83cc019SAndroid Build Coastguard Worker  * Sets the fractional part of the 3.15 fixed-point vertical scaling factor.
2067*d83cc019SAndroid Build Coastguard Worker  *
2068*d83cc019SAndroid Build Coastguard Worker  * \sa TV_VSCALE_INT_MASK
2069*d83cc019SAndroid Build Coastguard Worker  */
2070*d83cc019SAndroid Build Coastguard Worker # define TV_VSCALE_FRAC_MASK		0x00007fff
2071*d83cc019SAndroid Build Coastguard Worker # define TV_VSCALE_FRAC_SHIFT		0
2072*d83cc019SAndroid Build Coastguard Worker /* @} */
2073*d83cc019SAndroid Build Coastguard Worker 
2074*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_FILTER_CTL_3
2075*d83cc019SAndroid Build Coastguard Worker  * @{
2076*d83cc019SAndroid Build Coastguard Worker  */
2077*d83cc019SAndroid Build Coastguard Worker #define TV_FILTER_CTL_3		0x68088
2078*d83cc019SAndroid Build Coastguard Worker /*
2079*d83cc019SAndroid Build Coastguard Worker  * Sets the integer part of the 3.15 fixed-point vertical scaling factor.
2080*d83cc019SAndroid Build Coastguard Worker  *
2081*d83cc019SAndroid Build Coastguard Worker  * TV_VSCALE should be (src height - 1) / (1/4 * (dest height - 1))
2082*d83cc019SAndroid Build Coastguard Worker  *
2083*d83cc019SAndroid Build Coastguard Worker  * For progressive modes, TV_VSCALE_IP_INT should be set to zeroes.
2084*d83cc019SAndroid Build Coastguard Worker  */
2085*d83cc019SAndroid Build Coastguard Worker # define TV_VSCALE_IP_INT_MASK		0x00038000
2086*d83cc019SAndroid Build Coastguard Worker # define TV_VSCALE_IP_INT_SHIFT		15
2087*d83cc019SAndroid Build Coastguard Worker /*
2088*d83cc019SAndroid Build Coastguard Worker  * Sets the fractional part of the 3.15 fixed-point vertical scaling factor.
2089*d83cc019SAndroid Build Coastguard Worker  *
2090*d83cc019SAndroid Build Coastguard Worker  * For progressive modes, TV_VSCALE_IP_INT should be set to zeroes.
2091*d83cc019SAndroid Build Coastguard Worker  *
2092*d83cc019SAndroid Build Coastguard Worker  * \sa TV_VSCALE_IP_INT_MASK
2093*d83cc019SAndroid Build Coastguard Worker  */
2094*d83cc019SAndroid Build Coastguard Worker # define TV_VSCALE_IP_FRAC_MASK		0x00007fff
2095*d83cc019SAndroid Build Coastguard Worker # define TV_VSCALE_IP_FRAC_SHIFT		0
2096*d83cc019SAndroid Build Coastguard Worker /* @} */
2097*d83cc019SAndroid Build Coastguard Worker 
2098*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_CC_CONTROL
2099*d83cc019SAndroid Build Coastguard Worker  * @{
2100*d83cc019SAndroid Build Coastguard Worker  */
2101*d83cc019SAndroid Build Coastguard Worker #define TV_CC_CONTROL		0x68090
2102*d83cc019SAndroid Build Coastguard Worker # define TV_CC_ENABLE			(1 << 31)
2103*d83cc019SAndroid Build Coastguard Worker /*
2104*d83cc019SAndroid Build Coastguard Worker  * Specifies which field to send the CC data in.
2105*d83cc019SAndroid Build Coastguard Worker  *
2106*d83cc019SAndroid Build Coastguard Worker  * CC data is usually sent in field 0.
2107*d83cc019SAndroid Build Coastguard Worker  */
2108*d83cc019SAndroid Build Coastguard Worker # define TV_CC_FID_MASK			(1 << 27)
2109*d83cc019SAndroid Build Coastguard Worker # define TV_CC_FID_SHIFT		27
2110*d83cc019SAndroid Build Coastguard Worker /* Sets the horizontal position of the CC data.  Usually 135. */
2111*d83cc019SAndroid Build Coastguard Worker # define TV_CC_HOFF_MASK		0x03ff0000
2112*d83cc019SAndroid Build Coastguard Worker # define TV_CC_HOFF_SHIFT		16
2113*d83cc019SAndroid Build Coastguard Worker /* Sets the vertical position of the CC data.  Usually 21 */
2114*d83cc019SAndroid Build Coastguard Worker # define TV_CC_LINE_MASK		0x0000003f
2115*d83cc019SAndroid Build Coastguard Worker # define TV_CC_LINE_SHIFT		0
2116*d83cc019SAndroid Build Coastguard Worker /* @} */
2117*d83cc019SAndroid Build Coastguard Worker 
2118*d83cc019SAndroid Build Coastguard Worker /* @defgroup TV_CC_DATA
2119*d83cc019SAndroid Build Coastguard Worker  * @{
2120*d83cc019SAndroid Build Coastguard Worker  */
2121*d83cc019SAndroid Build Coastguard Worker #define TV_CC_DATA		0x68094
2122*d83cc019SAndroid Build Coastguard Worker # define TV_CC_RDY			(1 << 31)
2123*d83cc019SAndroid Build Coastguard Worker /* Second word of CC data to be transmitted. */
2124*d83cc019SAndroid Build Coastguard Worker # define TV_CC_DATA_2_MASK		0x007f0000
2125*d83cc019SAndroid Build Coastguard Worker # define TV_CC_DATA_2_SHIFT		16
2126*d83cc019SAndroid Build Coastguard Worker /* First word of CC data to be transmitted. */
2127*d83cc019SAndroid Build Coastguard Worker # define TV_CC_DATA_1_MASK		0x0000007f
2128*d83cc019SAndroid Build Coastguard Worker # define TV_CC_DATA_1_SHIFT		0
2129*d83cc019SAndroid Build Coastguard Worker /* @}
2130*d83cc019SAndroid Build Coastguard Worker  */
2131*d83cc019SAndroid Build Coastguard Worker 
2132*d83cc019SAndroid Build Coastguard Worker /* @{ */
2133*d83cc019SAndroid Build Coastguard Worker #define TV_H_LUMA_0		0x68100
2134*d83cc019SAndroid Build Coastguard Worker #define TV_H_LUMA_59		0x681ec
2135*d83cc019SAndroid Build Coastguard Worker #define TV_H_CHROMA_0		0x68200
2136*d83cc019SAndroid Build Coastguard Worker #define TV_H_CHROMA_59		0x682ec
2137*d83cc019SAndroid Build Coastguard Worker #define TV_V_LUMA_0		0x68300
2138*d83cc019SAndroid Build Coastguard Worker #define TV_V_LUMA_42		0x683a8
2139*d83cc019SAndroid Build Coastguard Worker #define TV_V_CHROMA_0		0x68400
2140*d83cc019SAndroid Build Coastguard Worker #define TV_V_CHROMA_42		0x684a8
2141*d83cc019SAndroid Build Coastguard Worker /* @} */
2142*d83cc019SAndroid Build Coastguard Worker 
2143*d83cc019SAndroid Build Coastguard Worker #define PIPEA_DSL		0x70000
2144*d83cc019SAndroid Build Coastguard Worker 
2145*d83cc019SAndroid Build Coastguard Worker #define PIPEACONF 0x70008
2146*d83cc019SAndroid Build Coastguard Worker #define PIPEACONF_ENABLE	(1<<31)
2147*d83cc019SAndroid Build Coastguard Worker #define PIPEACONF_DISABLE	0
2148*d83cc019SAndroid Build Coastguard Worker #define PIPEACONF_DOUBLE_WIDE	(1<<30)
2149*d83cc019SAndroid Build Coastguard Worker #define I965_PIPECONF_ACTIVE	(1<<30)
2150*d83cc019SAndroid Build Coastguard Worker #define PIPEACONF_SINGLE_WIDE	0
2151*d83cc019SAndroid Build Coastguard Worker #define PIPEACONF_PIPE_UNLOCKED 0
2152*d83cc019SAndroid Build Coastguard Worker #define PIPEACONF_PIPE_LOCKED	(1<<25)
2153*d83cc019SAndroid Build Coastguard Worker #define PIPEACONF_PALETTE	0
2154*d83cc019SAndroid Build Coastguard Worker #define PIPEACONF_GAMMA 	(1<<24)
2155*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_FORCE_BORDER	(1<<25)
2156*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_PROGRESSIVE	(0 << 21)
2157*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_INTERLACE_W_FIELD_INDICATION	(6 << 21)
2158*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_INTERLACE_FIELD_0_ONLY		(7 << 21)
2159*d83cc019SAndroid Build Coastguard Worker /* ironlake: gamma */
2160*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_PALETTE_8BIT	(0<<24)
2161*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_PALETTE_10BIT	(1<<24)
2162*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_PALETTE_12BIT	(2<<24)
2163*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_FORCE_BORDER	(1<<25)
2164*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_PROGRESSIVE	(0 << 21)
2165*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_INTERLACE_W_FIELD_INDICATION	(6 << 21)
2166*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_INTERLACE_FIELD_0_ONLY		(7 << 21)
2167*d83cc019SAndroid Build Coastguard Worker /* ironlake */
2168*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_MSA_TIMING_DELAY	(0<<18) /* for eDP */
2169*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_NO_DYNAMIC_RATE_CHANGE	(0 << 16)
2170*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_NO_ROTATION		(0<<14)
2171*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_FULL_COLOR_RANGE	(0<<13)
2172*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_CE_COLOR_RANGE		(1<<13)
2173*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_COLOR_SPACE_RGB	(0<<11)
2174*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_COLOR_SPACE_YUV601	(1<<11)
2175*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_COLOR_SPACE_YUV709	(2<<11)
2176*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_CONNECT_DEFAULT	(0<<9)
2177*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_8BPP			(0<<5)
2178*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_10BPP			(1<<5)
2179*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_6BPP			(2<<5)
2180*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_12BPP			(3<<5)
2181*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_ENABLE_DITHER		(1<<4)
2182*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_DITHER_SPATIAL		(0<<2)
2183*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_DITHER_ST1		(1<<2)
2184*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_DITHER_ST2		(2<<2)
2185*d83cc019SAndroid Build Coastguard Worker #define PIPECONF_DITHER_TEMPORAL	(3<<2)
2186*d83cc019SAndroid Build Coastguard Worker 
2187*d83cc019SAndroid Build Coastguard Worker #define PIPEAGCMAXRED		0x70010
2188*d83cc019SAndroid Build Coastguard Worker #define PIPEAGCMAXGREEN		0x70014
2189*d83cc019SAndroid Build Coastguard Worker #define PIPEAGCMAXBLUE		0x70018
2190*d83cc019SAndroid Build Coastguard Worker #define PIPEASTAT		0x70024
2191*d83cc019SAndroid Build Coastguard Worker # define FIFO_UNDERRUN		(1 << 31)
2192*d83cc019SAndroid Build Coastguard Worker # define CRC_ERROR_ENABLE	(1 << 29)
2193*d83cc019SAndroid Build Coastguard Worker # define CRC_DONE_ENABLE	(1 << 28)
2194*d83cc019SAndroid Build Coastguard Worker # define GMBUS_EVENT_ENABLE	(1 << 27)
2195*d83cc019SAndroid Build Coastguard Worker # define VSYNC_INT_ENABLE	(1 << 25)
2196*d83cc019SAndroid Build Coastguard Worker # define DLINE_COMPARE_ENABLE	(1 << 24)
2197*d83cc019SAndroid Build Coastguard Worker # define DPST_EVENT_ENABLE	(1 << 23)
2198*d83cc019SAndroid Build Coastguard Worker # define LBLC_EVENT_ENABLE	(1 << 22)
2199*d83cc019SAndroid Build Coastguard Worker # define OFIELD_INT_ENABLE	(1 << 21)
2200*d83cc019SAndroid Build Coastguard Worker # define EFIELD_INT_ENABLE	(1 << 20)
2201*d83cc019SAndroid Build Coastguard Worker # define SVBLANK_INT_ENABLE	(1 << 18)
2202*d83cc019SAndroid Build Coastguard Worker # define VBLANK_INT_ENABLE	(1 << 17)
2203*d83cc019SAndroid Build Coastguard Worker # define OREG_UPDATE_ENABLE	(1 << 16)
2204*d83cc019SAndroid Build Coastguard Worker # define CRC_ERROR_INT_STATUS	(1 << 13)
2205*d83cc019SAndroid Build Coastguard Worker # define CRC_DONE_INT_STATUS	(1 << 12)
2206*d83cc019SAndroid Build Coastguard Worker # define GMBUS_INT_STATUS	(1 << 11)
2207*d83cc019SAndroid Build Coastguard Worker # define VSYNC_INT_STATUS	(1 << 9)
2208*d83cc019SAndroid Build Coastguard Worker # define DLINE_COMPARE_STATUS	(1 << 8)
2209*d83cc019SAndroid Build Coastguard Worker # define DPST_EVENT_STATUS	(1 << 7)
2210*d83cc019SAndroid Build Coastguard Worker # define LBLC_EVENT_STATUS	(1 << 6)
2211*d83cc019SAndroid Build Coastguard Worker # define OFIELD_INT_STATUS	(1 << 5)
2212*d83cc019SAndroid Build Coastguard Worker # define EFIELD_INT_STATUS	(1 << 4)
2213*d83cc019SAndroid Build Coastguard Worker # define SVBLANK_INT_STATUS	(1 << 2)
2214*d83cc019SAndroid Build Coastguard Worker # define VBLANK_INT_STATUS	(1 << 1)
2215*d83cc019SAndroid Build Coastguard Worker # define OREG_UPDATE_STATUS	(1 << 0)
2216*d83cc019SAndroid Build Coastguard Worker 
2217*d83cc019SAndroid Build Coastguard Worker #define FW_BLC		0x020d8
2218*d83cc019SAndroid Build Coastguard Worker #define FW_BLC2		0x020dc
2219*d83cc019SAndroid Build Coastguard Worker #define FW_BLC_SELF	0x020e0 /* 915+ only */
2220*d83cc019SAndroid Build Coastguard Worker 
2221*d83cc019SAndroid Build Coastguard Worker #define DSPARB			0x70030
2222*d83cc019SAndroid Build Coastguard Worker #define   DSPARB_CSTART_SHIFT	7
2223*d83cc019SAndroid Build Coastguard Worker #define   DSPARB_BSTART_SHIFT	0
2224*d83cc019SAndroid Build Coastguard Worker #define   DSPARB_BEND_SHIFT	9 /* on 855 */
2225*d83cc019SAndroid Build Coastguard Worker #define   DSPARB_AEND_SHIFT	0
2226*d83cc019SAndroid Build Coastguard Worker #define DSPFW1			0x70034
2227*d83cc019SAndroid Build Coastguard Worker #define DSPFW2			0x70038
2228*d83cc019SAndroid Build Coastguard Worker #define DSPFW3			0x7003c
2229*d83cc019SAndroid Build Coastguard Worker /*
2230*d83cc019SAndroid Build Coastguard Worker  * The two pipe frame counter registers are not synchronized, so
2231*d83cc019SAndroid Build Coastguard Worker  * reading a stable value is somewhat tricky. The following code
2232*d83cc019SAndroid Build Coastguard Worker  * should work:
2233*d83cc019SAndroid Build Coastguard Worker  *
2234*d83cc019SAndroid Build Coastguard Worker  *  do {
2235*d83cc019SAndroid Build Coastguard Worker  *    high1 = ((INREG(PIPEAFRAMEHIGH) & PIPE_FRAME_HIGH_MASK) >> PIPE_FRAME_HIGH_SHIFT;
2236*d83cc019SAndroid Build Coastguard Worker  *    low1 =  ((INREG(PIPEAFRAMEPIXEL) & PIPE_FRAME_LOW_MASK) >> PIPE_FRAME_LOW_SHIFT);
2237*d83cc019SAndroid Build Coastguard Worker  *    high2 = ((INREG(PIPEAFRAMEHIGH) & PIPE_FRAME_HIGH_MASK) >> PIPE_FRAME_HIGH_SHIFT);
2238*d83cc019SAndroid Build Coastguard Worker  *  } while (high1 != high2);
2239*d83cc019SAndroid Build Coastguard Worker  *  frame = (high1 << 8) | low1;
2240*d83cc019SAndroid Build Coastguard Worker  */
2241*d83cc019SAndroid Build Coastguard Worker #define PIPEAFRAMEHIGH		0x70040
2242*d83cc019SAndroid Build Coastguard Worker #define PIPE_FRAME_HIGH_MASK	0x0000ffff
2243*d83cc019SAndroid Build Coastguard Worker #define PIPE_FRAME_HIGH_SHIFT	0
2244*d83cc019SAndroid Build Coastguard Worker #define PIPEAFRAMEPIXEL		0x70044
2245*d83cc019SAndroid Build Coastguard Worker #define PIPE_FRAME_LOW_MASK	0xff000000
2246*d83cc019SAndroid Build Coastguard Worker #define PIPE_FRAME_LOW_SHIFT	24
2247*d83cc019SAndroid Build Coastguard Worker /*
2248*d83cc019SAndroid Build Coastguard Worker  * Pixel within the current frame is counted in the PIPEAFRAMEPIXEL register
2249*d83cc019SAndroid Build Coastguard Worker  * and is 24 bits wide.
2250*d83cc019SAndroid Build Coastguard Worker  */
2251*d83cc019SAndroid Build Coastguard Worker #define PIPE_PIXEL_MASK		0x00ffffff
2252*d83cc019SAndroid Build Coastguard Worker #define PIPE_PIXEL_SHIFT	0
2253*d83cc019SAndroid Build Coastguard Worker /*
2254*d83cc019SAndroid Build Coastguard Worker  * g4x+ frame/flip counters
2255*d83cc019SAndroid Build Coastguard Worker  */
2256*d83cc019SAndroid Build Coastguard Worker #define PIPEAFRMCOUNT_G4X	0x70040
2257*d83cc019SAndroid Build Coastguard Worker #define PIPEAFLIPCOUNT_G4X	0x70044
2258*d83cc019SAndroid Build Coastguard Worker /*
2259*d83cc019SAndroid Build Coastguard Worker  * Computing GMCH M and N values.
2260*d83cc019SAndroid Build Coastguard Worker  *
2261*d83cc019SAndroid Build Coastguard Worker  * GMCH M/N = dot clock * bytes per pixel / ls_clk * # of lanes
2262*d83cc019SAndroid Build Coastguard Worker  *
2263*d83cc019SAndroid Build Coastguard Worker  * ls_clk (we assume) is the DP link clock (1.62 or 2.7 GHz)
2264*d83cc019SAndroid Build Coastguard Worker  *
2265*d83cc019SAndroid Build Coastguard Worker  * The GMCH value is used internally
2266*d83cc019SAndroid Build Coastguard Worker  */
2267*d83cc019SAndroid Build Coastguard Worker #define PIPEA_GMCH_DATA_M	0x70050
2268*d83cc019SAndroid Build Coastguard Worker 
2269*d83cc019SAndroid Build Coastguard Worker /* Transfer unit size for display port - 1, default is 0x3f (for TU size 64) */
2270*d83cc019SAndroid Build Coastguard Worker #define PIPE_GMCH_DATA_M_TU_SIZE_MASK	(0x3f << 25)
2271*d83cc019SAndroid Build Coastguard Worker #define PIPE_GMCH_DATA_M_TU_SIZE_SHIFT	25
2272*d83cc019SAndroid Build Coastguard Worker 
2273*d83cc019SAndroid Build Coastguard Worker #define PIPE_GMCH_DATA_M_MASK		(0xffffff)
2274*d83cc019SAndroid Build Coastguard Worker 
2275*d83cc019SAndroid Build Coastguard Worker #define PIPEA_GMCH_DATA_N	0x70054
2276*d83cc019SAndroid Build Coastguard Worker #define PIPE_GMCH_DATA_N_MASK		(0xffffff)
2277*d83cc019SAndroid Build Coastguard Worker 
2278*d83cc019SAndroid Build Coastguard Worker /*
2279*d83cc019SAndroid Build Coastguard Worker  * Computing Link M and N values.
2280*d83cc019SAndroid Build Coastguard Worker  *
2281*d83cc019SAndroid Build Coastguard Worker  * Link M / N = pixel_clock / ls_clk
2282*d83cc019SAndroid Build Coastguard Worker  *
2283*d83cc019SAndroid Build Coastguard Worker  * (the DP spec calls pixel_clock the 'strm_clk')
2284*d83cc019SAndroid Build Coastguard Worker  *
2285*d83cc019SAndroid Build Coastguard Worker  * The Link value is transmitted in the Main Stream
2286*d83cc019SAndroid Build Coastguard Worker  * Attributes and VB-ID.
2287*d83cc019SAndroid Build Coastguard Worker  */
2288*d83cc019SAndroid Build Coastguard Worker 
2289*d83cc019SAndroid Build Coastguard Worker #define PIPEA_DP_LINK_M		0x70060
2290*d83cc019SAndroid Build Coastguard Worker #define PIPEA_DP_LINK_M_MASK	(0xffffff)
2291*d83cc019SAndroid Build Coastguard Worker 
2292*d83cc019SAndroid Build Coastguard Worker #define PIPEA_DP_LINK_N		0x70064
2293*d83cc019SAndroid Build Coastguard Worker #define PIPEA_DP_LINK_N_MASK	(0xffffff)
2294*d83cc019SAndroid Build Coastguard Worker 
2295*d83cc019SAndroid Build Coastguard Worker #define PIPEB_DSL		0x71000
2296*d83cc019SAndroid Build Coastguard Worker 
2297*d83cc019SAndroid Build Coastguard Worker #define PIPEBCONF 		0x71008
2298*d83cc019SAndroid Build Coastguard Worker 
2299*d83cc019SAndroid Build Coastguard Worker #define PIPEBGCMAXRED		0x71010
2300*d83cc019SAndroid Build Coastguard Worker #define PIPEBGCMAXGREEN		0x71014
2301*d83cc019SAndroid Build Coastguard Worker #define PIPEBGCMAXBLUE		0x71018
2302*d83cc019SAndroid Build Coastguard Worker #define PIPEBSTAT		0x71024
2303*d83cc019SAndroid Build Coastguard Worker #define PIPEBFRAMEHIGH		0x71040
2304*d83cc019SAndroid Build Coastguard Worker #define PIPEBFRAMEPIXEL		0x71044
2305*d83cc019SAndroid Build Coastguard Worker #define PIPEBFRMCOUNT_G4X	0x71040
2306*d83cc019SAndroid Build Coastguard Worker #define PIPEBFLIPCOUNT_G4X	0x71044
2307*d83cc019SAndroid Build Coastguard Worker 
2308*d83cc019SAndroid Build Coastguard Worker #define PIPEB_GMCH_DATA_M	0x71050
2309*d83cc019SAndroid Build Coastguard Worker #define PIPEB_GMCH_DATA_N	0x71054
2310*d83cc019SAndroid Build Coastguard Worker #define PIPEB_DP_LINK_M		0x71060
2311*d83cc019SAndroid Build Coastguard Worker #define PIPEB_DP_LINK_N		0x71064
2312*d83cc019SAndroid Build Coastguard Worker 
2313*d83cc019SAndroid Build Coastguard Worker #define PIPEC_DSL		0x72000
2314*d83cc019SAndroid Build Coastguard Worker 
2315*d83cc019SAndroid Build Coastguard Worker #define PIPECCONF 		0x72008
2316*d83cc019SAndroid Build Coastguard Worker 
2317*d83cc019SAndroid Build Coastguard Worker #define PIPECGCMAXRED		0x72010
2318*d83cc019SAndroid Build Coastguard Worker #define PIPECGCMAXGREEN		0x72014
2319*d83cc019SAndroid Build Coastguard Worker #define PIPECGCMAXBLUE		0x72018
2320*d83cc019SAndroid Build Coastguard Worker #define PIPECSTAT		0x72024
2321*d83cc019SAndroid Build Coastguard Worker #define PIPECFRMCOUNT_G4X	0x72040
2322*d83cc019SAndroid Build Coastguard Worker #define PIPECFLIPCOUNT_G4X	0x72044
2323*d83cc019SAndroid Build Coastguard Worker 
2324*d83cc019SAndroid Build Coastguard Worker #define PIPEC_GMCH_DATA_M	0x72050
2325*d83cc019SAndroid Build Coastguard Worker #define PIPEC_GMCH_DATA_N	0x72054
2326*d83cc019SAndroid Build Coastguard Worker #define PIPEC_DP_LINK_M		0x72060
2327*d83cc019SAndroid Build Coastguard Worker #define PIPEC_DP_LINK_N		0x72064
2328*d83cc019SAndroid Build Coastguard Worker 
2329*d83cc019SAndroid Build Coastguard Worker #define PIPEEDPCONF		0x7F008
2330*d83cc019SAndroid Build Coastguard Worker 
2331*d83cc019SAndroid Build Coastguard Worker #define DSPACNTR		0x70180
2332*d83cc019SAndroid Build Coastguard Worker #define DSPBCNTR		0x71180
2333*d83cc019SAndroid Build Coastguard Worker #define DSPCCNTR		0x72180
2334*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_PLANE_ENABLE 			(1<<31)
2335*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_PLANE_DISABLE			0
2336*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_PLANE_TILED			(1<<10)
2337*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_GAMMA_ENABLE			(1<<30)
2338*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_GAMMA_DISABLE			0
2339*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_PIXFORMAT_MASK		(0xf<<26)
2340*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_8BPP				(0x2<<26)
2341*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_15_16BPP			(0x4<<26)
2342*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_16BPP				(0x5<<26)
2343*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_32BPP_NO_ALPHA 		(0x6<<26)
2344*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_32BPP				(0x7<<26)
2345*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_STEREO_ENABLE			(1<<25)
2346*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_STEREO_DISABLE		0
2347*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_SEL_PIPE_MASK			(1<<24)
2348*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_SEL_PIPE_A			0
2349*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_SEL_PIPE_B			(1<<24)
2350*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_SRC_KEY_ENABLE		(1<<22)
2351*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_SRC_KEY_DISABLE		0
2352*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_LINE_DOUBLE			(1<<20)
2353*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_NO_LINE_DOUBLE		0
2354*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_STEREO_POLARITY_FIRST		0
2355*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_STEREO_POLARITY_SECOND	(1<<18)
2356*d83cc019SAndroid Build Coastguard Worker /* plane B only */
2357*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_ALPHA_TRANS_ENABLE		(1<<15)
2358*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_ALPHA_TRANS_DISABLE		0
2359*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_SPRITE_ABOVE_DISPLAYA		0
2360*d83cc019SAndroid Build Coastguard Worker #define DISPPLANE_SPRITE_ABOVE_OVERLAY		(1)
2361*d83cc019SAndroid Build Coastguard Worker 
2362*d83cc019SAndroid Build Coastguard Worker #define DSPABASE		0x70184
2363*d83cc019SAndroid Build Coastguard Worker #define DSPASTRIDE		0x70188
2364*d83cc019SAndroid Build Coastguard Worker 
2365*d83cc019SAndroid Build Coastguard Worker #define DSPBBASE		0x71184
2366*d83cc019SAndroid Build Coastguard Worker #define DSPBADDR		DSPBBASE
2367*d83cc019SAndroid Build Coastguard Worker #define DSPBSTRIDE		0x71188
2368*d83cc019SAndroid Build Coastguard Worker 
2369*d83cc019SAndroid Build Coastguard Worker #define DSPCBASE		0x72184
2370*d83cc019SAndroid Build Coastguard Worker #define DSPCADDR		DSPCBASE
2371*d83cc019SAndroid Build Coastguard Worker #define DSPCSTRIDE		0x72188
2372*d83cc019SAndroid Build Coastguard Worker 
2373*d83cc019SAndroid Build Coastguard Worker #define DSPAKEYVAL		0x70194
2374*d83cc019SAndroid Build Coastguard Worker #define DSPAKEYMASK		0x70198
2375*d83cc019SAndroid Build Coastguard Worker 
2376*d83cc019SAndroid Build Coastguard Worker #define DSPAPOS			0x7018C /* reserved */
2377*d83cc019SAndroid Build Coastguard Worker #define DSPASIZE		0x70190
2378*d83cc019SAndroid Build Coastguard Worker #define DSPBPOS			0x7118C
2379*d83cc019SAndroid Build Coastguard Worker #define DSPBSIZE		0x71190
2380*d83cc019SAndroid Build Coastguard Worker 
2381*d83cc019SAndroid Build Coastguard Worker #define DSPASURF		0x7019C
2382*d83cc019SAndroid Build Coastguard Worker #define DSPATILEOFF		0x701A4
2383*d83cc019SAndroid Build Coastguard Worker #define DSPASURFLIVE		0x701AC
2384*d83cc019SAndroid Build Coastguard Worker 
2385*d83cc019SAndroid Build Coastguard Worker #define DSPBSURF		0x7119C
2386*d83cc019SAndroid Build Coastguard Worker #define DSPBTILEOFF		0x711A4
2387*d83cc019SAndroid Build Coastguard Worker #define DSPBSURFLIVE		0x711AC
2388*d83cc019SAndroid Build Coastguard Worker 
2389*d83cc019SAndroid Build Coastguard Worker #define DSPCSURF		0x7219C
2390*d83cc019SAndroid Build Coastguard Worker #define DSPCTILEOFF		0x721A4
2391*d83cc019SAndroid Build Coastguard Worker #define DSPCSURFLIVE		0x721AC
2392*d83cc019SAndroid Build Coastguard Worker 
2393*d83cc019SAndroid Build Coastguard Worker #define VGACNTRL		0x71400
2394*d83cc019SAndroid Build Coastguard Worker # define VGA_DISP_DISABLE			(1 << 31)
2395*d83cc019SAndroid Build Coastguard Worker # define VGA_2X_MODE				(1 << 30)
2396*d83cc019SAndroid Build Coastguard Worker # define VGA_PIPE_B_SELECT			(1 << 29)
2397*d83cc019SAndroid Build Coastguard Worker 
2398*d83cc019SAndroid Build Coastguard Worker /* Various masks for reserved bits, etc. */
2399*d83cc019SAndroid Build Coastguard Worker #define I830_FWATER1_MASK        (~((1<<11)|(1<<10)|(1<<9)|      \
2400*d83cc019SAndroid Build Coastguard Worker         (1<<8)|(1<<26)|(1<<25)|(1<<24)|(1<<5)|(1<<4)|(1<<3)|    \
2401*d83cc019SAndroid Build Coastguard Worker         (1<<2)|(1<<1)|1|(1<<20)|(1<<19)|(1<<18)|(1<<17)|(1<<16)))
2402*d83cc019SAndroid Build Coastguard Worker #define I830_FWATER2_MASK ~(0)
2403*d83cc019SAndroid Build Coastguard Worker 
2404*d83cc019SAndroid Build Coastguard Worker #define DV0A_RESERVED ((1<<26)|(1<<25)|(1<<24)|(1<<23)|(1<<22)|(1<<21)|(1<<20)|(1<<19)|(1<<18)|(1<<16)|(1<<5)|(1<<1)|1)
2405*d83cc019SAndroid Build Coastguard Worker #define DV0B_RESERVED ((1<<27)|(1<<26)|(1<<25)|(1<<24)|(1<<23)|(1<<22)|(1<<21)|(1<<20)|(1<<19)|(1<<18)|(1<<16)|(1<<5)|(1<<1)|1)
2406*d83cc019SAndroid Build Coastguard Worker #define VGA0_N_DIVISOR_MASK     ((1<<21)|(1<<20)|(1<<19)|(1<<18)|(1<<17)|(1<<16))
2407*d83cc019SAndroid Build Coastguard Worker #define VGA0_M1_DIVISOR_MASK    ((1<<13)|(1<<12)|(1<<11)|(1<<10)|(1<<9)|(1<<8))
2408*d83cc019SAndroid Build Coastguard Worker #define VGA0_M2_DIVISOR_MASK    ((1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|1)
2409*d83cc019SAndroid Build Coastguard Worker #define VGA0_M1M2N_RESERVED	~(VGA0_N_DIVISOR_MASK|VGA0_M1_DIVISOR_MASK|VGA0_M2_DIVISOR_MASK)
2410*d83cc019SAndroid Build Coastguard Worker #define VGA0_POSTDIV_MASK       ((1<<7)|(1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|1)
2411*d83cc019SAndroid Build Coastguard Worker #define VGA1_POSTDIV_MASK       ((1<<15)|(1<<13)|(1<<12)|(1<<11)|(1<<10)|(1<<9)|(1<<8))
2412*d83cc019SAndroid Build Coastguard Worker #define VGA_POSTDIV_RESERVED	~(VGA0_POSTDIV_MASK|VGA1_POSTDIV_MASK|(1<<7)|(1<<15))
2413*d83cc019SAndroid Build Coastguard Worker #define DPLLA_POSTDIV_MASK ((1<<23)|(1<<21)|(1<<20)|(1<<19)|(1<<18)|(1<<17)|(1<<16))
2414*d83cc019SAndroid Build Coastguard Worker #define DPLLA_RESERVED     ((1<<27)|(1<<26)|(1<<25)|(1<<24)|(1<<22)|(1<<15)|(1<<12)|(1<<11)|(1<<10)|(1<<9)|(1<<8)|(1<<7)|(1<<6)|(1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|1)
2415*d83cc019SAndroid Build Coastguard Worker #define ADPA_RESERVED	((1<<2)|(1<<1)|1|(1<<9)|(1<<8)|(1<<7)|(1<<6)|(1<<5)|(1<<30)|(1<<29)|(1<<28)|(1<<27)|(1<<26)|(1<<25)|(1<<24)|(1<<23)|(1<<22)|(1<<21)|(1<<20)|(1<<19)|(1<<18)|(1<<17)|(1<<16))
2416*d83cc019SAndroid Build Coastguard Worker #define SUPER_WORD              32
2417*d83cc019SAndroid Build Coastguard Worker #define BURST_A_MASK    ((1<<11)|(1<<10)|(1<<9)|(1<<8))
2418*d83cc019SAndroid Build Coastguard Worker #define BURST_B_MASK    ((1<<26)|(1<<25)|(1<<24))
2419*d83cc019SAndroid Build Coastguard Worker #define WATER_A_MASK    ((1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|1)
2420*d83cc019SAndroid Build Coastguard Worker #define WATER_B_MASK    ((1<<20)|(1<<19)|(1<<18)|(1<<17)|(1<<16))
2421*d83cc019SAndroid Build Coastguard Worker #define WATER_RESERVED	((1<<31)|(1<<30)|(1<<29)|(1<<28)|(1<<27)|(1<<23)|(1<<22)|(1<<21)|(1<<15)|(1<<14)|(1<<13)|(1<<12)|(1<<7)|(1<<6))
2422*d83cc019SAndroid Build Coastguard Worker #define PIPEACONF_RESERVED ((1<<29)|(1<<28)|(1<<27)|(1<<23)|(1<<22)|(1<<21)|(1<<20)|(1<<19)|(1<<18)|(1<<17)|(1<<16)|0xffff)
2423*d83cc019SAndroid Build Coastguard Worker #define PIPEBCONF_RESERVED ((1<<30)|(1<<29)|(1<<28)|(1<<27)|(1<<26)|(1<<25)|(1<<23)|(1<<22)|(1<<21)|(1<<20)|(1<<19)|(1<<18)|(1<<17)|(1<<16)|0xffff)
2424*d83cc019SAndroid Build Coastguard Worker #define DSPACNTR_RESERVED ((1<<23)|(1<<19)|(1<<17)|(1<<16)|0xffff)
2425*d83cc019SAndroid Build Coastguard Worker #define DSPBCNTR_RESERVED ((1<<23)|(1<<19)|(1<<17)|(1<<16)|0x7ffe)
2426*d83cc019SAndroid Build Coastguard Worker 
2427*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_CTRL		0x52
2428*d83cc019SAndroid Build Coastguard Worker 
2429*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_ENABLED	0x4
2430*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_MEM_MASK	0x1
2431*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_MEM_64M	0x1
2432*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_MEM_128M	0
2433*d83cc019SAndroid Build Coastguard Worker 
2434*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_GMS_MASK			0x70
2435*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_GMS_DISABLED			0x00
2436*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_GMS_LOCAL			0x10
2437*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_GMS_STOLEN_512		0x20
2438*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_GMS_STOLEN_1024		0x30
2439*d83cc019SAndroid Build Coastguard Worker #define I830_GMCH_GMS_STOLEN_8192		0x40
2440*d83cc019SAndroid Build Coastguard Worker 
2441*d83cc019SAndroid Build Coastguard Worker #define I830_RDRAM_CHANNEL_TYPE		0x03010
2442*d83cc019SAndroid Build Coastguard Worker #define I830_RDRAM_ND(x)			(((x) & 0x20) >> 5)
2443*d83cc019SAndroid Build Coastguard Worker #define I830_RDRAM_DDT(x)			(((x) & 0x18) >> 3)
2444*d83cc019SAndroid Build Coastguard Worker 
2445*d83cc019SAndroid Build Coastguard Worker #define I855_GMCH_GMS_MASK			(0xF << 4)
2446*d83cc019SAndroid Build Coastguard Worker #define I855_GMCH_GMS_DISABLED			0x00
2447*d83cc019SAndroid Build Coastguard Worker #define I855_GMCH_GMS_STOLEN_1M			(0x1 << 4)
2448*d83cc019SAndroid Build Coastguard Worker #define I855_GMCH_GMS_STOLEN_4M			(0x2 << 4)
2449*d83cc019SAndroid Build Coastguard Worker #define I855_GMCH_GMS_STOLEN_8M			(0x3 << 4)
2450*d83cc019SAndroid Build Coastguard Worker #define I855_GMCH_GMS_STOLEN_16M		(0x4 << 4)
2451*d83cc019SAndroid Build Coastguard Worker #define I855_GMCH_GMS_STOLEN_32M		(0x5 << 4)
2452*d83cc019SAndroid Build Coastguard Worker #define I915G_GMCH_GMS_STOLEN_48M		(0x6 << 4)
2453*d83cc019SAndroid Build Coastguard Worker #define I915G_GMCH_GMS_STOLEN_64M		(0x7 << 4)
2454*d83cc019SAndroid Build Coastguard Worker #define G33_GMCH_GMS_STOLEN_128M		(0x8 << 4)
2455*d83cc019SAndroid Build Coastguard Worker #define G33_GMCH_GMS_STOLEN_256M		(0x9 << 4)
2456*d83cc019SAndroid Build Coastguard Worker #define INTEL_GMCH_GMS_STOLEN_96M		(0xa << 4)
2457*d83cc019SAndroid Build Coastguard Worker #define INTEL_GMCH_GMS_STOLEN_160M		(0xb << 4)
2458*d83cc019SAndroid Build Coastguard Worker #define INTEL_GMCH_GMS_STOLEN_224M		(0xc << 4)
2459*d83cc019SAndroid Build Coastguard Worker #define INTEL_GMCH_GMS_STOLEN_352M		(0xd << 4)
2460*d83cc019SAndroid Build Coastguard Worker 
2461*d83cc019SAndroid Build Coastguard Worker 
2462*d83cc019SAndroid Build Coastguard Worker #define I85X_CAPID			0x44
2463*d83cc019SAndroid Build Coastguard Worker #define I85X_VARIANT_MASK			0x7
2464*d83cc019SAndroid Build Coastguard Worker #define I85X_VARIANT_SHIFT			5
2465*d83cc019SAndroid Build Coastguard Worker #define I855_GME				0x0
2466*d83cc019SAndroid Build Coastguard Worker #define I855_GM					0x4
2467*d83cc019SAndroid Build Coastguard Worker #define I852_GME				0x2
2468*d83cc019SAndroid Build Coastguard Worker #define I852_GM					0x5
2469*d83cc019SAndroid Build Coastguard Worker 
2470*d83cc019SAndroid Build Coastguard Worker #define I915_GCFGC			0xf0
2471*d83cc019SAndroid Build Coastguard Worker #define I915_LOW_FREQUENCY_ENABLE		(1 << 7)
2472*d83cc019SAndroid Build Coastguard Worker #define I915_DISPLAY_CLOCK_190_200_MHZ		(0 << 4)
2473*d83cc019SAndroid Build Coastguard Worker #define I915_DISPLAY_CLOCK_333_MHZ		(4 << 4)
2474*d83cc019SAndroid Build Coastguard Worker #define I915_DISPLAY_CLOCK_MASK			(7 << 4)
2475*d83cc019SAndroid Build Coastguard Worker 
2476*d83cc019SAndroid Build Coastguard Worker #define I855_HPLLCC			0xc0
2477*d83cc019SAndroid Build Coastguard Worker #define I855_CLOCK_CONTROL_MASK			(3 << 0)
2478*d83cc019SAndroid Build Coastguard Worker #define I855_CLOCK_133_200			(0 << 0)
2479*d83cc019SAndroid Build Coastguard Worker #define I855_CLOCK_100_200			(1 << 0)
2480*d83cc019SAndroid Build Coastguard Worker #define I855_CLOCK_100_133			(2 << 0)
2481*d83cc019SAndroid Build Coastguard Worker #define I855_CLOCK_166_250			(3 << 0)
2482*d83cc019SAndroid Build Coastguard Worker 
2483*d83cc019SAndroid Build Coastguard Worker /* BLT commands */
2484*d83cc019SAndroid Build Coastguard Worker #define COLOR_BLT_CMD		((2<<29)|(0x40<<22)|(0x3))
2485*d83cc019SAndroid Build Coastguard Worker #define COLOR_BLT_WRITE_ALPHA	(1<<21)
2486*d83cc019SAndroid Build Coastguard Worker #define COLOR_BLT_WRITE_RGB	(1<<20)
2487*d83cc019SAndroid Build Coastguard Worker 
2488*d83cc019SAndroid Build Coastguard Worker #define XY_COLOR_BLT_CMD_NOLEN		((2<<29)|(0x50<<22))
2489*d83cc019SAndroid Build Coastguard Worker #define XY_COLOR_BLT_WRITE_ALPHA	(1<<21)
2490*d83cc019SAndroid Build Coastguard Worker #define XY_COLOR_BLT_WRITE_RGB		(1<<20)
2491*d83cc019SAndroid Build Coastguard Worker #define XY_COLOR_BLT_TILED		(1<<11)
2492*d83cc019SAndroid Build Coastguard Worker 
2493*d83cc019SAndroid Build Coastguard Worker #define XY_SETUP_CLIP_BLT_CMD		((2<<29)|(3<<22)|1)
2494*d83cc019SAndroid Build Coastguard Worker 
2495*d83cc019SAndroid Build Coastguard Worker #define XY_SRC_COPY_BLT_CMD		((2<<29)|(0x53<<22))
2496*d83cc019SAndroid Build Coastguard Worker #define XY_SRC_COPY_BLT_WRITE_ALPHA	(1<<21)
2497*d83cc019SAndroid Build Coastguard Worker #define XY_SRC_COPY_BLT_WRITE_RGB	(1<<20)
2498*d83cc019SAndroid Build Coastguard Worker #define XY_SRC_COPY_BLT_SRC_TILED	(1<<15)
2499*d83cc019SAndroid Build Coastguard Worker #define XY_SRC_COPY_BLT_DST_TILED	(1<<11)
2500*d83cc019SAndroid Build Coastguard Worker 
2501*d83cc019SAndroid Build Coastguard Worker #define SRC_COPY_BLT_CMD		((2<<29)|(0x43<<22)|0x4)
2502*d83cc019SAndroid Build Coastguard Worker #define SRC_COPY_BLT_WRITE_ALPHA	(1<<21)
2503*d83cc019SAndroid Build Coastguard Worker #define SRC_COPY_BLT_WRITE_RGB		(1<<20)
2504*d83cc019SAndroid Build Coastguard Worker 
2505*d83cc019SAndroid Build Coastguard Worker #define XY_PAT_BLT_IMMEDIATE		((2<<29)|(0x72<<22))
2506*d83cc019SAndroid Build Coastguard Worker 
2507*d83cc019SAndroid Build Coastguard Worker #define XY_MONO_PAT_BLT_CMD		((0x2<<29)|(0x52<<22)|0x7)
2508*d83cc019SAndroid Build Coastguard Worker #define XY_MONO_PAT_VERT_SEED		((1<<10)|(1<<9)|(1<<8))
2509*d83cc019SAndroid Build Coastguard Worker #define XY_MONO_PAT_HORT_SEED		((1<<14)|(1<<13)|(1<<12))
2510*d83cc019SAndroid Build Coastguard Worker #define XY_MONO_PAT_BLT_WRITE_ALPHA	(1<<21)
2511*d83cc019SAndroid Build Coastguard Worker #define XY_MONO_PAT_BLT_WRITE_RGB	(1<<20)
2512*d83cc019SAndroid Build Coastguard Worker 
2513*d83cc019SAndroid Build Coastguard Worker #define XY_MONO_SRC_BLT_CMD		((0x2<<29)|(0x54<<22)|(0x6))
2514*d83cc019SAndroid Build Coastguard Worker #define XY_MONO_SRC_BLT_WRITE_ALPHA	(1<<21)
2515*d83cc019SAndroid Build Coastguard Worker #define XY_MONO_SRC_BLT_WRITE_RGB	(1<<20)
2516*d83cc019SAndroid Build Coastguard Worker 
2517*d83cc019SAndroid Build Coastguard Worker #define XY_FAST_COPY_BLT				((2<<29)|(0x42<<22)|0x8)
2518*d83cc019SAndroid Build Coastguard Worker /* dword 0 */
2519*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_SRC_TILING_LINEAR		(0 << 20)
2520*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_SRC_TILING_X			(1 << 20)
2521*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_SRC_TILING_Yb_Yf			(2 << 20)
2522*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_SRC_TILING_Ys			(3 << 20)
2523*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_SRC_HORIZONTAL_ALIGNMENT(n)	(n << 17)
2524*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_SRC_VERTICAL_ALIGNMENT(n)	(n << 15)
2525*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_DST_TILING_X			(1 << 13)
2526*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_DST_TILING_Yb_Yf			(2 << 13)
2527*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_DST_TILING_Ys			(3 << 13)
2528*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_DST_HORIZONTAL_ALIGNMENT(n)	(n << 10)
2529*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_DST_VERTICAL_ALIGNMENT(n)	(n <<  8)
2530*d83cc019SAndroid Build Coastguard Worker /* dword 1 */
2531*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_SRC_TILING_Yf			(1 <<  31)
2532*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_DST_TILING_Yf			(1 <<  30)
2533*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_COLOR_DEPTH_8			(0  << 24)
2534*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_COLOR_DEPTH_16			(1  << 24)
2535*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_COLOR_DEPTH_32			(3  << 24)
2536*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_COLOR_DEPTH_64			(4  << 24)
2537*d83cc019SAndroid Build Coastguard Worker #define   XY_FAST_COPY_COLOR_DEPTH_128			(5  << 24)
2538*d83cc019SAndroid Build Coastguard Worker 
2539*d83cc019SAndroid Build Coastguard Worker #define MI_STORE_DWORD_IMM		((0x20<<23)|2)
2540*d83cc019SAndroid Build Coastguard Worker #define   MI_MEM_VIRTUAL	(1 << 22) /* 965+ only */
2541*d83cc019SAndroid Build Coastguard Worker 
2542*d83cc019SAndroid Build Coastguard Worker #define MI_SET_CONTEXT			(0x18<<23)
2543*d83cc019SAndroid Build Coastguard Worker #define CTXT_NO_RESTORE			(1)
2544*d83cc019SAndroid Build Coastguard Worker #define CTXT_PALETTE_SAVE_DISABLE	(1<<3)
2545*d83cc019SAndroid Build Coastguard Worker #define CTXT_PALETTE_RESTORE_DISABLE	(1<<2)
2546*d83cc019SAndroid Build Coastguard Worker 
2547*d83cc019SAndroid Build Coastguard Worker /* Dword 0 */
2548*d83cc019SAndroid Build Coastguard Worker #define MI_VERTEX_BUFFER		(0x17<<23)
2549*d83cc019SAndroid Build Coastguard Worker #define MI_VERTEX_BUFFER_IDX(x)		(x<<20)
2550*d83cc019SAndroid Build Coastguard Worker #define MI_VERTEX_BUFFER_PITCH(x)	(x<<13)
2551*d83cc019SAndroid Build Coastguard Worker #define MI_VERTEX_BUFFER_WIDTH(x)	(x<<6)
2552*d83cc019SAndroid Build Coastguard Worker /* Dword 1 */
2553*d83cc019SAndroid Build Coastguard Worker #define MI_VERTEX_BUFFER_DISABLE	(1)
2554*d83cc019SAndroid Build Coastguard Worker 
2555*d83cc019SAndroid Build Coastguard Worker /* Overlay Flip */
2556*d83cc019SAndroid Build Coastguard Worker #define MI_OVERLAY_FLIP			(0x11<<23)
2557*d83cc019SAndroid Build Coastguard Worker #define MI_OVERLAY_FLIP_CONTINUE	(0<<21)
2558*d83cc019SAndroid Build Coastguard Worker #define MI_OVERLAY_FLIP_ON		(1<<21)
2559*d83cc019SAndroid Build Coastguard Worker #define MI_OVERLAY_FLIP_OFF		(2<<21)
2560*d83cc019SAndroid Build Coastguard Worker 
2561*d83cc019SAndroid Build Coastguard Worker /* Wait for Events */
2562*d83cc019SAndroid Build Coastguard Worker #define MI_WAIT_FOR_EVENT		(0x03<<23)
2563*d83cc019SAndroid Build Coastguard Worker #define MI_WAIT_FOR_PIPEB_SVBLANK	(1<<18)
2564*d83cc019SAndroid Build Coastguard Worker #define MI_WAIT_FOR_PIPEA_SVBLANK	(1<<17)
2565*d83cc019SAndroid Build Coastguard Worker #define MI_WAIT_FOR_OVERLAY_FLIP	(1<<16)
2566*d83cc019SAndroid Build Coastguard Worker #define MI_WAIT_FOR_PIPEB_VBLANK	(1<<7)
2567*d83cc019SAndroid Build Coastguard Worker #define MI_WAIT_FOR_PIPEA_VBLANK	(1<<3)
2568*d83cc019SAndroid Build Coastguard Worker #define MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW	(1<<5)
2569*d83cc019SAndroid Build Coastguard Worker #define MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW	(1<<1)
2570*d83cc019SAndroid Build Coastguard Worker 
2571*d83cc019SAndroid Build Coastguard Worker #define MI_LOAD_SCAN_LINES_INCL		(0x12<<23)
2572*d83cc019SAndroid Build Coastguard Worker #define MI_LOAD_REGISTER_IMM		((0x22 << 23) | 1)
2573*d83cc019SAndroid Build Coastguard Worker 
2574*d83cc019SAndroid Build Coastguard Worker /* Flush */
2575*d83cc019SAndroid Build Coastguard Worker #define MI_FLUSH			(0x04<<23)
2576*d83cc019SAndroid Build Coastguard Worker #define MI_WRITE_DIRTY_STATE		(1<<4)
2577*d83cc019SAndroid Build Coastguard Worker #define MI_END_SCENE			(1<<3)
2578*d83cc019SAndroid Build Coastguard Worker #define MI_GLOBAL_SNAPSHOT_COUNT_RESET	(1<<3)
2579*d83cc019SAndroid Build Coastguard Worker #define MI_INHIBIT_RENDER_CACHE_FLUSH	(1<<2)
2580*d83cc019SAndroid Build Coastguard Worker #define MI_STATE_INSTRUCTION_CACHE_FLUSH (1<<1)
2581*d83cc019SAndroid Build Coastguard Worker #define MI_INVALIDATE_MAP_CACHE		(1<<0)
2582*d83cc019SAndroid Build Coastguard Worker /* broadwater flush bits */
2583*d83cc019SAndroid Build Coastguard Worker #define BRW_MI_GLOBAL_SNAPSHOT_RESET   (1 << 3)
2584*d83cc019SAndroid Build Coastguard Worker 
2585*d83cc019SAndroid Build Coastguard Worker /* Noop */
2586*d83cc019SAndroid Build Coastguard Worker #define MI_NOOP				0x00
2587*d83cc019SAndroid Build Coastguard Worker #define MI_NOOP_WRITE_ID		(1<<22)
2588*d83cc019SAndroid Build Coastguard Worker #define MI_NOOP_ID_MASK			(1<<22 - 1)
2589*d83cc019SAndroid Build Coastguard Worker 
2590*d83cc019SAndroid Build Coastguard Worker #define STATE3D_COLOR_FACTOR	((0x3<<29)|(0x1d<<24)|(0x01<<16))
2591*d83cc019SAndroid Build Coastguard Worker 
2592*d83cc019SAndroid Build Coastguard Worker /* Batch */
2593*d83cc019SAndroid Build Coastguard Worker #define MI_BATCH_BUFFER		((0x30 << 23) | 1)
2594*d83cc019SAndroid Build Coastguard Worker #define MI_BATCH_BUFFER_START	(0x31 << 23)
2595*d83cc019SAndroid Build Coastguard Worker #define MI_BATCH_BUFFER_END	(0xA << 23)
2596*d83cc019SAndroid Build Coastguard Worker #define MI_BATCH_NON_SECURE		(1)
2597*d83cc019SAndroid Build Coastguard Worker #define MI_BATCH_NON_SECURE_I965	(1 << 8)
2598*d83cc019SAndroid Build Coastguard Worker #define MI_BATCH_NON_SECURE_HSW		(1<<13) /* Additional bit for RCS */
2599*d83cc019SAndroid Build Coastguard Worker 
2600*d83cc019SAndroid Build Coastguard Worker #define MAX_DISPLAY_PIPES	2
2601*d83cc019SAndroid Build Coastguard Worker 
2602*d83cc019SAndroid Build Coastguard Worker typedef enum {
2603*d83cc019SAndroid Build Coastguard Worker    CrtIndex = 0,
2604*d83cc019SAndroid Build Coastguard Worker    TvIndex,
2605*d83cc019SAndroid Build Coastguard Worker    DfpIndex,
2606*d83cc019SAndroid Build Coastguard Worker    LfpIndex,
2607*d83cc019SAndroid Build Coastguard Worker    Crt2Index,
2608*d83cc019SAndroid Build Coastguard Worker    Tv2Index,
2609*d83cc019SAndroid Build Coastguard Worker    Dfp2Index,
2610*d83cc019SAndroid Build Coastguard Worker    Lfp2Index,
2611*d83cc019SAndroid Build Coastguard Worker    NumDisplayTypes
2612*d83cc019SAndroid Build Coastguard Worker } DisplayType;
2613*d83cc019SAndroid Build Coastguard Worker 
2614*d83cc019SAndroid Build Coastguard Worker /* What's connected to the pipes (as reported by the BIOS) */
2615*d83cc019SAndroid Build Coastguard Worker #define PIPE_ACTIVE_MASK		0xff
2616*d83cc019SAndroid Build Coastguard Worker #define PIPE_CRT_ACTIVE			(1 << CrtIndex)
2617*d83cc019SAndroid Build Coastguard Worker #define PIPE_TV_ACTIVE			(1 << TvIndex)
2618*d83cc019SAndroid Build Coastguard Worker #define PIPE_DFP_ACTIVE			(1 << DfpIndex)
2619*d83cc019SAndroid Build Coastguard Worker #define PIPE_LCD_ACTIVE			(1 << LfpIndex)
2620*d83cc019SAndroid Build Coastguard Worker #define PIPE_CRT2_ACTIVE		(1 << Crt2Index)
2621*d83cc019SAndroid Build Coastguard Worker #define PIPE_TV2_ACTIVE			(1 << Tv2Index)
2622*d83cc019SAndroid Build Coastguard Worker #define PIPE_DFP2_ACTIVE		(1 << Dfp2Index)
2623*d83cc019SAndroid Build Coastguard Worker #define PIPE_LCD2_ACTIVE		(1 << Lfp2Index)
2624*d83cc019SAndroid Build Coastguard Worker 
2625*d83cc019SAndroid Build Coastguard Worker #define PIPE_SIZED_DISP_MASK		(PIPE_DFP_ACTIVE |	\
2626*d83cc019SAndroid Build Coastguard Worker 					 PIPE_LCD_ACTIVE |	\
2627*d83cc019SAndroid Build Coastguard Worker 					 PIPE_DFP2_ACTIVE)
2628*d83cc019SAndroid Build Coastguard Worker 
2629*d83cc019SAndroid Build Coastguard Worker #define PIPE_A_SHIFT			0
2630*d83cc019SAndroid Build Coastguard Worker #define PIPE_B_SHIFT			8
2631*d83cc019SAndroid Build Coastguard Worker #define PIPE_SHIFT(n)			((n) == 0 ? \
2632*d83cc019SAndroid Build Coastguard Worker 					 PIPE_A_SHIFT : PIPE_B_SHIFT)
2633*d83cc019SAndroid Build Coastguard Worker 
2634*d83cc019SAndroid Build Coastguard Worker /*
2635*d83cc019SAndroid Build Coastguard Worker  * Some BIOS scratch area registers.  The 845 (and 830?) store the amount
2636*d83cc019SAndroid Build Coastguard Worker  * of video memory available to the BIOS in SWF1.
2637*d83cc019SAndroid Build Coastguard Worker  */
2638*d83cc019SAndroid Build Coastguard Worker 
2639*d83cc019SAndroid Build Coastguard Worker #define SWF0			0x71410
2640*d83cc019SAndroid Build Coastguard Worker #define SWF1			0x71414
2641*d83cc019SAndroid Build Coastguard Worker #define SWF2			0x71418
2642*d83cc019SAndroid Build Coastguard Worker #define SWF3			0x7141c
2643*d83cc019SAndroid Build Coastguard Worker #define SWF4			0x71420
2644*d83cc019SAndroid Build Coastguard Worker #define SWF5			0x71424
2645*d83cc019SAndroid Build Coastguard Worker #define SWF6			0x71428
2646*d83cc019SAndroid Build Coastguard Worker 
2647*d83cc019SAndroid Build Coastguard Worker /*
2648*d83cc019SAndroid Build Coastguard Worker  * 855 scratch registers.
2649*d83cc019SAndroid Build Coastguard Worker  */
2650*d83cc019SAndroid Build Coastguard Worker #define SWF00			0x70410
2651*d83cc019SAndroid Build Coastguard Worker #define SWF01			0x70414
2652*d83cc019SAndroid Build Coastguard Worker #define SWF02			0x70418
2653*d83cc019SAndroid Build Coastguard Worker #define SWF03			0x7041c
2654*d83cc019SAndroid Build Coastguard Worker #define SWF04			0x70420
2655*d83cc019SAndroid Build Coastguard Worker #define SWF05			0x70424
2656*d83cc019SAndroid Build Coastguard Worker #define SWF06			0x70428
2657*d83cc019SAndroid Build Coastguard Worker 
2658*d83cc019SAndroid Build Coastguard Worker #define SWF10			SWF0
2659*d83cc019SAndroid Build Coastguard Worker #define SWF11			SWF1
2660*d83cc019SAndroid Build Coastguard Worker #define SWF12			SWF2
2661*d83cc019SAndroid Build Coastguard Worker #define SWF13			SWF3
2662*d83cc019SAndroid Build Coastguard Worker #define SWF14			SWF4
2663*d83cc019SAndroid Build Coastguard Worker #define SWF15			SWF5
2664*d83cc019SAndroid Build Coastguard Worker #define SWF16			SWF6
2665*d83cc019SAndroid Build Coastguard Worker 
2666*d83cc019SAndroid Build Coastguard Worker #define SWF30			0x72414
2667*d83cc019SAndroid Build Coastguard Worker #define SWF31			0x72418
2668*d83cc019SAndroid Build Coastguard Worker #define SWF32			0x7241c
2669*d83cc019SAndroid Build Coastguard Worker 
2670*d83cc019SAndroid Build Coastguard Worker /*
2671*d83cc019SAndroid Build Coastguard Worker  * Overlay registers.  These are overlay registers accessed via MMIO.
2672*d83cc019SAndroid Build Coastguard Worker  * Those loaded via the overlay register page are defined in i830_video.c.
2673*d83cc019SAndroid Build Coastguard Worker  */
2674*d83cc019SAndroid Build Coastguard Worker #define OVADD			0x30000
2675*d83cc019SAndroid Build Coastguard Worker 
2676*d83cc019SAndroid Build Coastguard Worker #define DOVSTA			0x30008
2677*d83cc019SAndroid Build Coastguard Worker #define OC_BUF			(0x3<<20)
2678*d83cc019SAndroid Build Coastguard Worker 
2679*d83cc019SAndroid Build Coastguard Worker #define OGAMC5			0x30010
2680*d83cc019SAndroid Build Coastguard Worker #define OGAMC4			0x30014
2681*d83cc019SAndroid Build Coastguard Worker #define OGAMC3			0x30018
2682*d83cc019SAndroid Build Coastguard Worker #define OGAMC2			0x3001c
2683*d83cc019SAndroid Build Coastguard Worker #define OGAMC1			0x30020
2684*d83cc019SAndroid Build Coastguard Worker #define OGAMC0			0x30024
2685*d83cc019SAndroid Build Coastguard Worker 
2686*d83cc019SAndroid Build Coastguard Worker 
2687*d83cc019SAndroid Build Coastguard Worker /*
2688*d83cc019SAndroid Build Coastguard Worker  * Palette registers
2689*d83cc019SAndroid Build Coastguard Worker  */
2690*d83cc019SAndroid Build Coastguard Worker #define PALETTE_A		0x0a000
2691*d83cc019SAndroid Build Coastguard Worker #define PALETTE_B		0x0a800
2692*d83cc019SAndroid Build Coastguard Worker 
2693*d83cc019SAndroid Build Coastguard Worker /* Framebuffer compression */
2694*d83cc019SAndroid Build Coastguard Worker #define FBC_CFB_BASE		0x03200 /* 4k page aligned */
2695*d83cc019SAndroid Build Coastguard Worker #define FBC_LL_BASE		0x03204 /* 4k page aligned */
2696*d83cc019SAndroid Build Coastguard Worker #define FBC_CONTROL		0x03208
2697*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_EN		(1<<31)
2698*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_PERIODIC	(1<<30)
2699*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_INTERVAL_SHIFT (16)
2700*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_UNCOMPRESSIBLE (1<<14)
2701*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_STRIDE_SHIFT	(5)
2702*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_FENCENO	(1<<0)
2703*d83cc019SAndroid Build Coastguard Worker #define FBC_COMMAND		0x0320c
2704*d83cc019SAndroid Build Coastguard Worker #define   FBC_CMD_COMPRESS	(1<<0)
2705*d83cc019SAndroid Build Coastguard Worker #define FBC_STATUS		0x03210
2706*d83cc019SAndroid Build Coastguard Worker #define   FBC_STAT_COMPRESSING	(1<<31)
2707*d83cc019SAndroid Build Coastguard Worker #define   FBC_STAT_COMPRESSED	(1<<30)
2708*d83cc019SAndroid Build Coastguard Worker #define   FBC_STAT_MODIFIED	(1<<29)
2709*d83cc019SAndroid Build Coastguard Worker #define   FBC_STAT_CURRENT_LINE	(1<<0)
2710*d83cc019SAndroid Build Coastguard Worker #define FBC_CONTROL2		0x03214
2711*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_FENCE_DBL	(0<<4)
2712*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_IDLE_IMM	(0<<2)
2713*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_IDLE_FULL	(1<<2)
2714*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_IDLE_LINE	(2<<2)
2715*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_IDLE_DEBUG	(3<<2)
2716*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_CPU_FENCE	(1<<1)
2717*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_PLANEA	(0<<0)
2718*d83cc019SAndroid Build Coastguard Worker #define   FBC_CTL_PLANEB	(1<<0)
2719*d83cc019SAndroid Build Coastguard Worker #define FBC_FENCE_OFF		0x0321b
2720*d83cc019SAndroid Build Coastguard Worker #define FBC_MOD_NUM		0x03220
2721*d83cc019SAndroid Build Coastguard Worker #define FBC_TAG_DEBUG		0x03300
2722*d83cc019SAndroid Build Coastguard Worker 
2723*d83cc019SAndroid Build Coastguard Worker #define FBC_LL_SIZE		(1536)
2724*d83cc019SAndroid Build Coastguard Worker #define FBC_LL_PAD		(32)
2725*d83cc019SAndroid Build Coastguard Worker 
2726*d83cc019SAndroid Build Coastguard Worker /* Framebuffer compression version 2 */
2727*d83cc019SAndroid Build Coastguard Worker #define DPFC_CB_BASE		0x3200
2728*d83cc019SAndroid Build Coastguard Worker #define DPFC_CONTROL		0x3208
2729*d83cc019SAndroid Build Coastguard Worker #define   DPFC_CTL_EN		(1<<31)
2730*d83cc019SAndroid Build Coastguard Worker #define   DPFC_CTL_PLANEA	(0<<30)
2731*d83cc019SAndroid Build Coastguard Worker #define   DPFC_CTL_PLANEB	(1<<30)
2732*d83cc019SAndroid Build Coastguard Worker #define   DPFC_CTL_FENCE_EN	(1<<29)
2733*d83cc019SAndroid Build Coastguard Worker #define   DPFC_CTL_LIMIT_1X	(0<<6)
2734*d83cc019SAndroid Build Coastguard Worker #define   DPFC_CTL_LIMIT_2X	(1<<6)
2735*d83cc019SAndroid Build Coastguard Worker #define   DPFC_CTL_LIMIT_4X	(2<<6)
2736*d83cc019SAndroid Build Coastguard Worker #define DPFC_RECOMP_CTL		0x320c
2737*d83cc019SAndroid Build Coastguard Worker #define   DPFC_RECOMP_STALL_EN	(1<<27)
2738*d83cc019SAndroid Build Coastguard Worker #define   DPFC_RECOMP_STALL_WM_SHIFT (16)
2739*d83cc019SAndroid Build Coastguard Worker #define   DPFC_RECOMP_STALL_WM_MASK (0x07ff0000)
2740*d83cc019SAndroid Build Coastguard Worker #define   DPFC_RECOMP_TIMER_COUNT_SHIFT (0)
2741*d83cc019SAndroid Build Coastguard Worker #define   DPFC_RECOMP_TIMER_COUNT_MASK (0x0000003f)
2742*d83cc019SAndroid Build Coastguard Worker #define DPFC_STATUS		0x3210
2743*d83cc019SAndroid Build Coastguard Worker #define   DPFC_INVAL_SEG_SHIFT  (16)
2744*d83cc019SAndroid Build Coastguard Worker #define   DPFC_INVAL_SEG_MASK	(0x07ff0000)
2745*d83cc019SAndroid Build Coastguard Worker #define   DPFC_COMP_SEG_SHIFT	(0)
2746*d83cc019SAndroid Build Coastguard Worker #define   DPFC_COMP_SEG_MASK	(0x000003ff)
2747*d83cc019SAndroid Build Coastguard Worker #define DPFC_STATUS2		0x3214
2748*d83cc019SAndroid Build Coastguard Worker #define DPFC_FENCE_YOFF		0x3218
2749*d83cc019SAndroid Build Coastguard Worker 
2750*d83cc019SAndroid Build Coastguard Worker #define PEG_BAND_GAP_DATA	0x14d68
2751*d83cc019SAndroid Build Coastguard Worker 
2752*d83cc019SAndroid Build Coastguard Worker #define MCHBAR_RENDER_STANDBY	0x111B8
2753*d83cc019SAndroid Build Coastguard Worker #define RENDER_STANDBY_ENABLE	(1 << 30)
2754*d83cc019SAndroid Build Coastguard Worker 
2755*d83cc019SAndroid Build Coastguard Worker 
2756*d83cc019SAndroid Build Coastguard Worker /* Ironlake */
2757*d83cc019SAndroid Build Coastguard Worker 
2758*d83cc019SAndroid Build Coastguard Worker /* warmup time in us */
2759*d83cc019SAndroid Build Coastguard Worker #define WARMUP_PCH_REF_CLK_SSC_MOD	1
2760*d83cc019SAndroid Build Coastguard Worker #define WARMUP_PCH_FDI_RECEIVER_PLL	25
2761*d83cc019SAndroid Build Coastguard Worker #define WARMUP_PCH_DPLL			50
2762*d83cc019SAndroid Build Coastguard Worker #define WARMUP_CPU_DP_PLL		20
2763*d83cc019SAndroid Build Coastguard Worker #define WARMUP_CPU_FDI_TRANSMITTER_PLL	10
2764*d83cc019SAndroid Build Coastguard Worker #define WARMUP_DMI_LATENCY		20
2765*d83cc019SAndroid Build Coastguard Worker #define FDI_TRAIN_PATTERN_1_TIME	0.5
2766*d83cc019SAndroid Build Coastguard Worker #define FDI_TRAIN_PATTERN_2_TIME	1.5
2767*d83cc019SAndroid Build Coastguard Worker #define FDI_ONE_IDLE_PATTERN_TIME	31
2768*d83cc019SAndroid Build Coastguard Worker 
2769*d83cc019SAndroid Build Coastguard Worker #define CPU_VGACNTRL		0x41000
2770*d83cc019SAndroid Build Coastguard Worker 
2771*d83cc019SAndroid Build Coastguard Worker #define DIGITAL_PORT_HOTPLUG_CNTRL	0x44030
2772*d83cc019SAndroid Build Coastguard Worker #define  DIGITAL_PORTA_HOTPLUG_ENABLE		(1 << 4)
2773*d83cc019SAndroid Build Coastguard Worker #define  DIGITAL_PORTA_SHORT_PULSE_2MS		(0 << 2)
2774*d83cc019SAndroid Build Coastguard Worker #define  DIGITAL_PORTA_SHORT_PULSE_4_5MS	(1 << 2)
2775*d83cc019SAndroid Build Coastguard Worker #define  DIGITAL_PORTA_SHORT_PULSE_6MS		(2 << 2)
2776*d83cc019SAndroid Build Coastguard Worker #define  DIGITAL_PORTA_SHORT_PULSE_100MS	(3 << 2)
2777*d83cc019SAndroid Build Coastguard Worker #define  DIGITAL_PORTA_NO_DETECT		(0 << 0)
2778*d83cc019SAndroid Build Coastguard Worker #define  DIGITAL_PORTA_LONG_PULSE_DETECT_MASK	(1 << 1)
2779*d83cc019SAndroid Build Coastguard Worker #define  DIGITAL_PORTA_SHORT_PULSE_DETECT_MASK	(1 << 0)
2780*d83cc019SAndroid Build Coastguard Worker 
2781*d83cc019SAndroid Build Coastguard Worker /* refresh rate hardware control */
2782*d83cc019SAndroid Build Coastguard Worker #define RR_HW_CTL	0x45300
2783*d83cc019SAndroid Build Coastguard Worker #define  RR_HW_LOW_POWER_FRAMES_MASK	0xff
2784*d83cc019SAndroid Build Coastguard Worker #define  RR_HW_HIGH_POWER_FRAMES_MASK	0xff00
2785*d83cc019SAndroid Build Coastguard Worker 
2786*d83cc019SAndroid Build Coastguard Worker #define FDI_PLL_BIOS_0			0x46000
2787*d83cc019SAndroid Build Coastguard Worker #define FDI_PLL_BIOS_1			0x46004
2788*d83cc019SAndroid Build Coastguard Worker #define FDI_PLL_BIOS_2			0x46008
2789*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_PORT_PLL_BIOS_0		0x4600c
2790*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_PORT_PLL_BIOS_1		0x46010
2791*d83cc019SAndroid Build Coastguard Worker #define DISPLAY_PORT_PLL_BIOS_2		0x46014
2792*d83cc019SAndroid Build Coastguard Worker 
2793*d83cc019SAndroid Build Coastguard Worker #define FDI_PLL_FREQ_CTL	0x46030
2794*d83cc019SAndroid Build Coastguard Worker #define  FDI_PLL_FREQ_CHANGE_REQUEST	(1<<24)
2795*d83cc019SAndroid Build Coastguard Worker #define  FDI_PLL_FREQ_LOCK_LIMIT_MASK	0xfff00
2796*d83cc019SAndroid Build Coastguard Worker #define  FDI_PLL_FREQ_DISABLE_COUNT_LIMIT_MASK	0xff
2797*d83cc019SAndroid Build Coastguard Worker 
2798*d83cc019SAndroid Build Coastguard Worker #define PIPEA_DATA_M1		0x60030
2799*d83cc019SAndroid Build Coastguard Worker #define  TU_SIZE(x)		(((x)-1) << 25) /* default size 64 */
2800*d83cc019SAndroid Build Coastguard Worker #define  TU_SIZE_MASK		0x7e000000
2801*d83cc019SAndroid Build Coastguard Worker #define  PIPEA_DATA_M1_OFFSET	0
2802*d83cc019SAndroid Build Coastguard Worker #define PIPEA_DATA_N1		0x60034
2803*d83cc019SAndroid Build Coastguard Worker #define  PIPEA_DATA_N1_OFFSET	0
2804*d83cc019SAndroid Build Coastguard Worker 
2805*d83cc019SAndroid Build Coastguard Worker #define PIPEA_DATA_M2		0x60038
2806*d83cc019SAndroid Build Coastguard Worker #define  PIPEA_DATA_M2_OFFSET	0
2807*d83cc019SAndroid Build Coastguard Worker #define PIPEA_DATA_N2		0x6003c
2808*d83cc019SAndroid Build Coastguard Worker #define  PIPEA_DATA_N2_OFFSET	0
2809*d83cc019SAndroid Build Coastguard Worker 
2810*d83cc019SAndroid Build Coastguard Worker #define PIPEA_LINK_M1		0x60040
2811*d83cc019SAndroid Build Coastguard Worker #define  PIPEA_LINK_M1_OFFSET	0
2812*d83cc019SAndroid Build Coastguard Worker #define PIPEA_LINK_N1		0x60044
2813*d83cc019SAndroid Build Coastguard Worker #define  PIPEA_LINK_N1_OFFSET	0
2814*d83cc019SAndroid Build Coastguard Worker 
2815*d83cc019SAndroid Build Coastguard Worker #define PIPEA_LINK_M2		0x60048
2816*d83cc019SAndroid Build Coastguard Worker #define  PIPEA_LINK_M2_OFFSET	0
2817*d83cc019SAndroid Build Coastguard Worker #define PIPEA_LINK_N2		0x6004c
2818*d83cc019SAndroid Build Coastguard Worker #define  PIPEA_LINK_N2_OFFSET	0
2819*d83cc019SAndroid Build Coastguard Worker 
2820*d83cc019SAndroid Build Coastguard Worker /* PIPEB timing regs are same start from 0x61000 */
2821*d83cc019SAndroid Build Coastguard Worker 
2822*d83cc019SAndroid Build Coastguard Worker #define PIPEB_DATA_M1		0x61030
2823*d83cc019SAndroid Build Coastguard Worker #define PIPEB_DATA_N1		0x61034
2824*d83cc019SAndroid Build Coastguard Worker 
2825*d83cc019SAndroid Build Coastguard Worker #define PIPEB_DATA_M2		0x61038
2826*d83cc019SAndroid Build Coastguard Worker #define PIPEB_DATA_N2		0x6103c
2827*d83cc019SAndroid Build Coastguard Worker 
2828*d83cc019SAndroid Build Coastguard Worker #define PIPEB_LINK_M1		0x61040
2829*d83cc019SAndroid Build Coastguard Worker #define PIPEB_LINK_N1		0x61044
2830*d83cc019SAndroid Build Coastguard Worker 
2831*d83cc019SAndroid Build Coastguard Worker #define PIPEB_LINK_M2		0x61048
2832*d83cc019SAndroid Build Coastguard Worker #define PIPEB_LINK_N2		0x6104c
2833*d83cc019SAndroid Build Coastguard Worker 
2834*d83cc019SAndroid Build Coastguard Worker /* PIPEC timing regs */
2835*d83cc019SAndroid Build Coastguard Worker 
2836*d83cc019SAndroid Build Coastguard Worker #define PIPEC_DATA_M1		0x62030
2837*d83cc019SAndroid Build Coastguard Worker #define PIPEC_DATA_N1		0x62034
2838*d83cc019SAndroid Build Coastguard Worker 
2839*d83cc019SAndroid Build Coastguard Worker #define PIPEC_DATA_M2		0x62038
2840*d83cc019SAndroid Build Coastguard Worker #define PIPEC_DATA_N2		0x6203c
2841*d83cc019SAndroid Build Coastguard Worker 
2842*d83cc019SAndroid Build Coastguard Worker #define PIPEC_LINK_M1		0x62040
2843*d83cc019SAndroid Build Coastguard Worker #define PIPEC_LINK_N1		0x62044
2844*d83cc019SAndroid Build Coastguard Worker 
2845*d83cc019SAndroid Build Coastguard Worker #define PIPEC_LINK_M2		0x62048
2846*d83cc019SAndroid Build Coastguard Worker #define PIPEC_LINK_N2		0x6204c
2847*d83cc019SAndroid Build Coastguard Worker 
2848*d83cc019SAndroid Build Coastguard Worker #define PIPEEDP_DATA_M1		0x6F030
2849*d83cc019SAndroid Build Coastguard Worker #define PIPEEDP_DATA_N1		0x6F034
2850*d83cc019SAndroid Build Coastguard Worker 
2851*d83cc019SAndroid Build Coastguard Worker #define PIPEEDP_LINK_M1		0x6F040
2852*d83cc019SAndroid Build Coastguard Worker #define PIPEEDP_LINK_N1		0x6F044
2853*d83cc019SAndroid Build Coastguard Worker 
2854*d83cc019SAndroid Build Coastguard Worker /* PIPECONF for pipe A/B addr is same */
2855*d83cc019SAndroid Build Coastguard Worker 
2856*d83cc019SAndroid Build Coastguard Worker /* cusor A is only connected to pipe A,
2857*d83cc019SAndroid Build Coastguard Worker    cursor B is connected to pipe B. Otherwise no change. */
2858*d83cc019SAndroid Build Coastguard Worker 
2859*d83cc019SAndroid Build Coastguard Worker /* Plane A/B, DSPACNTR/DSPBCNTR addr not changed */
2860*d83cc019SAndroid Build Coastguard Worker 
2861*d83cc019SAndroid Build Coastguard Worker /* CPU panel fitter */
2862*d83cc019SAndroid Build Coastguard Worker #define PFA_CTL_1		0x68080
2863*d83cc019SAndroid Build Coastguard Worker #define PFB_CTL_1		0x68880
2864*d83cc019SAndroid Build Coastguard Worker #define PFC_CTL_1		0x69080
2865*d83cc019SAndroid Build Coastguard Worker #define  PF_ENABLE		(1<<31)
2866*d83cc019SAndroid Build Coastguard Worker #define PFA_CTL_2		0x68084
2867*d83cc019SAndroid Build Coastguard Worker #define PFB_CTL_2		0x68884
2868*d83cc019SAndroid Build Coastguard Worker #define PFC_CTL_2		0x69084
2869*d83cc019SAndroid Build Coastguard Worker #define PFA_CTL_3		0x68088
2870*d83cc019SAndroid Build Coastguard Worker #define PFB_CTL_3		0x68888
2871*d83cc019SAndroid Build Coastguard Worker #define PFC_CTL_3		0x69088
2872*d83cc019SAndroid Build Coastguard Worker #define PFA_CTL_4		0x68090
2873*d83cc019SAndroid Build Coastguard Worker #define PFB_CTL_4		0x68890
2874*d83cc019SAndroid Build Coastguard Worker #define PFC_CTL_4		0x69090
2875*d83cc019SAndroid Build Coastguard Worker 
2876*d83cc019SAndroid Build Coastguard Worker #define PFA_WIN_POS		0x68070
2877*d83cc019SAndroid Build Coastguard Worker #define PFB_WIN_POS		0x68870
2878*d83cc019SAndroid Build Coastguard Worker #define PFC_WIN_POS		0x69070
2879*d83cc019SAndroid Build Coastguard Worker #define PFA_WIN_SIZE		0x68074
2880*d83cc019SAndroid Build Coastguard Worker #define PFB_WIN_SIZE		0x68874
2881*d83cc019SAndroid Build Coastguard Worker #define PFC_WIN_SIZE		0x69074
2882*d83cc019SAndroid Build Coastguard Worker 
2883*d83cc019SAndroid Build Coastguard Worker /* legacy palette */
2884*d83cc019SAndroid Build Coastguard Worker #define LGC_PALETTE_A		0x4a000
2885*d83cc019SAndroid Build Coastguard Worker #define LGC_PALETTE_B		0x4a800
2886*d83cc019SAndroid Build Coastguard Worker 
2887*d83cc019SAndroid Build Coastguard Worker /* interrupts */
2888*d83cc019SAndroid Build Coastguard Worker #define DE_MASTER_IRQ_CONTROL	(1 << 31)
2889*d83cc019SAndroid Build Coastguard Worker #define DE_SPRITEB_FLIP_DONE	(1 << 29)
2890*d83cc019SAndroid Build Coastguard Worker #define DE_SPRITEA_FLIP_DONE	(1 << 28)
2891*d83cc019SAndroid Build Coastguard Worker #define DE_PLANEB_FLIP_DONE	(1 << 27)
2892*d83cc019SAndroid Build Coastguard Worker #define DE_PLANEA_FLIP_DONE	(1 << 26)
2893*d83cc019SAndroid Build Coastguard Worker #define DE_PCU_EVENT		(1 << 25)
2894*d83cc019SAndroid Build Coastguard Worker #define DE_GTT_FAULT		(1 << 24)
2895*d83cc019SAndroid Build Coastguard Worker #define DE_POISON		(1 << 23)
2896*d83cc019SAndroid Build Coastguard Worker #define DE_PERFORM_COUNTER	(1 << 22)
2897*d83cc019SAndroid Build Coastguard Worker #define DE_PCH_EVENT		(1 << 21)
2898*d83cc019SAndroid Build Coastguard Worker #define DE_AUX_CHANNEL_A	(1 << 20)
2899*d83cc019SAndroid Build Coastguard Worker #define DE_DP_A_HOTPLUG		(1 << 19)
2900*d83cc019SAndroid Build Coastguard Worker #define DE_GSE			(1 << 18)
2901*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEB_VBLANK		(1 << 15)
2902*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEB_EVEN_FIELD	(1 << 14)
2903*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEB_ODD_FIELD	(1 << 13)
2904*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEB_LINE_COMPARE	(1 << 12)
2905*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEB_VSYNC		(1 << 11)
2906*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEB_FIFO_UNDERRUN	(1 << 8)
2907*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEA_VBLANK		(1 << 7)
2908*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEA_EVEN_FIELD	(1 << 6)
2909*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEA_ODD_FIELD	(1 << 5)
2910*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEA_LINE_COMPARE	(1 << 4)
2911*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEA_VSYNC		(1 << 3)
2912*d83cc019SAndroid Build Coastguard Worker #define DE_PIPEA_FIFO_UNDERRUN	(1 << 0)
2913*d83cc019SAndroid Build Coastguard Worker 
2914*d83cc019SAndroid Build Coastguard Worker #define DEISR	0x44000
2915*d83cc019SAndroid Build Coastguard Worker #define DEIMR	0x44004
2916*d83cc019SAndroid Build Coastguard Worker #define DEIIR	0x44008
2917*d83cc019SAndroid Build Coastguard Worker #define DEIER	0x4400c
2918*d83cc019SAndroid Build Coastguard Worker 
2919*d83cc019SAndroid Build Coastguard Worker #define GEN8_DE_PIPE_ISR(pipe) (0x44400 + 0x10 * (pipe))
2920*d83cc019SAndroid Build Coastguard Worker #define GEN8_DE_PIPE_IMR(pipe) (0x44404 + 0x10 * (pipe))
2921*d83cc019SAndroid Build Coastguard Worker #define GEN8_DE_PIPE_IIR(pipe) (0x44408 + 0x10 * (pipe))
2922*d83cc019SAndroid Build Coastguard Worker #define GEN8_DE_PIPE_IER(pipe) (0x4440c + 0x10 * (pipe))
2923*d83cc019SAndroid Build Coastguard Worker 
2924*d83cc019SAndroid Build Coastguard Worker /* GT interrupt */
2925*d83cc019SAndroid Build Coastguard Worker #define GT_SYNC_STATUS		(1 << 2)
2926*d83cc019SAndroid Build Coastguard Worker #define GT_USER_INTERRUPT	(1 << 0)
2927*d83cc019SAndroid Build Coastguard Worker 
2928*d83cc019SAndroid Build Coastguard Worker #define GTISR	0x44010
2929*d83cc019SAndroid Build Coastguard Worker #define GTIMR	0x44014
2930*d83cc019SAndroid Build Coastguard Worker #define GTIIR	0x44018
2931*d83cc019SAndroid Build Coastguard Worker #define GTIER	0x4401c
2932*d83cc019SAndroid Build Coastguard Worker 
2933*d83cc019SAndroid Build Coastguard Worker /* PCH */
2934*d83cc019SAndroid Build Coastguard Worker 
2935*d83cc019SAndroid Build Coastguard Worker /* south display engine interrupt */
2936*d83cc019SAndroid Build Coastguard Worker #define SDE_CRT_HOTPLUG		(1 << 11)
2937*d83cc019SAndroid Build Coastguard Worker #define SDE_PORTD_HOTPLUG	(1 << 10)
2938*d83cc019SAndroid Build Coastguard Worker #define SDE_PORTC_HOTPLUG	(1 << 9)
2939*d83cc019SAndroid Build Coastguard Worker #define SDE_PORTB_HOTPLUG	(1 << 8)
2940*d83cc019SAndroid Build Coastguard Worker #define SDE_SDVOB_HOTPLUG	(1 << 6)
2941*d83cc019SAndroid Build Coastguard Worker 
2942*d83cc019SAndroid Build Coastguard Worker #define SDEISR	0xc4000
2943*d83cc019SAndroid Build Coastguard Worker #define SDEIMR	0xc4004
2944*d83cc019SAndroid Build Coastguard Worker #define SDEIIR	0xc4008
2945*d83cc019SAndroid Build Coastguard Worker #define SDEIER	0xc400c
2946*d83cc019SAndroid Build Coastguard Worker 
2947*d83cc019SAndroid Build Coastguard Worker /* digital port hotplug */
2948*d83cc019SAndroid Build Coastguard Worker #define PCH_PORT_HOTPLUG	0xc4030
2949*d83cc019SAndroid Build Coastguard Worker #define PORTD_HOTPLUG_ENABLE		(1 << 20)
2950*d83cc019SAndroid Build Coastguard Worker #define PORTD_PULSE_DURATION_2ms	(0)
2951*d83cc019SAndroid Build Coastguard Worker #define PORTD_PULSE_DURATION_4_5ms	(1 << 18)
2952*d83cc019SAndroid Build Coastguard Worker #define PORTD_PULSE_DURATION_6ms	(2 << 18)
2953*d83cc019SAndroid Build Coastguard Worker #define PORTD_PULSE_DURATION_100ms	(3 << 18)
2954*d83cc019SAndroid Build Coastguard Worker #define PORTD_HOTPLUG_NO_DETECT		(0)
2955*d83cc019SAndroid Build Coastguard Worker #define PORTD_HOTPLUG_SHORT_DETECT	(1 << 16)
2956*d83cc019SAndroid Build Coastguard Worker #define PORTD_HOTPLUG_LONG_DETECT	(1 << 17)
2957*d83cc019SAndroid Build Coastguard Worker #define PORTC_HOTPLUG_ENABLE		(1 << 12)
2958*d83cc019SAndroid Build Coastguard Worker #define PORTC_PULSE_DURATION_2ms	(0)
2959*d83cc019SAndroid Build Coastguard Worker #define PORTC_PULSE_DURATION_4_5ms	(1 << 10)
2960*d83cc019SAndroid Build Coastguard Worker #define PORTC_PULSE_DURATION_6ms	(2 << 10)
2961*d83cc019SAndroid Build Coastguard Worker #define PORTC_PULSE_DURATION_100ms	(3 << 10)
2962*d83cc019SAndroid Build Coastguard Worker #define PORTC_HOTPLUG_NO_DETECT		(0)
2963*d83cc019SAndroid Build Coastguard Worker #define PORTC_HOTPLUG_SHORT_DETECT	(1 << 8)
2964*d83cc019SAndroid Build Coastguard Worker #define PORTC_HOTPLUG_LONG_DETECT	(1 << 9)
2965*d83cc019SAndroid Build Coastguard Worker #define PORTB_HOTPLUG_ENABLE		(1 << 4)
2966*d83cc019SAndroid Build Coastguard Worker #define PORTB_PULSE_DURATION_2ms	(0)
2967*d83cc019SAndroid Build Coastguard Worker #define PORTB_PULSE_DURATION_4_5ms	(1 << 2)
2968*d83cc019SAndroid Build Coastguard Worker #define PORTB_PULSE_DURATION_6ms	(2 << 2)
2969*d83cc019SAndroid Build Coastguard Worker #define PORTB_PULSE_DURATION_100ms	(3 << 2)
2970*d83cc019SAndroid Build Coastguard Worker #define PORTB_HOTPLUG_NO_DETECT		(0)
2971*d83cc019SAndroid Build Coastguard Worker #define PORTB_HOTPLUG_SHORT_DETECT	(1 << 0)
2972*d83cc019SAndroid Build Coastguard Worker #define PORTB_HOTPLUG_LONG_DETECT	(1 << 1)
2973*d83cc019SAndroid Build Coastguard Worker 
2974*d83cc019SAndroid Build Coastguard Worker #define PCH_GPIOA		0xc5010
2975*d83cc019SAndroid Build Coastguard Worker #define PCH_GPIOB		0xc5014
2976*d83cc019SAndroid Build Coastguard Worker #define PCH_GPIOC		0xc5018
2977*d83cc019SAndroid Build Coastguard Worker #define PCH_GPIOD		0xc501c
2978*d83cc019SAndroid Build Coastguard Worker #define PCH_GPIOE		0xc5020
2979*d83cc019SAndroid Build Coastguard Worker #define PCH_GPIOF		0xc5024
2980*d83cc019SAndroid Build Coastguard Worker #define PCH_GMBUS0		0xc5100
2981*d83cc019SAndroid Build Coastguard Worker #define PCH_GMBUS1		0xc5104
2982*d83cc019SAndroid Build Coastguard Worker #define PCH_GMBUS2		0xc5108
2983*d83cc019SAndroid Build Coastguard Worker #define PCH_GMBUS3		0xc510c
2984*d83cc019SAndroid Build Coastguard Worker #define PCH_GMBUS4		0xc5110
2985*d83cc019SAndroid Build Coastguard Worker #define PCH_GMBUS5		0xc5120
2986*d83cc019SAndroid Build Coastguard Worker 
2987*d83cc019SAndroid Build Coastguard Worker #define PCH_DPLL_A		0xc6014
2988*d83cc019SAndroid Build Coastguard Worker #define PCH_DPLL_B		0xc6018
2989*d83cc019SAndroid Build Coastguard Worker 
2990*d83cc019SAndroid Build Coastguard Worker #define PCH_FPA0		0xc6040
2991*d83cc019SAndroid Build Coastguard Worker #define PCH_FPA1		0xc6044
2992*d83cc019SAndroid Build Coastguard Worker #define PCH_FPB0		0xc6048
2993*d83cc019SAndroid Build Coastguard Worker #define PCH_FPB1		0xc604c
2994*d83cc019SAndroid Build Coastguard Worker 
2995*d83cc019SAndroid Build Coastguard Worker #define PCH_DPLL_TEST		0xc606c
2996*d83cc019SAndroid Build Coastguard Worker 
2997*d83cc019SAndroid Build Coastguard Worker #define PCH_DREF_CONTROL	0xC6200
2998*d83cc019SAndroid Build Coastguard Worker #define  DREF_CONTROL_MASK	0x7fc3
2999*d83cc019SAndroid Build Coastguard Worker #define  DREF_CPU_SOURCE_OUTPUT_DISABLE		(0<<13)
3000*d83cc019SAndroid Build Coastguard Worker #define  DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD	(2<<13)
3001*d83cc019SAndroid Build Coastguard Worker #define  DREF_CPU_SOURCE_OUTPUT_NONSPREAD	(3<<13)
3002*d83cc019SAndroid Build Coastguard Worker #define  DREF_SSC_SOURCE_DISABLE		(0<<11)
3003*d83cc019SAndroid Build Coastguard Worker #define  DREF_SSC_SOURCE_ENABLE			(2<<11)
3004*d83cc019SAndroid Build Coastguard Worker #define  DREF_NONSPREAD_SOURCE_DISABLE		(0<<9)
3005*d83cc019SAndroid Build Coastguard Worker #define  DREF_NONSPREAD_SOURCE_ENABLE		(2<<9)
3006*d83cc019SAndroid Build Coastguard Worker #define  DREF_SUPERSPREAD_SOURCE_DISABLE	(0<<7)
3007*d83cc019SAndroid Build Coastguard Worker #define  DREF_SUPERSPREAD_SOURCE_ENABLE		(2<<7)
3008*d83cc019SAndroid Build Coastguard Worker #define  DREF_SSC4_DOWNSPREAD			(0<<6)
3009*d83cc019SAndroid Build Coastguard Worker #define  DREF_SSC4_CENTERSPREAD			(1<<6)
3010*d83cc019SAndroid Build Coastguard Worker #define  DREF_SSC1_DISABLE			(0<<1)
3011*d83cc019SAndroid Build Coastguard Worker #define  DREF_SSC1_ENABLE			(1<<1)
3012*d83cc019SAndroid Build Coastguard Worker #define  DREF_SSC4_DISABLE			(0)
3013*d83cc019SAndroid Build Coastguard Worker #define  DREF_SSC4_ENABLE			(1)
3014*d83cc019SAndroid Build Coastguard Worker 
3015*d83cc019SAndroid Build Coastguard Worker #define PCH_RAWCLK_FREQ		0xc6204
3016*d83cc019SAndroid Build Coastguard Worker #define  FDL_TP1_TIMER_SHIFT	12
3017*d83cc019SAndroid Build Coastguard Worker #define  FDL_TP1_TIMER_MASK	(3<<12)
3018*d83cc019SAndroid Build Coastguard Worker #define  FDL_TP2_TIMER_SHIFT	10
3019*d83cc019SAndroid Build Coastguard Worker #define  FDL_TP2_TIMER_MASK	(3<<10)
3020*d83cc019SAndroid Build Coastguard Worker #define  RAWCLK_FREQ_MASK	0x3ff
3021*d83cc019SAndroid Build Coastguard Worker 
3022*d83cc019SAndroid Build Coastguard Worker #define PCH_DPLL_TMR_CFG	0xc6208
3023*d83cc019SAndroid Build Coastguard Worker 
3024*d83cc019SAndroid Build Coastguard Worker #define PCH_SSC4_PARMS		0xc6210
3025*d83cc019SAndroid Build Coastguard Worker #define PCH_SSC4_AUX_PARMS	0xc6214
3026*d83cc019SAndroid Build Coastguard Worker 
3027*d83cc019SAndroid Build Coastguard Worker /* CPT */
3028*d83cc019SAndroid Build Coastguard Worker #define PCH_DPLL_ANALOG_CTL	0xc6300
3029*d83cc019SAndroid Build Coastguard Worker 
3030*d83cc019SAndroid Build Coastguard Worker #define PCH_DPLL_SEL            0xc7000
3031*d83cc019SAndroid Build Coastguard Worker #define  TRANSA_DPLL_ENABLE     (1<<3)
3032*d83cc019SAndroid Build Coastguard Worker #define  TRANSA_DPLLA_SEL	(0)
3033*d83cc019SAndroid Build Coastguard Worker #define  TRANSA_DPLLB_SEL	(1<<0)
3034*d83cc019SAndroid Build Coastguard Worker #define  TRANSB_DPLL_ENABLE     (1<<7)
3035*d83cc019SAndroid Build Coastguard Worker #define  TRANSB_DPLLA_SEL	(0<<4)
3036*d83cc019SAndroid Build Coastguard Worker #define  TRANSB_DPLLB_SEL	(1<<4)
3037*d83cc019SAndroid Build Coastguard Worker #define  TRANSC_DPLL_ENABLE     (1<<11)
3038*d83cc019SAndroid Build Coastguard Worker #define  TRANSC_DPLLA_SEL	(0<<8)
3039*d83cc019SAndroid Build Coastguard Worker #define  TRANSC_DPLLB_SEL	(1<<8)
3040*d83cc019SAndroid Build Coastguard Worker 
3041*d83cc019SAndroid Build Coastguard Worker /* transcoder */
3042*d83cc019SAndroid Build Coastguard Worker 
3043*d83cc019SAndroid Build Coastguard Worker #define TRANS_HTOTAL_A		0xe0000
3044*d83cc019SAndroid Build Coastguard Worker #define  TRANS_HTOTAL_SHIFT	16
3045*d83cc019SAndroid Build Coastguard Worker #define  TRANS_HACTIVE_SHIFT	0
3046*d83cc019SAndroid Build Coastguard Worker #define TRANS_HBLANK_A		0xe0004
3047*d83cc019SAndroid Build Coastguard Worker #define  TRANS_HBLANK_END_SHIFT	16
3048*d83cc019SAndroid Build Coastguard Worker #define  TRANS_HBLANK_START_SHIFT 0
3049*d83cc019SAndroid Build Coastguard Worker #define TRANS_HSYNC_A		0xe0008
3050*d83cc019SAndroid Build Coastguard Worker #define  TRANS_HSYNC_END_SHIFT	16
3051*d83cc019SAndroid Build Coastguard Worker #define  TRANS_HSYNC_START_SHIFT 0
3052*d83cc019SAndroid Build Coastguard Worker #define TRANS_VTOTAL_A		0xe000c
3053*d83cc019SAndroid Build Coastguard Worker #define  TRANS_VTOTAL_SHIFT	16
3054*d83cc019SAndroid Build Coastguard Worker #define  TRANS_VACTIVE_SHIFT	0
3055*d83cc019SAndroid Build Coastguard Worker #define TRANS_VBLANK_A		0xe0010
3056*d83cc019SAndroid Build Coastguard Worker #define  TRANS_VBLANK_END_SHIFT	16
3057*d83cc019SAndroid Build Coastguard Worker #define  TRANS_VBLANK_START_SHIFT 0
3058*d83cc019SAndroid Build Coastguard Worker #define TRANS_VSYNC_A		0xe0014
3059*d83cc019SAndroid Build Coastguard Worker #define  TRANS_VSYNC_END_SHIFT	16
3060*d83cc019SAndroid Build Coastguard Worker #define  TRANS_VSYNC_START_SHIFT 0
3061*d83cc019SAndroid Build Coastguard Worker #define TRANS_VSYNCSHIFT_A	0xe0028
3062*d83cc019SAndroid Build Coastguard Worker 
3063*d83cc019SAndroid Build Coastguard Worker #define TRANSA_DATA_M1		0xe0030
3064*d83cc019SAndroid Build Coastguard Worker #define TRANSA_DATA_N1		0xe0034
3065*d83cc019SAndroid Build Coastguard Worker #define TRANSA_DATA_M2		0xe0038
3066*d83cc019SAndroid Build Coastguard Worker #define TRANSA_DATA_N2		0xe003c
3067*d83cc019SAndroid Build Coastguard Worker #define TRANSA_DP_LINK_M1	0xe0040
3068*d83cc019SAndroid Build Coastguard Worker #define TRANSA_DP_LINK_N1	0xe0044
3069*d83cc019SAndroid Build Coastguard Worker #define TRANSA_DP_LINK_M2	0xe0048
3070*d83cc019SAndroid Build Coastguard Worker #define TRANSA_DP_LINK_N2	0xe004c
3071*d83cc019SAndroid Build Coastguard Worker 
3072*d83cc019SAndroid Build Coastguard Worker #define TRANS_HTOTAL_B		0xe1000
3073*d83cc019SAndroid Build Coastguard Worker #define TRANS_HBLANK_B		0xe1004
3074*d83cc019SAndroid Build Coastguard Worker #define TRANS_HSYNC_B		0xe1008
3075*d83cc019SAndroid Build Coastguard Worker #define TRANS_VTOTAL_B		0xe100c
3076*d83cc019SAndroid Build Coastguard Worker #define TRANS_VBLANK_B		0xe1010
3077*d83cc019SAndroid Build Coastguard Worker #define TRANS_VSYNC_B		0xe1014
3078*d83cc019SAndroid Build Coastguard Worker #define TRANS_VSYNCSHIFT_B	0xe1028
3079*d83cc019SAndroid Build Coastguard Worker 
3080*d83cc019SAndroid Build Coastguard Worker #define TRANSB_DATA_M1		0xe1030
3081*d83cc019SAndroid Build Coastguard Worker #define TRANSB_DATA_N1		0xe1034
3082*d83cc019SAndroid Build Coastguard Worker #define TRANSB_DATA_M2		0xe1038
3083*d83cc019SAndroid Build Coastguard Worker #define TRANSB_DATA_N2		0xe103c
3084*d83cc019SAndroid Build Coastguard Worker #define TRANSB_DP_LINK_M1	0xe1040
3085*d83cc019SAndroid Build Coastguard Worker #define TRANSB_DP_LINK_N1	0xe1044
3086*d83cc019SAndroid Build Coastguard Worker #define TRANSB_DP_LINK_M2	0xe1048
3087*d83cc019SAndroid Build Coastguard Worker #define TRANSB_DP_LINK_N2	0xe104c
3088*d83cc019SAndroid Build Coastguard Worker 
3089*d83cc019SAndroid Build Coastguard Worker #define TRANS_HTOTAL_C		0xe2000
3090*d83cc019SAndroid Build Coastguard Worker #define TRANS_HBLANK_C		0xe2004
3091*d83cc019SAndroid Build Coastguard Worker #define TRANS_HSYNC_C		0xe2008
3092*d83cc019SAndroid Build Coastguard Worker #define TRANS_VTOTAL_C		0xe200c
3093*d83cc019SAndroid Build Coastguard Worker #define TRANS_VBLANK_C		0xe2010
3094*d83cc019SAndroid Build Coastguard Worker #define TRANS_VSYNC_C		0xe2014
3095*d83cc019SAndroid Build Coastguard Worker #define TRANS_VSYNCSHIFT_C	0xe2028
3096*d83cc019SAndroid Build Coastguard Worker 
3097*d83cc019SAndroid Build Coastguard Worker #define TRANSC_DATA_M1		0xe2030
3098*d83cc019SAndroid Build Coastguard Worker #define TRANSC_DATA_N1		0xe2034
3099*d83cc019SAndroid Build Coastguard Worker #define TRANSC_DATA_M2		0xe2038
3100*d83cc019SAndroid Build Coastguard Worker #define TRANSC_DATA_N2		0xe203c
3101*d83cc019SAndroid Build Coastguard Worker #define TRANSC_DP_LINK_M1	0xe2040
3102*d83cc019SAndroid Build Coastguard Worker #define TRANSC_DP_LINK_N1	0xe2044
3103*d83cc019SAndroid Build Coastguard Worker #define TRANSC_DP_LINK_M2	0xe2048
3104*d83cc019SAndroid Build Coastguard Worker #define TRANSC_DP_LINK_N2	0xe204c
3105*d83cc019SAndroid Build Coastguard Worker 
3106*d83cc019SAndroid Build Coastguard Worker #define DP_BUFTRANS(x)		(0xe4f00 + 4 * (x))
3107*d83cc019SAndroid Build Coastguard Worker 
3108*d83cc019SAndroid Build Coastguard Worker #define TRANSACONF		0xf0008
3109*d83cc019SAndroid Build Coastguard Worker #define TRANSBCONF		0xf1008
3110*d83cc019SAndroid Build Coastguard Worker #define TRANSCCONF		0xf2008
3111*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DISABLE		(0<<31)
3112*d83cc019SAndroid Build Coastguard Worker #define  TRANS_ENABLE		(1<<31)
3113*d83cc019SAndroid Build Coastguard Worker #define  TRANS_STATE_MASK	(1<<30)
3114*d83cc019SAndroid Build Coastguard Worker #define  TRANS_STATE_DISABLE	(0<<30)
3115*d83cc019SAndroid Build Coastguard Worker #define  TRANS_STATE_ENABLE	(1<<30)
3116*d83cc019SAndroid Build Coastguard Worker #define  TRANS_FSYNC_DELAY_HB1	(0<<27)
3117*d83cc019SAndroid Build Coastguard Worker #define  TRANS_FSYNC_DELAY_HB2	(1<<27)
3118*d83cc019SAndroid Build Coastguard Worker #define  TRANS_FSYNC_DELAY_HB3	(2<<27)
3119*d83cc019SAndroid Build Coastguard Worker #define  TRANS_FSYNC_DELAY_HB4	(3<<27)
3120*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_AUDIO_ONLY	(1<<26)
3121*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_VIDEO_AUDIO	(0<<26)
3122*d83cc019SAndroid Build Coastguard Worker #define  TRANS_PROGRESSIVE	(0<<21)
3123*d83cc019SAndroid Build Coastguard Worker #define  TRANS_8BPC		(0<<5)
3124*d83cc019SAndroid Build Coastguard Worker #define  TRANS_10BPC		(1<<5)
3125*d83cc019SAndroid Build Coastguard Worker #define  TRANS_6BPC		(2<<5)
3126*d83cc019SAndroid Build Coastguard Worker #define  TRANS_12BPC		(3<<5)
3127*d83cc019SAndroid Build Coastguard Worker 
3128*d83cc019SAndroid Build Coastguard Worker #define FDI_RXA_CHICKEN		0xc200c
3129*d83cc019SAndroid Build Coastguard Worker #define FDI_RXB_CHICKEN		0xc2010
3130*d83cc019SAndroid Build Coastguard Worker #define  FDI_RX_PHASE_SYNC_POINTER_ENABLE	(1)
3131*d83cc019SAndroid Build Coastguard Worker 
3132*d83cc019SAndroid Build Coastguard Worker /* CPU: FDI_TX */
3133*d83cc019SAndroid Build Coastguard Worker #define FDI_TXA_CTL		0x60100
3134*d83cc019SAndroid Build Coastguard Worker #define FDI_TXB_CTL		0x61100
3135*d83cc019SAndroid Build Coastguard Worker #define FDI_TXC_CTL		0x62100
3136*d83cc019SAndroid Build Coastguard Worker #define  FDI_TX_DISABLE		(0<<31)
3137*d83cc019SAndroid Build Coastguard Worker #define  FDI_TX_ENABLE		(1<<31)
3138*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PATTERN_1	(0<<28)
3139*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PATTERN_2	(1<<28)
3140*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PATTERN_IDLE	(2<<28)
3141*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_NONE		(3<<28)
3142*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_VOLTAGE_0_4V	(0<<25)
3143*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_VOLTAGE_0_6V	(1<<25)
3144*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_VOLTAGE_0_8V	(2<<25)
3145*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_VOLTAGE_1_2V	(3<<25)
3146*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PRE_EMPHASIS_NONE (0<<22)
3147*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PRE_EMPHASIS_1_5X (1<<22)
3148*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PRE_EMPHASIS_2X	  (2<<22)
3149*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PRE_EMPHASIS_3X	  (3<<22)
3150*d83cc019SAndroid Build Coastguard Worker /* ILK always use 400mV 0dB for voltage swing and pre-emphasis level.
3151*d83cc019SAndroid Build Coastguard Worker    SNB has different settings. */
3152*d83cc019SAndroid Build Coastguard Worker /* SNB A-stepping */
3153*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_400MV_0DB_SNB_A		(0x38<<22)
3154*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_400MV_6DB_SNB_A		(0x02<<22)
3155*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_600MV_3_5DB_SNB_A	(0x01<<22)
3156*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_800MV_0DB_SNB_A		(0x0<<22)
3157*d83cc019SAndroid Build Coastguard Worker /* SNB B-stepping */
3158*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_400MV_0DB_SNB_B		(0x0<<22)
3159*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_400MV_6DB_SNB_B		(0x3a<<22)
3160*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_600MV_3_5DB_SNB_B	(0x39<<22)
3161*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_800MV_0DB_SNB_B		(0x38<<22)
3162*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_VOL_EMP_MASK		(0x3f<<22)
3163*d83cc019SAndroid Build Coastguard Worker #define  FDI_DP_PORT_WIDTH_X1		(0<<19)
3164*d83cc019SAndroid Build Coastguard Worker #define  FDI_DP_PORT_WIDTH_X2		(1<<19)
3165*d83cc019SAndroid Build Coastguard Worker #define  FDI_DP_PORT_WIDTH_X3		(2<<19)
3166*d83cc019SAndroid Build Coastguard Worker #define  FDI_DP_PORT_WIDTH_X4		(3<<19)
3167*d83cc019SAndroid Build Coastguard Worker #define  FDI_TX_ENHANCE_FRAME_ENABLE	(1<<18)
3168*d83cc019SAndroid Build Coastguard Worker /* Ironlake: hardwired to 1 */
3169*d83cc019SAndroid Build Coastguard Worker #define  FDI_TX_PLL_ENABLE		(1<<14)
3170*d83cc019SAndroid Build Coastguard Worker /* both Tx and Rx */
3171*d83cc019SAndroid Build Coastguard Worker #define  FDI_SCRAMBLING_ENABLE		(0<<7)
3172*d83cc019SAndroid Build Coastguard Worker #define  FDI_SCRAMBLING_DISABLE		(1<<7)
3173*d83cc019SAndroid Build Coastguard Worker 
3174*d83cc019SAndroid Build Coastguard Worker /* Additional cpu TX control regs, from ivb bspec */
3175*d83cc019SAndroid Build Coastguard Worker #define DPAFE_BMFUNC		0x6c024
3176*d83cc019SAndroid Build Coastguard Worker #define DPAFE_DL_IREFCAL0	0x6c02c
3177*d83cc019SAndroid Build Coastguard Worker #define DPAFE_DL_IREFCAL1	0x6c030
3178*d83cc019SAndroid Build Coastguard Worker #define DPAFE_DP_IREFCAL	0x6c034
3179*d83cc019SAndroid Build Coastguard Worker 
3180*d83cc019SAndroid Build Coastguard Worker /* FDI_RX, FDI_X is hard-wired to Transcoder_X */
3181*d83cc019SAndroid Build Coastguard Worker #define FDI_RXA_CTL		0xf000c
3182*d83cc019SAndroid Build Coastguard Worker #define FDI_RXB_CTL		0xf100c
3183*d83cc019SAndroid Build Coastguard Worker #define FDI_RXC_CTL		0xf200c
3184*d83cc019SAndroid Build Coastguard Worker #define  FDI_RX_ENABLE		(1<<31)
3185*d83cc019SAndroid Build Coastguard Worker #define  FDI_RX_DISABLE		(0<<31)
3186*d83cc019SAndroid Build Coastguard Worker /* train, dp width same as FDI_TX */
3187*d83cc019SAndroid Build Coastguard Worker #define  FDI_DP_PORT_WIDTH_X8		(7<<19)
3188*d83cc019SAndroid Build Coastguard Worker #define  FDI_8BPC			(0<<16)
3189*d83cc019SAndroid Build Coastguard Worker #define  FDI_10BPC			(1<<16)
3190*d83cc019SAndroid Build Coastguard Worker #define  FDI_6BPC			(2<<16)
3191*d83cc019SAndroid Build Coastguard Worker #define  FDI_12BPC			(3<<16)
3192*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_REVERSE_OVERWRITE	(1<<15)
3193*d83cc019SAndroid Build Coastguard Worker #define  FDI_DMI_LINK_REVERSE_MASK	(1<<14)
3194*d83cc019SAndroid Build Coastguard Worker #define  FDI_RX_PLL_ENABLE		(1<<13)
3195*d83cc019SAndroid Build Coastguard Worker #define  FDI_FS_ERR_CORRECT_ENABLE	(1<<11)
3196*d83cc019SAndroid Build Coastguard Worker #define  FDI_FE_ERR_CORRECT_ENABLE	(1<<10)
3197*d83cc019SAndroid Build Coastguard Worker #define  FDI_FS_ERR_REPORT_ENABLE	(1<<9)
3198*d83cc019SAndroid Build Coastguard Worker #define  FDI_FE_ERR_REPORT_ENABLE	(1<<8)
3199*d83cc019SAndroid Build Coastguard Worker #define  FDI_RX_ENHANCE_FRAME_ENABLE	(1<<6)
3200*d83cc019SAndroid Build Coastguard Worker #define  FDI_SEL_RAWCLK			(0<<4)
3201*d83cc019SAndroid Build Coastguard Worker #define  FDI_SEL_PCDCLK			(1<<4)
3202*d83cc019SAndroid Build Coastguard Worker /* CPT */
3203*d83cc019SAndroid Build Coastguard Worker #define  FDI_AUTO_TRAINING			(1<<10)
3204*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PATTERN_1_CPT		(0<<8)
3205*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PATTERN_2_CPT		(1<<8)
3206*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PATTERN_IDLE_CPT	(2<<8)
3207*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_NORMAL_CPT		(3<<8)
3208*d83cc019SAndroid Build Coastguard Worker #define  FDI_LINK_TRAIN_PATTERN_MASK_CPT	(3<<8)
3209*d83cc019SAndroid Build Coastguard Worker 
3210*d83cc019SAndroid Build Coastguard Worker #define FDI_RXA_MISC		0xf0010
3211*d83cc019SAndroid Build Coastguard Worker #define FDI_RXB_MISC		0xf1010
3212*d83cc019SAndroid Build Coastguard Worker #define FDI_RXC_MISC		0xf2010
3213*d83cc019SAndroid Build Coastguard Worker #define FDI_RXA_TUSIZE1		0xf0030
3214*d83cc019SAndroid Build Coastguard Worker #define FDI_RXA_TUSIZE2		0xf0038
3215*d83cc019SAndroid Build Coastguard Worker #define FDI_RXB_TUSIZE1		0xf1030
3216*d83cc019SAndroid Build Coastguard Worker #define FDI_RXB_TUSIZE2		0xf1038
3217*d83cc019SAndroid Build Coastguard Worker #define FDI_RXC_TUSIZE1		0xf2030
3218*d83cc019SAndroid Build Coastguard Worker #define FDI_RXC_TUSIZE2		0xf2038
3219*d83cc019SAndroid Build Coastguard Worker 
3220*d83cc019SAndroid Build Coastguard Worker /* FDI_RX interrupt register format */
3221*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_INTER_LANE_ALIGN		(1<<10)
3222*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_SYMBOL_LOCK		(1<<9) /* train 2 */
3223*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_BIT_LOCK			(1<<8) /* train 1 */
3224*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_TRAIN_PATTERN_2_FAIL	(1<<7)
3225*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_FS_CODE_ERR		(1<<6)
3226*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_FE_CODE_ERR		(1<<5)
3227*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_SYMBOL_ERR_RATE_ABOVE	(1<<4)
3228*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_HDCP_LINK_FAIL		(1<<3)
3229*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_PIXEL_FIFO_OVERFLOW	(1<<2)
3230*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_CROSS_CLOCK_OVERFLOW	(1<<1)
3231*d83cc019SAndroid Build Coastguard Worker #define FDI_RX_SYMBOL_QUEUE_OVERFLOW	(1<<0)
3232*d83cc019SAndroid Build Coastguard Worker 
3233*d83cc019SAndroid Build Coastguard Worker #define FDI_RXA_IIR		0xf0014
3234*d83cc019SAndroid Build Coastguard Worker #define FDI_RXA_IMR		0xf0018
3235*d83cc019SAndroid Build Coastguard Worker #define FDI_RXB_IIR		0xf1014
3236*d83cc019SAndroid Build Coastguard Worker #define FDI_RXB_IMR		0xf1018
3237*d83cc019SAndroid Build Coastguard Worker 
3238*d83cc019SAndroid Build Coastguard Worker #define FDI_PLL_CTL_1		0xfe000
3239*d83cc019SAndroid Build Coastguard Worker #define FDI_PLL_CTL_2		0xfe004
3240*d83cc019SAndroid Build Coastguard Worker 
3241*d83cc019SAndroid Build Coastguard Worker /* CRT */
3242*d83cc019SAndroid Build Coastguard Worker #define PCH_ADPA		0xe1100
3243*d83cc019SAndroid Build Coastguard Worker #define  ADPA_TRANS_SELECT_MASK	(1<<30)
3244*d83cc019SAndroid Build Coastguard Worker #define  ADPA_TRANS_A_SELECT	0
3245*d83cc019SAndroid Build Coastguard Worker #define  ADPA_TRANS_B_SELECT	(1<<30)
3246*d83cc019SAndroid Build Coastguard Worker /* HPD is here */
3247*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_MASK	0x03ff0000 /* bit 25-16 */
3248*d83cc019SAndroid Build Coastguard Worker #define	 ADPA_CRT_HOTPLUG_MONITOR_NONE	(0<<24)
3249*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_MONITOR_MASK	(3<<24)
3250*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_MONITOR_COLOR	(3<<24)
3251*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_MONITOR_MONO	(2<<24)
3252*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_ENABLE	(1<<23)
3253*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_PERIOD_64	(0<<22)
3254*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_PERIOD_128	(1<<22)
3255*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_WARMUP_5MS	(0<<21)
3256*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_WARMUP_10MS	(1<<21)
3257*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_SAMPLE_2S	(0<<20)
3258*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_SAMPLE_4S	(1<<20)
3259*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_VOLTAGE_40	(0<<18)
3260*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_VOLTAGE_50	(1<<18)
3261*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_VOLTAGE_60	(2<<18)
3262*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_VOLTAGE_70	(3<<18)
3263*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_VOLREF_325MV	(0<<17)
3264*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_VOLREF_475MV	(1<<17)
3265*d83cc019SAndroid Build Coastguard Worker #define  ADPA_CRT_HOTPLUG_FORCE_TRIGGER	(1<<16)
3266*d83cc019SAndroid Build Coastguard Worker /* polarity control not changed */
3267*d83cc019SAndroid Build Coastguard Worker 
3268*d83cc019SAndroid Build Coastguard Worker /* or SDVOB */
3269*d83cc019SAndroid Build Coastguard Worker #define HDMIB	0xe1140
3270*d83cc019SAndroid Build Coastguard Worker #define  PORT_ENABLE	(1 << 31)
3271*d83cc019SAndroid Build Coastguard Worker #define  TRANSCODER_A	(0)
3272*d83cc019SAndroid Build Coastguard Worker #define  TRANSCODER_B	(1 << 30)
3273*d83cc019SAndroid Build Coastguard Worker #define  COLOR_FORMAT_8bpc	(0)
3274*d83cc019SAndroid Build Coastguard Worker #define  COLOR_FORMAT_12bpc	(3 << 26)
3275*d83cc019SAndroid Build Coastguard Worker #define  SDVOB_HOTPLUG_ENABLE	(1 << 23)
3276*d83cc019SAndroid Build Coastguard Worker #define  SDVO_ENCODING		(0)
3277*d83cc019SAndroid Build Coastguard Worker #define  TMDS_ENCODING		(2 << 10)
3278*d83cc019SAndroid Build Coastguard Worker #define  NULL_PACKET_VSYNC_ENABLE	(1 << 9)
3279*d83cc019SAndroid Build Coastguard Worker #define  SDVOB_BORDER_ENABLE	(1 << 7)
3280*d83cc019SAndroid Build Coastguard Worker #define  AUDIO_ENABLE		(1 << 6)
3281*d83cc019SAndroid Build Coastguard Worker #define  VSYNC_ACTIVE_HIGH	(1 << 4)
3282*d83cc019SAndroid Build Coastguard Worker #define  HSYNC_ACTIVE_HIGH	(1 << 3)
3283*d83cc019SAndroid Build Coastguard Worker #define  PORT_DETECTED		(1 << 2)
3284*d83cc019SAndroid Build Coastguard Worker 
3285*d83cc019SAndroid Build Coastguard Worker #define HDMIC	0xe1150
3286*d83cc019SAndroid Build Coastguard Worker #define HDMID	0xe1160
3287*d83cc019SAndroid Build Coastguard Worker #define PCH_LVDS		0xe1180
3288*d83cc019SAndroid Build Coastguard Worker 
3289*d83cc019SAndroid Build Coastguard Worker /* Since IVB, the old _CTL2 is now _CTL and the old _CTL is now _DATA. */
3290*d83cc019SAndroid Build Coastguard Worker #define BLC_PWM_CPU_CTL2        0x48250
3291*d83cc019SAndroid Build Coastguard Worker #define BLC_PWM2_CPU_CTL2       0x48350
3292*d83cc019SAndroid Build Coastguard Worker #define  PWM_ENABLE             (1 << 31)
3293*d83cc019SAndroid Build Coastguard Worker #define  PWM_PIPE_A             (0 << 29)
3294*d83cc019SAndroid Build Coastguard Worker #define  PWM_PIPE_B             (1 << 29)
3295*d83cc019SAndroid Build Coastguard Worker #define BLC_PWM_CPU_CTL         0x48254
3296*d83cc019SAndroid Build Coastguard Worker #define BLC_PWM2_CPU_CTL        0x48354
3297*d83cc019SAndroid Build Coastguard Worker #define BLC_MISC_CTL            0x48360
3298*d83cc019SAndroid Build Coastguard Worker 
3299*d83cc019SAndroid Build Coastguard Worker #define UTIL_PIN_CTL            0x48400
3300*d83cc019SAndroid Build Coastguard Worker 
3301*d83cc019SAndroid Build Coastguard Worker #define BLC_PWM_PCH_CTL1        0xc8250
3302*d83cc019SAndroid Build Coastguard Worker #define  PWM_PCH_ENABLE         (1 << 31)
3303*d83cc019SAndroid Build Coastguard Worker #define  PWM_POLARITY_ACTIVE_LOW        (1 << 29)
3304*d83cc019SAndroid Build Coastguard Worker #define  PWM_POLARITY_ACTIVE_HIGH       (0 << 29)
3305*d83cc019SAndroid Build Coastguard Worker #define  PWM_POLARITY_ACTIVE_LOW2       (1 << 28)
3306*d83cc019SAndroid Build Coastguard Worker #define  PWM_POLARITY_ACTIVE_HIGH2      (0 << 28)
3307*d83cc019SAndroid Build Coastguard Worker 
3308*d83cc019SAndroid Build Coastguard Worker #define BLC_PWM_PCH_CTL2        0xc8254
3309*d83cc019SAndroid Build Coastguard Worker 
3310*d83cc019SAndroid Build Coastguard Worker #define PCH_PP_STATUS           0xc7200
3311*d83cc019SAndroid Build Coastguard Worker #define PCH_PP_CONTROL          0xc7204
3312*d83cc019SAndroid Build Coastguard Worker #define  EDP_FORCE_VDD          (1 << 3)
3313*d83cc019SAndroid Build Coastguard Worker #define  EDP_BLC_ENABLE         (1 << 2)
3314*d83cc019SAndroid Build Coastguard Worker #define  PANEL_POWER_RESET      (1 << 1)
3315*d83cc019SAndroid Build Coastguard Worker #define  PANEL_POWER_OFF        (0 << 0)
3316*d83cc019SAndroid Build Coastguard Worker #define  PANEL_POWER_ON         (1 << 0)
3317*d83cc019SAndroid Build Coastguard Worker #define PCH_PP_ON_DELAYS        0xc7208
3318*d83cc019SAndroid Build Coastguard Worker #define  EDP_PANEL              (1 << 30)
3319*d83cc019SAndroid Build Coastguard Worker #define PCH_PP_OFF_DELAYS       0xc720c
3320*d83cc019SAndroid Build Coastguard Worker #define PCH_PP_DIVISOR          0xc7210
3321*d83cc019SAndroid Build Coastguard Worker 
3322*d83cc019SAndroid Build Coastguard Worker #define AUD_CONFIG              0x62000
3323*d83cc019SAndroid Build Coastguard Worker #define AUD_DEBUG               0x62010
3324*d83cc019SAndroid Build Coastguard Worker #define AUD_VID_DID             0x62020
3325*d83cc019SAndroid Build Coastguard Worker #define AUD_RID                 0x62024
3326*d83cc019SAndroid Build Coastguard Worker #define AUD_SUBN_CNT            0x62028
3327*d83cc019SAndroid Build Coastguard Worker #define AUD_FUNC_GRP            0x62040
3328*d83cc019SAndroid Build Coastguard Worker #define AUD_SUBN_CNT2           0x62044
3329*d83cc019SAndroid Build Coastguard Worker #define AUD_GRP_CAP             0x62048
3330*d83cc019SAndroid Build Coastguard Worker #define AUD_PWRST               0x6204c
3331*d83cc019SAndroid Build Coastguard Worker #define AUD_SUPPWR              0x62050
3332*d83cc019SAndroid Build Coastguard Worker #define AUD_SID                 0x62054
3333*d83cc019SAndroid Build Coastguard Worker #define AUD_OUT_CWCAP           0x62070
3334*d83cc019SAndroid Build Coastguard Worker #define AUD_OUT_PCMSIZE         0x62074
3335*d83cc019SAndroid Build Coastguard Worker #define AUD_OUT_STR             0x62078
3336*d83cc019SAndroid Build Coastguard Worker #define AUD_OUT_DIG_CNVT        0x6207c
3337*d83cc019SAndroid Build Coastguard Worker #define AUD_OUT_CH_STR          0x62080
3338*d83cc019SAndroid Build Coastguard Worker #define AUD_OUT_STR_DESC        0x62084
3339*d83cc019SAndroid Build Coastguard Worker #define AUD_PINW_CAP            0x620a0
3340*d83cc019SAndroid Build Coastguard Worker #define AUD_PIN_CAP             0x620a4
3341*d83cc019SAndroid Build Coastguard Worker #define AUD_PINW_CONNLNG        0x620a8
3342*d83cc019SAndroid Build Coastguard Worker #define AUD_PINW_CONNLST        0x620ac
3343*d83cc019SAndroid Build Coastguard Worker #define AUD_PINW_CNTR           0x620b0
3344*d83cc019SAndroid Build Coastguard Worker #define AUD_PINW_UNSOLRESP      0x620b8
3345*d83cc019SAndroid Build Coastguard Worker #define AUD_CNTL_ST             0x620b4
3346*d83cc019SAndroid Build Coastguard Worker #define AUD_PINW_CONFIG         0x620bc
3347*d83cc019SAndroid Build Coastguard Worker #define AUD_HDMIW_STATUS        0x620d4
3348*d83cc019SAndroid Build Coastguard Worker #define AUD_HDMIW_HDMIEDID      0x6210c
3349*d83cc019SAndroid Build Coastguard Worker #define AUD_HDMIW_INFOFR        0x62118
3350*d83cc019SAndroid Build Coastguard Worker #define AUD_CONV_CHCNT          0x62120
3351*d83cc019SAndroid Build Coastguard Worker #define AUD_CTS_ENABLE          0x62128
3352*d83cc019SAndroid Build Coastguard Worker 
3353*d83cc019SAndroid Build Coastguard Worker #define VIDEO_DIP_CTL           0x61170
3354*d83cc019SAndroid Build Coastguard Worker #define VIDEO_DIP_DATA          0x61178
3355*d83cc019SAndroid Build Coastguard Worker 
3356*d83cc019SAndroid Build Coastguard Worker /* CPT */
3357*d83cc019SAndroid Build Coastguard Worker #define TRANS_DP_CTL_A		0xe0300
3358*d83cc019SAndroid Build Coastguard Worker #define TRANS_DP_CTL_B		0xe1300
3359*d83cc019SAndroid Build Coastguard Worker #define TRANS_DP_CTL_C		0xe2300
3360*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_OUTPUT_ENABLE (1<<31)
3361*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_PORT_SEL_B    (0<<29)
3362*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_PORT_SEL_C    (1<<29)
3363*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_PORT_SEL_D    (2<<29)
3364*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_PORT_SEL_MASK (3<<29)
3365*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_AUDIO_ONLY    (1<<26)
3366*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_ENH_FRAMING   (1<<18)
3367*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_8BPC          (0<<9)
3368*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_10BPC         (1<<9)
3369*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_6BPC          (2<<9)
3370*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_12BPC         (3<<9)
3371*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_VSYNC_ACTIVE_HIGH     (1<<4)
3372*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_VSYNC_ACTIVE_LOW      0
3373*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_HSYNC_ACTIVE_HIGH     (1<<3)
3374*d83cc019SAndroid Build Coastguard Worker #define  TRANS_DP_HSYNC_ACTIVE_LOW      0
3375*d83cc019SAndroid Build Coastguard Worker 
3376*d83cc019SAndroid Build Coastguard Worker /* Debug regs */
3377*d83cc019SAndroid Build Coastguard Worker #define GEN6_TD_CTL		0x7000 /* <= GEN5 was at 0x8000 */
3378*d83cc019SAndroid Build Coastguard Worker #define GEN6_TD_CTL_FORCE_TD_BKPT (1<<4)
3379*d83cc019SAndroid Build Coastguard Worker 
3380*d83cc019SAndroid Build Coastguard Worker /* Port debugging
3381*d83cc019SAndroid Build Coastguard Worker  */
3382*d83cc019SAndroid Build Coastguard Worker 
3383*d83cc019SAndroid Build Coastguard Worker #define PORT_DBG                    0x42308
3384*d83cc019SAndroid Build Coastguard Worker #define  PORT_DBG_DRRS_HW_STATE_OFF     (0<<30)
3385*d83cc019SAndroid Build Coastguard Worker #define  PORT_DBG_DRRS_HW_STATE_LOW     (1<<30)
3386*d83cc019SAndroid Build Coastguard Worker #define  PORT_DBG_DRRS_HW_STATE_HIGH    (2U<<30)
3387*d83cc019SAndroid Build Coastguard Worker 
3388*d83cc019SAndroid Build Coastguard Worker /* RC6 residence counters
3389*d83cc019SAndroid Build Coastguard Worker  */
3390*d83cc019SAndroid Build Coastguard Worker #define RC6_RESIDENCY_TIME          0x138108
3391*d83cc019SAndroid Build Coastguard Worker #define RC6p_RESIDENCY_TIME         0x13810C
3392*d83cc019SAndroid Build Coastguard Worker #define RC6pp_RESIDENCY_TIME        0x138110
3393*d83cc019SAndroid Build Coastguard Worker 
3394*d83cc019SAndroid Build Coastguard Worker #define GEN6_RPNSWREQ				0xA008
3395*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC_VIDEO_FREQ			0xA00C
3396*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC_CONTROL				0xA090
3397*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_DOWN_TIMEOUT			0xA010
3398*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_INTERRUPT_LIMITS		0xA014
3399*d83cc019SAndroid Build Coastguard Worker #define GEN6_RPSTAT1				0xA01C
3400*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_CONTROL				0xA024
3401*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_UP_THRESHOLD			0xA02C
3402*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_DOWN_THRESHOLD			0xA030
3403*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_CUR_UP_EI			0xA050
3404*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_CUR_UP				0xA054
3405*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_PREV_UP				0xA058
3406*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_CUR_DOWN_EI			0xA05C
3407*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_CUR_DOWN			0xA060
3408*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_PREV_DOWN			0xA064
3409*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_UP_EI				0xA068
3410*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_DOWN_EI				0xA06C
3411*d83cc019SAndroid Build Coastguard Worker #define GEN6_RP_IDLE_HYSTERSIS			0xA070
3412*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC_STATE				0xA094
3413*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC1_WAKE_RATE_LIMIT		0xA098
3414*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC6_WAKE_RATE_LIMIT		0xA09C
3415*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC6pp_WAKE_RATE_LIMIT		0xA0A0
3416*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC_EVALUATION_INTERVAL		0xA0A8
3417*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC_IDLE_HYSTERSIS			0xA0AC
3418*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC_SLEEP				0xA0B0
3419*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC1e_THRESHOLD			0xA0B4
3420*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC6_THRESHOLD			0xA0B8
3421*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC6p_THRESHOLD			0xA0BC
3422*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC6pp_THRESHOLD			0xA0C0
3423*d83cc019SAndroid Build Coastguard Worker #define GEN6_PMINTRMSK				0xA168
3424*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC_EVALUATION_INTERVAL		0xA0A8
3425*d83cc019SAndroid Build Coastguard Worker #define GEN6_RC_IDLE_HYSTERSIS			0xA0AC
3426*d83cc019SAndroid Build Coastguard Worker #define GEN6_PMIER				0x4402C
3427*d83cc019SAndroid Build Coastguard Worker #define GEN6_PMIMR				0x44024 /* rps_lock */
3428*d83cc019SAndroid Build Coastguard Worker #define GEN6_PMINTRMSK				0xA168
3429*d83cc019SAndroid Build Coastguard Worker 
3430*d83cc019SAndroid Build Coastguard Worker /* Haswell-related items */
3431*d83cc019SAndroid Build Coastguard Worker 
3432*d83cc019SAndroid Build Coastguard Worker /* HSW Power Wells */
3433*d83cc019SAndroid Build Coastguard Worker #define HSW_PWR_WELL_CTL1			0x45400		/* BIOS */
3434*d83cc019SAndroid Build Coastguard Worker #define HSW_PWR_WELL_CTL2			0x45404		/* Driver */
3435*d83cc019SAndroid Build Coastguard Worker #define HSW_PWR_WELL_CTL3			0x45408		/* KVMR */
3436*d83cc019SAndroid Build Coastguard Worker #define HSW_PWR_WELL_CTL4			0x4540C		/* Debug */
3437*d83cc019SAndroid Build Coastguard Worker #define   HSW_PWR_WELL_ENABLE_REQUEST		(1<<31)
3438*d83cc019SAndroid Build Coastguard Worker #define   HSW_PWR_WELL_STATE_ENABLED		(1<<30)
3439*d83cc019SAndroid Build Coastguard Worker #define HSW_PWR_WELL_CTL5			0x45410
3440*d83cc019SAndroid Build Coastguard Worker #define   HSW_PWR_WELL_ENABLE_SINGLE_STEP	(1<<31)
3441*d83cc019SAndroid Build Coastguard Worker #define   HSW_PWR_WELL_PWR_GATE_OVERRIDE	(1<<20)
3442*d83cc019SAndroid Build Coastguard Worker #define   HSW_PWR_WELL_FORCE_ON			(1<<19)
3443*d83cc019SAndroid Build Coastguard Worker #define HSW_PWR_WELL_CTL6			0x45414
3444*d83cc019SAndroid Build Coastguard Worker 
3445*d83cc019SAndroid Build Coastguard Worker /* Per-pipe DDI Function Control */
3446*d83cc019SAndroid Build Coastguard Worker #define PIPE_DDI_FUNC_CTL_A		0x60400
3447*d83cc019SAndroid Build Coastguard Worker #define PIPE_DDI_FUNC_CTL_B		0x61400
3448*d83cc019SAndroid Build Coastguard Worker #define PIPE_DDI_FUNC_CTL_C		0x62400
3449*d83cc019SAndroid Build Coastguard Worker #define PIPE_DDI_FUNC_CTL_EDP		0x6F400
3450*d83cc019SAndroid Build Coastguard Worker #define DDI_FUNC_CTL(pipe) _PIPE(pipe, \
3451*d83cc019SAndroid Build Coastguard Worker 					PIPE_DDI_FUNC_CTL_A, \
3452*d83cc019SAndroid Build Coastguard Worker 					PIPE_DDI_FUNC_CTL_B)
3453*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_FUNC_ENABLE		(1<<31)
3454*d83cc019SAndroid Build Coastguard Worker /* Those bits are ignored by pipe EDP since it can only connect to DDI A */
3455*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_PORT_MASK		(0xf<<28)
3456*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_SELECT_PORT(x)	((x)<<28)
3457*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_MODE_SELECT_HDMI	(0<<24)
3458*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_MODE_SELECT_DVI	(1<<24)
3459*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_MODE_SELECT_DP_SST	(2<<24)
3460*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_MODE_SELECT_DP_MST	(3<<24)
3461*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_MODE_SELECT_FDI	(4<<24)
3462*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_BPC_8			(0<<20)
3463*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_BPC_10		(1<<20)
3464*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_BPC_6			(2<<20)
3465*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_BPC_12		(3<<20)
3466*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_BFI_ENABLE		(1<<4)
3467*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_PORT_WIDTH_X1		(0<<1)
3468*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_PORT_WIDTH_X2		(1<<1)
3469*d83cc019SAndroid Build Coastguard Worker #define  PIPE_DDI_PORT_WIDTH_X4		(3<<1)
3470*d83cc019SAndroid Build Coastguard Worker 
3471*d83cc019SAndroid Build Coastguard Worker /* DisplayPort Transport Control */
3472*d83cc019SAndroid Build Coastguard Worker #define DP_TP_CTL_A				0x64040
3473*d83cc019SAndroid Build Coastguard Worker #define DP_TP_CTL_B				0x64140
3474*d83cc019SAndroid Build Coastguard Worker #define DP_TP_CTL_C				0x64240
3475*d83cc019SAndroid Build Coastguard Worker #define DP_TP_CTL_D				0x64340
3476*d83cc019SAndroid Build Coastguard Worker #define DP_TP_CTL_E				0x64440
3477*d83cc019SAndroid Build Coastguard Worker #define  DP_TP_CTL_ENABLE			(1<<31)
3478*d83cc019SAndroid Build Coastguard Worker #define  DP_TP_CTL_MODE_SST			(0<<27)
3479*d83cc019SAndroid Build Coastguard Worker #define  DP_TP_CTL_MODE_MST			(1<<27)
3480*d83cc019SAndroid Build Coastguard Worker #define  DP_TP_CTL_ENHANCED_FRAME_ENABLE	(1<<18)
3481*d83cc019SAndroid Build Coastguard Worker #define  DP_TP_CTL_FDI_AUTOTRAIN		(1<<15)
3482*d83cc019SAndroid Build Coastguard Worker #define  DP_TP_CTL_LINK_TRAIN_MASK		(7<<8)
3483*d83cc019SAndroid Build Coastguard Worker #define  DP_TP_CTL_LINK_TRAIN_PAT1		(0<<8)
3484*d83cc019SAndroid Build Coastguard Worker #define  DP_TP_CTL_LINK_TRAIN_PAT2		(1<<8)
3485*d83cc019SAndroid Build Coastguard Worker #define  DP_TP_CTL_LINK_TRAIN_NORMAL		(3<<8)
3486*d83cc019SAndroid Build Coastguard Worker 
3487*d83cc019SAndroid Build Coastguard Worker /* DisplayPort Transport Status */
3488*d83cc019SAndroid Build Coastguard Worker #define DP_TP_STATUS_A			0x64044
3489*d83cc019SAndroid Build Coastguard Worker #define DP_TP_STATUS_B			0x64144
3490*d83cc019SAndroid Build Coastguard Worker #define DP_TP_STATUS_C			0x64244
3491*d83cc019SAndroid Build Coastguard Worker #define DP_TP_STATUS_D			0x64344
3492*d83cc019SAndroid Build Coastguard Worker #define DP_TP_STATUS_E			0x64444
3493*d83cc019SAndroid Build Coastguard Worker #define  DP_TP_STATUS_AUTOTRAIN_DONE	(1<<12)
3494*d83cc019SAndroid Build Coastguard Worker 
3495*d83cc019SAndroid Build Coastguard Worker /* DDI Buffer Control */
3496*d83cc019SAndroid Build Coastguard Worker #define DDI_BUF_CTL_A			0x64000
3497*d83cc019SAndroid Build Coastguard Worker #define DDI_BUF_CTL_B			0x64100
3498*d83cc019SAndroid Build Coastguard Worker #define DDI_BUF_CTL_C			0x64200
3499*d83cc019SAndroid Build Coastguard Worker #define DDI_BUF_CTL_D			0x64300
3500*d83cc019SAndroid Build Coastguard Worker #define DDI_BUF_CTL_E			0x64400
3501*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_CTL_ENABLE		(1<<31)
3502*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_EMP_400MV_0DB_HSW	(0<<24)   /* Sel0 */
3503*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_EMP_400MV_3_5DB_HSW	(1<<24)   /* Sel1 */
3504*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_EMP_400MV_6DB_HSW	(2<<24)   /* Sel2 */
3505*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_EMP_400MV_9_5DB_HSW	(3<<24)   /* Sel3 */
3506*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_EMP_600MV_0DB_HSW	(4<<24)   /* Sel4 */
3507*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_EMP_600MV_3_5DB_HSW	(5<<24)   /* Sel5 */
3508*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_EMP_600MV_6DB_HSW	(6<<24)   /* Sel6 */
3509*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_EMP_800MV_0DB_HSW	(7<<24)   /* Sel7 */
3510*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_EMP_800MV_3_5DB_HSW	(8<<24)   /* Sel8 */
3511*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_EMP_MASK		(0xf<<24)
3512*d83cc019SAndroid Build Coastguard Worker #define  DDI_BUF_IS_IDLE		(1<<7)
3513*d83cc019SAndroid Build Coastguard Worker #define  DDI_PORT_WIDTH_X1		(0<<1)
3514*d83cc019SAndroid Build Coastguard Worker #define  DDI_PORT_WIDTH_X2		(1<<1)
3515*d83cc019SAndroid Build Coastguard Worker #define  DDI_PORT_WIDTH_X4		(3<<1)
3516*d83cc019SAndroid Build Coastguard Worker #define  DDI_INIT_DISPLAY_DETECTED	(1<<0)
3517*d83cc019SAndroid Build Coastguard Worker 
3518*d83cc019SAndroid Build Coastguard Worker /* LPT PIXCLK_GATE */
3519*d83cc019SAndroid Build Coastguard Worker #define PIXCLK_GATE		0xC6020
3520*d83cc019SAndroid Build Coastguard Worker #define  PIXCLK_GATE_UNGATE	1<<0
3521*d83cc019SAndroid Build Coastguard Worker #define  PIXCLK_GATE_GATE	0<<0
3522*d83cc019SAndroid Build Coastguard Worker 
3523*d83cc019SAndroid Build Coastguard Worker /* SPLL */
3524*d83cc019SAndroid Build Coastguard Worker #define SPLL_CTL		0x46020
3525*d83cc019SAndroid Build Coastguard Worker #define  SPLL_PLL_ENABLE	(1<<31)
3526*d83cc019SAndroid Build Coastguard Worker #define  SPLL_PLL_SCC		(1<<28)
3527*d83cc019SAndroid Build Coastguard Worker #define  SPLL_PLL_NON_SCC	(2<<28)
3528*d83cc019SAndroid Build Coastguard Worker #define  SPLL_PLL_FREQ_810MHz	(0<<26)
3529*d83cc019SAndroid Build Coastguard Worker #define  SPLL_PLL_FREQ_1350MHz	(1<<26)
3530*d83cc019SAndroid Build Coastguard Worker 
3531*d83cc019SAndroid Build Coastguard Worker /* WRPLL */
3532*d83cc019SAndroid Build Coastguard Worker #define WRPLL_CTL1			0x46040
3533*d83cc019SAndroid Build Coastguard Worker #define WRPLL_CTL2			0x46060
3534*d83cc019SAndroid Build Coastguard Worker #define  WRPLL_PLL_ENABLE		(1<<31)
3535*d83cc019SAndroid Build Coastguard Worker #define  WRPLL_PLL_SELECT_SSC		(0x01<<28)
3536*d83cc019SAndroid Build Coastguard Worker #define  WRPLL_PLL_SELECT_NON_SCC	(0x02<<28)
3537*d83cc019SAndroid Build Coastguard Worker #define  WRPLL_PLL_SELECT_LCPLL_2700	(0x03<<28)
3538*d83cc019SAndroid Build Coastguard Worker /* WRPLL divider programming */
3539*d83cc019SAndroid Build Coastguard Worker #define  WRPLL_DIVIDER_REFERENCE(x)	((x)<<0)
3540*d83cc019SAndroid Build Coastguard Worker #define  WRPLL_DIVIDER_POST(x)		((x)<<8)
3541*d83cc019SAndroid Build Coastguard Worker #define  WRPLL_DIVIDER_FEEDBACK(x)	((x)<<16)
3542*d83cc019SAndroid Build Coastguard Worker 
3543*d83cc019SAndroid Build Coastguard Worker /* Port clock selection */
3544*d83cc019SAndroid Build Coastguard Worker #define PORT_CLK_SEL_A			0x46100
3545*d83cc019SAndroid Build Coastguard Worker #define PORT_CLK_SEL_B			0x46104
3546*d83cc019SAndroid Build Coastguard Worker #define PORT_CLK_SEL_C			0x46108
3547*d83cc019SAndroid Build Coastguard Worker #define PORT_CLK_SEL_D			0x4610C
3548*d83cc019SAndroid Build Coastguard Worker #define PORT_CLK_SEL_E			0x46110
3549*d83cc019SAndroid Build Coastguard Worker #define  PORT_CLK_SEL_LCPLL_2700	(0<<29)
3550*d83cc019SAndroid Build Coastguard Worker #define  PORT_CLK_SEL_LCPLL_1350	(1<<29)
3551*d83cc019SAndroid Build Coastguard Worker #define  PORT_CLK_SEL_LCPLL_810		(2<<29)
3552*d83cc019SAndroid Build Coastguard Worker #define  PORT_CLK_SEL_SPLL		(3<<29)
3553*d83cc019SAndroid Build Coastguard Worker #define  PORT_CLK_SEL_WRPLL1		(4<<29)
3554*d83cc019SAndroid Build Coastguard Worker #define  PORT_CLK_SEL_WRPLL2		(5<<29)
3555*d83cc019SAndroid Build Coastguard Worker 
3556*d83cc019SAndroid Build Coastguard Worker /* Pipe clock selection */
3557*d83cc019SAndroid Build Coastguard Worker #define PIPE_CLK_SEL_A			0x46140
3558*d83cc019SAndroid Build Coastguard Worker #define PIPE_CLK_SEL_B			0x46144
3559*d83cc019SAndroid Build Coastguard Worker #define PIPE_CLK_SEL_C			0x46148
3560*d83cc019SAndroid Build Coastguard Worker /* For each pipe, we need to select the corresponding port clock */
3561*d83cc019SAndroid Build Coastguard Worker #define  PIPE_CLK_SEL_DISABLED		(0x0<<29)
3562*d83cc019SAndroid Build Coastguard Worker #define  PIPE_CLK_SEL_PORT(x)		((x+1)<<29)
3563*d83cc019SAndroid Build Coastguard Worker 
3564*d83cc019SAndroid Build Coastguard Worker /* LCPLL Control */
3565*d83cc019SAndroid Build Coastguard Worker #define LCPLL_CTL			0x130040
3566*d83cc019SAndroid Build Coastguard Worker #define  LCPLL_PLL_DISABLE		(1<<31)
3567*d83cc019SAndroid Build Coastguard Worker #define  LCPLL_PLL_LOCK			(1<<30)
3568*d83cc019SAndroid Build Coastguard Worker #define  LCPLL_CD_CLOCK_DISABLE		(1<<25)
3569*d83cc019SAndroid Build Coastguard Worker #define  LCPLL_CD2X_CLOCK_DISABLE	(1<<23)
3570*d83cc019SAndroid Build Coastguard Worker 
3571*d83cc019SAndroid Build Coastguard Worker /* Pipe WM_LINETIME - watermark line time */
3572*d83cc019SAndroid Build Coastguard Worker #define WM_PIPE_A			0x45100
3573*d83cc019SAndroid Build Coastguard Worker #define WM_PIPE_B			0x45104
3574*d83cc019SAndroid Build Coastguard Worker #define WM_PIPE_C			0x45200
3575*d83cc019SAndroid Build Coastguard Worker #define WM_LP1				0x45108
3576*d83cc019SAndroid Build Coastguard Worker #define WM_LP2				0x4510C
3577*d83cc019SAndroid Build Coastguard Worker #define WM_LP3				0x45110
3578*d83cc019SAndroid Build Coastguard Worker #define WM_LP1_SPR			0x45120
3579*d83cc019SAndroid Build Coastguard Worker #define WM_LP2_SPR			0x45124
3580*d83cc019SAndroid Build Coastguard Worker #define WM_LP3_SPR			0x45128
3581*d83cc019SAndroid Build Coastguard Worker #define WM_MISC				0x45260
3582*d83cc019SAndroid Build Coastguard Worker #define WM_SR_CNT			0x45264
3583*d83cc019SAndroid Build Coastguard Worker #define WM_DBG				0x45280
3584*d83cc019SAndroid Build Coastguard Worker #define PIPE_WM_LINETIME_A		0x45270
3585*d83cc019SAndroid Build Coastguard Worker #define PIPE_WM_LINETIME_B		0x45274
3586*d83cc019SAndroid Build Coastguard Worker #define PIPE_WM_LINETIME_C		0x45278
3587*d83cc019SAndroid Build Coastguard Worker #define   PIPE_WM_LINETIME_MASK				(0x1ff)
3588*d83cc019SAndroid Build Coastguard Worker #define   PIPE_WM_LINETIME_TIME(x)			((x))
3589*d83cc019SAndroid Build Coastguard Worker #define   PIPE_WM_LINETIME_IPS_LINETIME_MASK		(0x1ff<<16)
3590*d83cc019SAndroid Build Coastguard Worker #define   PIPE_WM_LINETIME_IPS_LINETIME(x)		((x)<<16)
3591*d83cc019SAndroid Build Coastguard Worker 
3592*d83cc019SAndroid Build Coastguard Worker /* SFUSE_STRAP */
3593*d83cc019SAndroid Build Coastguard Worker #define SFUSE_STRAP			0xc2014
3594*d83cc019SAndroid Build Coastguard Worker #define  SFUSE_STRAP_DDIB_DETECTED	(1<<2)
3595*d83cc019SAndroid Build Coastguard Worker #define  SFUSE_STRAP_DDIC_DETECTED	(1<<1)
3596*d83cc019SAndroid Build Coastguard Worker #define  SFUSE_STRAP_DDID_DETECTED	(1<<0)
3597*d83cc019SAndroid Build Coastguard Worker 
3598*d83cc019SAndroid Build Coastguard Worker /* Valleyview related items */
3599*d83cc019SAndroid Build Coastguard Worker #define VLV_DISPLAY_BASE       0x180000
3600*d83cc019SAndroid Build Coastguard Worker 
3601*d83cc019SAndroid Build Coastguard Worker /*
3602*d83cc019SAndroid Build Coastguard Worker  * IOSF sideband
3603*d83cc019SAndroid Build Coastguard Worker  */
3604*d83cc019SAndroid Build Coastguard Worker #define VLV_IOSF_DOORBELL_REQ			(VLV_DISPLAY_BASE + 0x2100)
3605*d83cc019SAndroid Build Coastguard Worker #define   IOSF_DEVFN_SHIFT			24
3606*d83cc019SAndroid Build Coastguard Worker #define   IOSF_OPCODE_SHIFT			16
3607*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_SHIFT			8
3608*d83cc019SAndroid Build Coastguard Worker #define   IOSF_BYTE_ENABLES_SHIFT		4
3609*d83cc019SAndroid Build Coastguard Worker #define   IOSF_BAR_SHIFT			1
3610*d83cc019SAndroid Build Coastguard Worker #define   IOSF_SB_BUSY				(1<<0)
3611*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_BUNIT			0x3
3612*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_PUNIT			0x4
3613*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_NC				0x11
3614*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_DPIO			0x12
3615*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_DPIO_2			0x1a
3616*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_GPIO_NC			0x13
3617*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_CCK				0x14
3618*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_CCU				0xA9
3619*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_GPS_CORE			0x48
3620*d83cc019SAndroid Build Coastguard Worker #define   IOSF_PORT_FLISDSI			0x1B
3621*d83cc019SAndroid Build Coastguard Worker #define VLV_IOSF_DATA				(VLV_DISPLAY_BASE + 0x2104)
3622*d83cc019SAndroid Build Coastguard Worker #define VLV_IOSF_ADDR				(VLV_DISPLAY_BASE + 0x2108)
3623*d83cc019SAndroid Build Coastguard Worker 
3624*d83cc019SAndroid Build Coastguard Worker #endif /* _I810_REG_H */
3625