Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 | /* * linux/drivers/video/kyro/STG4000Reg.h * * Copyright (C) 2002 STMicroelectronics * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of this archive * for more details. */ #ifndef _STG4000REG_H #define _STG4000REG_H #define DWFILL unsigned long :32 #define WFILL unsigned short :16 /* * Macros that access memory mapped card registers in PCI space * Add an appropraite section for your OS or processor architecture. */ #if defined(__KERNEL__) #include <asm/page.h> #include <asm/io.h> #define STG_WRITE_REG(reg,data) (writel(data,&pSTGReg->reg)) #define STG_READ_REG(reg) (readl(&pSTGReg->reg)) #else #define STG_WRITE_REG(reg,data) (pSTGReg->reg = data) #define STG_READ_REG(reg) (pSTGReg->reg) #endif /* __KERNEL__ */ #define SET_BIT(n) (1<<(n)) #define CLEAR_BIT(n) (tmp &= ~(1<<n)) #define CLEAR_BITS_FRM_TO(frm, to) \ {\ int i; \ for(i = frm; i<= to; i++) \ { \ tmp &= ~(1<<i); \ } \ } #define CLEAR_BIT_2(n) (usTemp &= ~(1<<n)) #define CLEAR_BITS_FRM_TO_2(frm, to) \ {\ int i; \ for(i = frm; i<= to; i++) \ { \ usTemp &= ~(1<<i); \ } \ } /* LUT select */ typedef enum _LUT_USES { NO_LUT = 0, RESERVED, GRAPHICS, OVERLAY } LUT_USES; /* Primary surface pixel format select */ typedef enum _PIXEL_FORMAT { _8BPP = 0, _15BPP, _16BPP, _24BPP, _32BPP } PIXEL_FORMAT; /* Overlay blending mode select */ typedef enum _BLEND_MODE { GRAPHICS_MODE = 0, COLOR_KEY, PER_PIXEL_ALPHA, GLOBAL_ALPHA, CK_PIXEL_ALPHA, CK_GLOBAL_ALPHA } OVRL_BLEND_MODE; /* Overlay Pixel format select */ typedef enum _OVRL_PIX_FORMAT { UYVY, VYUY, YUYV, YVYU } OVRL_PIX_FORMAT; /* Register Table */ typedef struct { /* 0h */ volatile unsigned long Thread0Enable; /* 0x0000 */ volatile unsigned long Thread1Enable; /* 0x0004 */ volatile unsigned long Thread0Recover; /* 0x0008 */ volatile unsigned long Thread1Recover; /* 0x000C */ volatile unsigned long Thread0Step; /* 0x0010 */ volatile unsigned long Thread1Step; /* 0x0014 */ volatile unsigned long VideoInStatus; /* 0x0018 */ volatile unsigned long Core2InSignStart; /* 0x001C */ volatile unsigned long Core1ResetVector; /* 0x0020 */ volatile unsigned long Core1ROMOffset; /* 0x0024 */ volatile unsigned long Core1ArbiterPriority; /* 0x0028 */ volatile unsigned long VideoInControl; /* 0x002C */ volatile unsigned long VideoInReg0CtrlA; /* 0x0030 */ volatile unsigned long VideoInReg0CtrlB; /* 0x0034 */ volatile unsigned long VideoInReg1CtrlA; /* 0x0038 */ volatile unsigned long VideoInReg1CtrlB; /* 0x003C */ volatile unsigned long Thread0Kicker; /* 0x0040 */ volatile unsigned long Core2InputSign; /* 0x0044 */ volatile unsigned long Thread0ProgCtr; /* 0x0048 */ volatile unsigned long Thread1ProgCtr; /* 0x004C */ volatile unsigned long Thread1Kicker; /* 0x0050 */ volatile unsigned long GPRegister1; /* 0x0054 */ volatile unsigned long GPRegister2; /* 0x0058 */ volatile unsigned long GPRegister3; /* 0x005C */ volatile unsigned long GPRegister4; /* 0x0060 */ volatile unsigned long SerialIntA; /* 0x0064 */ volatile unsigned long Fill0[6]; /* GAP 0x0068 - 0x007C */ volatile unsigned long SoftwareReset; /* 0x0080 */ volatile unsigned long SerialIntB; /* 0x0084 */ volatile unsigned long Fill1[37]; /* GAP 0x0088 - 0x011C */ volatile unsigned long ROMELQV; /* 0x011C */ volatile unsigned long WLWH; /* 0x0120 */ volatile unsigned long ROMELWL; /* 0x0124 */ volatile unsigned long dwFill_1; /* GAP 0x0128 */ volatile unsigned long IntStatus; /* 0x012C */ volatile unsigned long IntMask; /* 0x0130 */ volatile unsigned long IntClear; /* 0x0134 */ volatile unsigned long Fill2[6]; /* GAP 0x0138 - 0x014C */ volatile unsigned long ROMGPIOA; /* 0x0150 */ volatile unsigned long ROMGPIOB; /* 0x0154 */ volatile unsigned long ROMGPIOC; /* 0x0158 */ volatile unsigned long ROMGPIOD; /* 0x015C */ volatile unsigned long Fill3[2]; /* GAP 0x0160 - 0x0168 */ volatile unsigned long AGPIntID; /* 0x0168 */ volatile unsigned long AGPIntClassCode; /* 0x016C */ volatile unsigned long AGPIntBIST; /* 0x0170 */ volatile unsigned long AGPIntSSID; /* 0x0174 */ volatile unsigned long AGPIntPMCSR; /* 0x0178 */ volatile unsigned long VGAFrameBufBase; /* 0x017C */ volatile unsigned long VGANotify; /* 0x0180 */ volatile unsigned long DACPLLMode; /* 0x0184 */ volatile unsigned long Core1VideoClockDiv; /* 0x0188 */ volatile unsigned long AGPIntStat; /* 0x018C */ /* volatile unsigned long Fill4[0x0400/4 - 0x0190/4]; //GAP 0x0190 - 0x0400 volatile unsigned long Fill5[0x05FC/4 - 0x0400/4]; //GAP 0x0400 - 0x05FC Fog Table volatile unsigned long Fill6[0x0604/4 - 0x0600/4]; //GAP 0x0600 - 0x0604 volatile unsigned long Fill7[0x0680/4 - 0x0608/4]; //GAP 0x0608 - 0x0680 volatile unsigned long Fill8[0x07FC/4 - 0x0684/4]; //GAP 0x0684 - 0x07FC */ volatile unsigned long Fill4[412]; /* 0x0190 - 0x07FC */ volatile unsigned long TACtrlStreamBase; /* 0x0800 */ volatile unsigned long TAObjDataBase; /* 0x0804 */ volatile unsigned long TAPtrDataBase; /* 0x0808 */ volatile unsigned long TARegionDataBase; /* 0x080C */ volatile unsigned long TATailPtrBase; /* 0x0810 */ volatile unsigned long TAPtrRegionSize; /* 0x0814 */ volatile unsigned long TAConfiguration; /* 0x0818 */ volatile unsigned long TAObjDataStartAddr; /* 0x081C */ volatile unsigned long TAObjDataEndAddr; /* 0x0820 */ volatile unsigned long TAXScreenClip; /* 0x0824 */ volatile unsigned long TAYScreenClip; /* 0x0828 */ volatile unsigned long TARHWClamp; /* 0x082C */ volatile unsigned long TARHWCompare; /* 0x0830 */ volatile unsigned long TAStart; /* 0x0834 */ volatile unsigned long TAObjReStart; /* 0x0838 */ volatile unsigned long TAPtrReStart; /* 0x083C */ volatile unsigned long TAStatus1; /* 0x0840 */ volatile unsigned long TAStatus2; /* 0x0844 */ volatile unsigned long TAIntStatus; /* 0x0848 */ volatile unsigned long TAIntMask; /* 0x084C */ volatile unsigned long Fill5[235]; /* GAP 0x0850 - 0x0BF8 */ volatile unsigned long TextureAddrThresh; /* 0x0BFC */ volatile unsigned long Core1Translation; /* 0x0C00 */ volatile unsigned long TextureAddrReMap; /* 0x0C04 */ volatile unsigned long RenderOutAGPRemap; /* 0x0C08 */ volatile unsigned long _3DRegionReadTrans; /* 0x0C0C */ volatile unsigned long _3DPtrReadTrans; /* 0x0C10 */ volatile unsigned long _3DParamReadTrans; /* 0x0C14 */ volatile unsigned long _3DRegionReadThresh; /* 0x0C18 */ volatile unsigned long _3DPtrReadThresh; /* 0x0C1C */ volatile unsigned long _3DParamReadThresh; /* 0x0C20 */ volatile unsigned long _3DRegionReadAGPRemap; /* 0x0C24 */ volatile unsigned long _3DPtrReadAGPRemap; /* 0x0C28 */ volatile unsigned long _3DParamReadAGPRemap; /* 0x0C2C */ volatile unsigned long ZBufferAGPRemap; /* 0x0C30 */ volatile unsigned long TAIndexAGPRemap; /* 0x0C34 */ volatile unsigned long TAVertexAGPRemap; /* 0x0C38 */ volatile unsigned long TAUVAddrTrans; /* 0x0C3C */ volatile unsigned long TATailPtrCacheTrans; /* 0x0C40 */ volatile unsigned long TAParamWriteTrans; /* 0x0C44 */ volatile unsigned long TAPtrWriteTrans; /* 0x0C48 */ volatile unsigned long TAParamWriteThresh; /* 0x0C4C */ volatile unsigned long TAPtrWriteThresh; /* 0x0C50 */ volatile unsigned long TATailPtrCacheAGPRe; /* 0x0C54 */ volatile unsigned long TAParamWriteAGPRe; /* 0x0C58 */ volatile unsigned long TAPtrWriteAGPRe; /* 0x0C5C */ volatile unsigned long SDRAMArbiterConf; /* 0x0C60 */ volatile unsigned long SDRAMConf0; /* 0x0C64 */ volatile unsigned long SDRAMConf1; /* 0x0C68 */ volatile unsigned long SDRAMConf2; /* 0x0C6C */ volatile unsigned long SDRAMRefresh; /* 0x0C70 */ volatile unsigned long SDRAMPowerStat; /* 0x0C74 */ volatile unsigned long Fill6[2]; /* GAP 0x0C78 - 0x0C7C */ volatile unsigned long RAMBistData; /* 0x0C80 */ volatile unsigned long RAMBistCtrl; /* 0x0C84 */ volatile unsigned long FIFOBistKey; /* 0x0C88 */ volatile unsigned long RAMBistResult; /* 0x0C8C */ volatile unsigned long FIFOBistResult; /* 0x0C90 */ /* volatile unsigned long Fill11[0x0CBC/4 - 0x0C94/4]; //GAP 0x0C94 - 0x0CBC volatile unsigned long Fill12[0x0CD0/4 - 0x0CC0/4]; //GAP 0x0CC0 - 0x0CD0 3DRegisters */ volatile unsigned long Fill7[16]; /* 0x0c94 - 0x0cd0 */ volatile unsigned long SDRAMAddrSign; /* 0x0CD4 */ volatile unsigned long SDRAMDataSign; /* 0x0CD8 */ volatile unsigned long SDRAMSignConf; /* 0x0CDC */ /* DWFILL; //GAP 0x0CE0 */ volatile unsigned long dwFill_2; volatile unsigned long ISPSignature; /* 0x0CE4 */ volatile unsigned long Fill8[454]; /*GAP 0x0CE8 - 0x13FC */ volatile unsigned long DACPrimAddress; /* 0x1400 */ volatile unsigned long DACPrimSize; /* 0x1404 */ volatile unsigned long DACCursorAddr; /* 0x1408 */ volatile unsigned long DACCursorCtrl; /* 0x140C */ volatile unsigned long DACOverlayAddr; /* 0x1410 */ volatile unsigned long DACOverlayUAddr; /* 0x1414 */ volatile unsigned long DACOverlayVAddr; /* 0x1418 */ volatile unsigned long DACOverlaySize; /* 0x141C */ volatile unsigned long DACOverlayVtDec; /* 0x1420 */ volatile unsigned long Fill9[9]; /* GAP 0x1424 - 0x1444 */ volatile unsigned long DACVerticalScal; /* 0x1448 */ volatile unsigned long DACPixelFormat; /* 0x144C */ volatile unsigned long DACHorizontalScal; /* 0x1450 */ volatile unsigned long DACVidWinStart; /* 0x1454 */ volatile unsigned long DACVidWinEnd; /* 0x1458 */ volatile unsigned long DACBlendCtrl; /* 0x145C */ volatile unsigned long DACHorTim1; /* 0x1460 */ volatile unsigned long DACHorTim2; /* 0x1464 */ volatile unsigned long DACHorTim3; /* 0x1468 */ volatile unsigned long DACVerTim1; /* 0x146C */ volatile unsigned long DACVerTim2; /* 0x1470 */ volatile unsigned long DACVerTim3; /* 0x1474 */ volatile unsigned long DACBorderColor; /* 0x1478 */ volatile unsigned long DACSyncCtrl; /* 0x147C */ volatile unsigned long DACStreamCtrl; /* 0x1480 */ volatile unsigned long DACLUTAddress; /* 0x1484 */ volatile unsigned long DACLUTData; /* 0x1488 */ volatile unsigned long DACBurstCtrl; /* 0x148C */ volatile unsigned long DACCrcTrigger; /* 0x1490 */ volatile unsigned long DACCrcDone; /* 0x1494 */ volatile unsigned long DACCrcResult1; /* 0x1498 */ volatile unsigned long DACCrcResult2; /* 0x149C */ volatile unsigned long DACLinecount; /* 0x14A0 */ volatile unsigned long Fill10[151]; /*GAP 0x14A4 - 0x16FC */ volatile unsigned long DigVidPortCtrl; /* 0x1700 */ volatile unsigned long DigVidPortStat; /* 0x1704 */ /* volatile unsigned long Fill11[0x1FFC/4 - 0x1708/4]; //GAP 0x1708 - 0x1FFC volatile unsigned long Fill17[0x3000/4 - 0x2FFC/4]; //GAP 0x2000 - 0x2FFC ALUT */ volatile unsigned long Fill11[1598]; /* DWFILL; //GAP 0x3000 ALUT 256MB offset */ volatile unsigned long Fill_3; } STG4000REG; #endif /* _STG4000REG_H */ |