1/* SPDX-License-Identifier: GPL-2.0 */
2
3#ifndef TRIDENTFB_DEBUG
4#define TRIDENTFB_DEBUG 0
5#endif
6
7#if TRIDENTFB_DEBUG
8#define debug(f, a...)	printk("%s:" f,  __func__ , ## a);
9#else
10#define debug(f, a...)
11#endif
12
13#define output(f, a...) pr_info("tridentfb: " f, ## a)
14
15#define Kb	(1024)
16#define Mb	(Kb*Kb)
17
18/* PCI IDS of supported cards temporarily here */
19
20#define CYBER9320	0x9320
21#define CYBER9388	0x9388
22#define CYBER9382	0x9382		/* the real PCI id for this is 9660 */
23#define CYBER9385	0x9385		/* ditto */
24#define CYBER9397	0x9397
25#define CYBER9397DVD	0x939A
26#define CYBER9520	0x9520
27#define CYBER9525DVD	0x9525
28#define TGUI9440	0x9440
29#define TGUI9660	0x9660
30#define PROVIDIA9685	0x9685
31#define IMAGE975	0x9750
32#define IMAGE985	0x9850
33#define BLADE3D		0x9880
34#define CYBERBLADEE4	0x9540
35#define CYBERBLADEi7	0x8400
36#define CYBERBLADEi7D	0x8420
37#define CYBERBLADEi1	0x8500
38#define CYBERBLADEi1D	0x8520
39#define CYBERBLADEAi1	0x8600
40#define CYBERBLADEAi1D	0x8620
41#define CYBERBLADEXPAi1 0x8820
42#define CYBERBLADEXPm8  0x9910
43#define CYBERBLADEXPm16 0x9930
44
45/* these defines are for 'lcd' variable */
46#define LCD_STRETCH	0
47#define LCD_CENTER	1
48#define LCD_BIOS	2
49
50/* General Registers */
51#define SPR	0x1F		/* Software Programming Register (videoram) */
52
53/* 3C4 */
54#define RevisionID 0x09
55#define OldOrNew 0x0B
56#define ConfPort1 0x0C
57#define ConfPort2 0x0C
58#define NewMode2 0x0D
59#define NewMode1 0x0E
60#define Protection 0x11
61#define MCLKLow 0x16
62#define MCLKHigh 0x17
63#define ClockLow 0x18
64#define ClockHigh 0x19
65#define SSetup 0x20
66#define SKey 0x37
67#define SPKey 0x57
68
69/* 3x4 */
70#define CRTCModuleTest 0x1E
71#define FIFOControl 0x20
72#define LinearAddReg 0x21
73#define DRAMTiming 0x23
74#define New32 0x23
75#define RAMDACTiming 0x25
76#define CRTHiOrd 0x27
77#define AddColReg 0x29
78#define InterfaceSel 0x2A
79#define HorizOverflow 0x2B
80#define GETest 0x2D
81#define Performance 0x2F
82#define GraphEngReg 0x36
83#define I2C 0x37
84#define PixelBusReg 0x38
85#define PCIReg 0x39
86#define DRAMControl 0x3A
87#define MiscContReg 0x3C
88#define CursorXLow 0x40
89#define CursorXHigh 0x41
90#define CursorYLow 0x42
91#define CursorYHigh 0x43
92#define CursorLocLow 0x44
93#define CursorLocHigh 0x45
94#define CursorXOffset 0x46
95#define CursorYOffset 0x47
96#define CursorFG1 0x48
97#define CursorFG2 0x49
98#define CursorFG3 0x4A
99#define CursorFG4 0x4B
100#define CursorBG1 0x4C
101#define CursorBG2 0x4D
102#define CursorBG3 0x4E
103#define CursorBG4 0x4F
104#define CursorControl 0x50
105#define PCIRetry 0x55
106#define PreEndControl 0x56
107#define PreEndFetch 0x57
108#define PCIMaster 0x60
109#define Enhancement0 0x62
110#define NewEDO 0x64
111#define TVinterface 0xC0
112#define TVMode 0xC1
113#define ClockControl 0xCF
114
115
116/* 3CE */
117#define MiscExtFunc 0x0F
118#define PowerStatus 0x23
119#define MiscIntContReg 0x2F
120#define CyberControl 0x30
121#define CyberEnhance 0x31
122#define FPConfig     0x33
123#define VertStretch  0x52
124#define HorStretch   0x53
125#define BiosMode     0x5c
126#define BiosReg      0x5d
127
128/* Graphics Engine */
129#define STATUS	0x2120
130#define OLDCMD	0x2124
131#define DRAWFL	0x2128
132#define OLDCLR	0x212C
133#define OLDDST	0x2138
134#define OLDSRC	0x213C
135#define OLDDIM	0x2140
136#define CMD	0x2144
137#define ROP	0x2148
138#define COLOR	0x2160
139#define BGCOLOR	0x2164
140#define SRC1	0x2100
141#define SRC2	0x2104
142#define DST1	0x2108
143#define DST2	0x210C
144
145#define ROP_S	0xCC
146#define ROP_P	0xF0
147#define ROP_X	0x66
148