unichromemode.h revision 1.2 1 1.2 andvar /* $NetBSD: unichromemode.h,v 1.2 2024/02/02 22:33:42 andvar Exp $ */
2 1.1 jmcneill
3 1.1 jmcneill /*
4 1.1 jmcneill * Copyright 1998-2006 VIA Technologies, Inc. All Rights Reserved.
5 1.1 jmcneill * Copyright 2001-2006 S3 Graphics, Inc. All Rights Reserved.
6 1.1 jmcneill *
7 1.1 jmcneill * Permission is hereby granted, free of charge, to any person obtaining a
8 1.1 jmcneill * copy of this software and associated documentation files (the "Software"),
9 1.1 jmcneill * to deal in the Software without restriction, including without limitation
10 1.1 jmcneill * the rights to use, copy, modify, merge, publish, distribute, sub license,
11 1.1 jmcneill * and/or sell copies of the Software, and to permit persons to whom the
12 1.1 jmcneill * Software is furnished to do so, subject to the following conditions:
13 1.1 jmcneill *
14 1.1 jmcneill * The above copyright notice and this permission notice (including the
15 1.1 jmcneill * next paragraph) shall be included in all copies or substantial portions
16 1.1 jmcneill * of the Software.
17 1.1 jmcneill *
18 1.1 jmcneill * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 1.1 jmcneill * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 1.1 jmcneill * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
21 1.1 jmcneill * THE AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
22 1.1 jmcneill * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
23 1.1 jmcneill * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24 1.1 jmcneill * DEALINGS IN THE SOFTWARE.
25 1.1 jmcneill */
26 1.1 jmcneill
27 1.1 jmcneill #ifndef _DEV_PCI_UNICHROMEMODE_H
28 1.1 jmcneill #define _DEV_PCI_UNICHROMEMODE_H
29 1.1 jmcneill
30 1.1 jmcneill #define ARRAY_SIZE(x) (sizeof((x)) / sizeof((x)[0]))
31 1.1 jmcneill
32 1.1 jmcneill struct VPITTable {
33 1.1 jmcneill unsigned char Misc;
34 1.1 jmcneill unsigned char SR[StdSR];
35 1.1 jmcneill unsigned char GR[StdGR];
36 1.1 jmcneill unsigned char AR[StdAR];
37 1.1 jmcneill };
38 1.1 jmcneill
39 1.1 jmcneill struct VideoModeTable {
40 1.1 jmcneill int ModeIndex;
41 1.1 jmcneill struct crt_mode_table *crtc;
42 1.1 jmcneill int mode_array;
43 1.1 jmcneill };
44 1.1 jmcneill
45 1.1 jmcneill struct patch_table {
46 1.1 jmcneill int mode_index;
47 1.1 jmcneill int table_length;
48 1.1 jmcneill struct io_reg *io_reg_table;
49 1.1 jmcneill };
50 1.1 jmcneill
51 1.1 jmcneill struct res_map_refresh {
52 1.1 jmcneill int hres;
53 1.1 jmcneill int vres;
54 1.1 jmcneill int pixclock;
55 1.1 jmcneill int vmode_refresh;
56 1.1 jmcneill };
57 1.1 jmcneill
58 1.1 jmcneill struct res_map_refresh res_map_refresh_tbl[] = {
59 1.1 jmcneill //hres, vres, vclock, vmode_refresh
60 1.1 jmcneill {640, 480, RES_640X480_60HZ_PIXCLOCK, 60},
61 1.1 jmcneill {640, 480, RES_640X480_75HZ_PIXCLOCK, 75},
62 1.1 jmcneill {640, 480, RES_640X480_85HZ_PIXCLOCK, 85},
63 1.1 jmcneill {640, 480, RES_640X480_100HZ_PIXCLOCK, 100},
64 1.1 jmcneill {640, 480, RES_640X480_120HZ_PIXCLOCK, 120},
65 1.1 jmcneill {720, 480, RES_720X480_60HZ_PIXCLOCK, 60},
66 1.1 jmcneill {720, 576, RES_720X576_60HZ_PIXCLOCK, 60},
67 1.1 jmcneill {800, 480, RES_800X480_60HZ_PIXCLOCK, 60},
68 1.1 jmcneill {800, 600, RES_800X600_60HZ_PIXCLOCK, 60},
69 1.1 jmcneill {800, 600, RES_800X600_75HZ_PIXCLOCK, 75},
70 1.1 jmcneill {800, 600, RES_800X600_85HZ_PIXCLOCK, 85},
71 1.1 jmcneill {800, 600, RES_800X600_100HZ_PIXCLOCK, 100},
72 1.1 jmcneill {800, 600, RES_800X600_120HZ_PIXCLOCK, 120},
73 1.1 jmcneill {848, 480, RES_848X480_60HZ_PIXCLOCK, 60},
74 1.1 jmcneill {856, 480, RES_856X480_60HZ_PIXCLOCK, 60},
75 1.1 jmcneill {1024,512, RES_1024X512_60HZ_PIXCLOCK, 60},
76 1.1 jmcneill {1024,768, RES_1024X768_60HZ_PIXCLOCK, 60},
77 1.1 jmcneill {1024,768, RES_1024X768_75HZ_PIXCLOCK, 75},
78 1.1 jmcneill {1024,768, RES_1024X768_85HZ_PIXCLOCK, 85},
79 1.1 jmcneill {1024,768, RES_1024X768_100HZ_PIXCLOCK, 100},
80 1.1 jmcneill {1152,864, RES_1152X864_70HZ_PIXCLOCK, 70},
81 1.1 jmcneill {1152,864, RES_1152X864_75HZ_PIXCLOCK, 75},
82 1.1 jmcneill {1280,768, RES_1280X768_60HZ_PIXCLOCK, 60},
83 1.1 jmcneill {1280,960, RES_1280X960_60HZ_PIXCLOCK, 60},
84 1.1 jmcneill {1280,1024,RES_1280X1024_60HZ_PIXCLOCK, 60},
85 1.1 jmcneill {1280,1024,RES_1280X1024_75HZ_PIXCLOCK, 75},
86 1.1 jmcneill {1280,1024,RES_1280X768_85HZ_PIXCLOCK, 85},
87 1.1 jmcneill {1440,1050,RES_1440X1050_60HZ_PIXCLOCK, 60},
88 1.1 jmcneill {1600,1200,RES_1600X1200_60HZ_PIXCLOCK, 60},
89 1.1 jmcneill {1600,1200,RES_1600X1200_75HZ_PIXCLOCK, 75},
90 1.1 jmcneill {1280,720, RES_1280X720_60HZ_PIXCLOCK, 60},
91 1.1 jmcneill {1920,1080,RES_1920X1080_60HZ_PIXCLOCK, 60},
92 1.1 jmcneill {1400,1050,RES_1400X1050_60HZ_PIXCLOCK, 60},
93 1.1 jmcneill {1366,768, RES_1366X768_60HZ_PIXCLOCK,60}
94 1.1 jmcneill };
95 1.1 jmcneill #define NUM_TOTAL_RES_MAP_REFRESH ARRAY_SIZE(res_map_refresh_tbl)
96 1.1 jmcneill
97 1.1 jmcneill struct io_reg CN400_ModeXregs[] = {
98 1.1 jmcneill {VIASR, SR10, 0xFF, 0x01},
99 1.1 jmcneill {VIASR, SR15, 0x02, 0x02},
100 1.1 jmcneill {VIASR, SR16, 0xBF, 0x08},
101 1.1 jmcneill {VIASR, SR17, 0xFF, 0x1F},
102 1.1 jmcneill {VIASR, SR18, 0xFF, 0x4E},
103 1.1 jmcneill {VIASR, SR1A, 0xFB, 0x08},
104 1.1 jmcneill {VIASR, SR1E, 0x0F, 0x01},
105 1.1 jmcneill {VIASR, SR2A, 0xF0, 0x00},
106 1.1 jmcneill {VIACR, CR0A, 0xFF, 0x1E}, /* Cursor Start */
107 1.1 jmcneill {VIACR, CR0B, 0xFF, 0x00}, /* Cursor End */
108 1.1 jmcneill {VIACR, CR0E, 0xFF, 0x00}, /* Cursor Location High */
109 1.1 jmcneill {VIACR, CR0F, 0xFF, 0x00}, /* Cursor Localtion Low */
110 1.1 jmcneill {VIACR, CR32, 0xFF, 0x00},
111 1.1 jmcneill {VIACR, CR33, 0xFF, 0x00},
112 1.1 jmcneill {VIACR, CR34, 0xFF, 0x00},
113 1.1 jmcneill {VIACR, CR35, 0xFF, 0x00},
114 1.1 jmcneill {VIACR, CR36, 0x08, 0x00},
115 1.1 jmcneill {VIACR, CR62, 0xFF, 0x00}, /* Secondary Display Starting Address */
116 1.1 jmcneill {VIACR, CR63, 0xFF, 0x00}, /* Secondary Display Starting Address */
117 1.1 jmcneill {VIACR, CR64, 0xFF, 0x00}, /* Secondary Display Starting Address */
118 1.1 jmcneill {VIACR, CR69, 0xFF, 0x00},
119 1.1 jmcneill {VIACR, CR6A, 0xFF, 0x40},
120 1.1 jmcneill {VIACR, CR6B, 0xFF, 0x00},
121 1.1 jmcneill {VIACR, CR6C, 0xFF, 0x00},
122 1.1 jmcneill {VIACR, CR7A, 0xFF, 0x01}, /* LCD Scaling Parameter 1 */
123 1.1 jmcneill {VIACR, CR7B, 0xFF, 0x02}, /* LCD Scaling Parameter 2 */
124 1.1 jmcneill {VIACR, CR7C, 0xFF, 0x03}, /* LCD Scaling Parameter 3 */
125 1.1 jmcneill {VIACR, CR7D, 0xFF, 0x04}, /* LCD Scaling Parameter 4 */
126 1.1 jmcneill {VIACR, CR7E, 0xFF, 0x07}, /* LCD Scaling Parameter 5 */
127 1.1 jmcneill {VIACR, CR7F, 0xFF, 0x0A}, /* LCD Scaling Parameter 6 */
128 1.1 jmcneill {VIACR, CR80, 0xFF, 0x0D}, /* LCD Scaling Parameter 7 */
129 1.1 jmcneill {VIACR, CR81, 0xFF, 0x13}, /* LCD Scaling Parameter 8 */
130 1.1 jmcneill {VIACR, CR82, 0xFF, 0x16}, /* LCD Scaling Parameter 9 */
131 1.1 jmcneill {VIACR, CR83, 0xFF, 0x19}, /* LCD Scaling Parameter 10 */
132 1.1 jmcneill {VIACR, CR84, 0xFF, 0x1C}, /* LCD Scaling Parameter 11 */
133 1.1 jmcneill {VIACR, CR85, 0xFF, 0x1D}, /* LCD Scaling Parameter 12 */
134 1.1 jmcneill {VIACR, CR86, 0xFF, 0x1E}, /* LCD Scaling Parameter 13 */
135 1.1 jmcneill {VIACR, CR87, 0xFF, 0x1F}, /* LCD Scaling Parameter 14 */
136 1.1 jmcneill {VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */
137 1.1 jmcneill {VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */
138 1.1 jmcneill {VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */
139 1.1 jmcneill {VIACR, CR8B, 0xFF, 0x69}, /* LCD Power Sequence Control 0 */
140 1.1 jmcneill {VIACR, CR8C, 0xFF, 0x57}, /* LCD Power Sequence Control 1 */
141 1.1 jmcneill {VIACR, CR8D, 0xFF, 0x00}, /* LCD Power Sequence Control 2 */
142 1.1 jmcneill {VIACR, CR8E, 0xFF, 0x7B}, /* LCD Power Sequence Control 3 */
143 1.1 jmcneill {VIACR, CR8F, 0xFF, 0x03}, /* LCD Power Sequence Control 4 */
144 1.1 jmcneill {VIACR, CR90, 0xFF, 0x30}, /* LCD Power Sequence Control 5 */
145 1.1 jmcneill {VIACR, CR91, 0xFF, 0xA0}, /* 24/12 bit LVDS Data off */
146 1.1 jmcneill {VIACR, CR96, 0xFF, 0x00},
147 1.1 jmcneill {VIACR, CR97, 0xFF, 0x00},
148 1.1 jmcneill {VIACR, CR99, 0xFF, 0x00},
149 1.1 jmcneill {VIACR, CR9B, 0xFF, 0x00}
150 1.1 jmcneill };
151 1.1 jmcneill #define NUM_TOTAL_CN400_ModeXregs ARRAY_SIZE(CN400_ModeXregs)
152 1.1 jmcneill
153 1.1 jmcneill /* Video Mode Table for VT3314 chipset*/
154 1.1 jmcneill /* Common Setting for Video Mode */
155 1.1 jmcneill struct io_reg CN900_ModeXregs[] = {
156 1.1 jmcneill {VIASR,SR10,0xFF,0x01},
157 1.1 jmcneill {VIASR,SR15,0x02,0x02},
158 1.1 jmcneill {VIASR,SR16,0xBF,0x08},
159 1.1 jmcneill {VIASR,SR17,0xFF,0x1F},
160 1.1 jmcneill {VIASR,SR18,0xFF,0x4E},
161 1.1 jmcneill {VIASR,SR1A,0xFB,0x82},
162 1.1 jmcneill {VIASR,SR1B,0xFF,0xF0},
163 1.1 jmcneill {VIASR,SR1F,0xFF,0x00},
164 1.1 jmcneill {VIASR,SR1E,0xFF,0xF1},
165 1.1 jmcneill {VIASR,SR22,0xFF,0x1F},
166 1.1 jmcneill {VIASR,SR2A,0x0F,0x0F},
167 1.1 jmcneill {VIASR,SR2E,0xFF,0xFF},
168 1.1 jmcneill {VIASR,SR3F,0xFF,0xFF},
169 1.1 jmcneill {VIASR,SR40,0xFF,0x00},
170 1.1 jmcneill {VIASR,CR30,0xFF,0x04},
171 1.1 jmcneill {VIACR,CR32,0xFF,0x00},
172 1.1 jmcneill {VIACR,CR33,0xFF,0x00},
173 1.1 jmcneill {VIACR,CR34,0xFF,0x00},
174 1.1 jmcneill {VIACR,CR35,0xFF,0x00},
175 1.1 jmcneill {VIACR,CR36,0xFF,0x31},
176 1.1 jmcneill {VIACR,CR41,0xFF,0x80},
177 1.1 jmcneill {VIACR,CR42,0xFF,0x00},
178 1.1 jmcneill {VIACR,CR5D,0x80,0x00}, /* Horizontal Retrace Start bit [11] should be 0*/
179 1.1 jmcneill {VIACR,CR62,0xFF,0x00}, /* Secondary Display Starting Address*/
180 1.1 jmcneill {VIACR,CR63,0xFF,0x00}, /* Secondary Display Starting Address*/
181 1.1 jmcneill {VIACR,CR64,0xFF,0x00}, /* Secondary Display Starting Address*/
182 1.1 jmcneill {VIACR,CR68,0xFF,0x67}, /* Default FIFO For IGA2 */
183 1.1 jmcneill {VIACR,CR69,0xFF,0x00},
184 1.1 jmcneill {VIACR,CR6A,0xFF,0x40},
185 1.1 jmcneill {VIACR,CR6B,0xFF,0x00},
186 1.1 jmcneill {VIACR,CR6C,0xFF,0x00},
187 1.1 jmcneill {VIACR,CR77,0xFF,0x00}, /* LCD scaling Factor*/
188 1.1 jmcneill {VIACR,CR78,0xFF,0x00}, /* LCD scaling Factor */
189 1.1 jmcneill {VIACR,CR79,0xFF,0x00}, /* LCD scaling Factor*/
190 1.1 jmcneill {VIACR,CR9F,0x03,0x00}, /* LCD scaling Factor */
191 1.1 jmcneill {VIACR,CR7A,0xFF,0x01}, /* LCD Scaling Parameter 1*/
192 1.1 jmcneill {VIACR,CR7B,0xFF,0x02}, /* LCD Scaling Parameter 2*/
193 1.1 jmcneill {VIACR,CR7C,0xFF,0x03}, /* LCD Scaling Parameter 3 */
194 1.1 jmcneill {VIACR,CR7D,0xFF,0x04}, /* LCD Scaling Parameter 4*/
195 1.1 jmcneill {VIACR,CR7E,0xFF,0x07}, /* LCD Scaling Parameter 5*/
196 1.1 jmcneill {VIACR,CR7F,0xFF,0x0A}, /* LCD Scaling Parameter 6*/
197 1.1 jmcneill {VIACR,CR80,0xFF,0x0D}, /* LCD Scaling Parameter 7*/
198 1.1 jmcneill {VIACR,CR81,0xFF,0x13}, /* LCD Scaling Parameter 8*/
199 1.1 jmcneill {VIACR,CR82,0xFF,0x16}, /* LCD Scaling Parameter 9*/
200 1.1 jmcneill {VIACR,CR83,0xFF,0x19}, /* LCD Scaling Parameter 10*/
201 1.1 jmcneill {VIACR,CR84,0xFF,0x1C}, /* LCD Scaling Parameter 11*/
202 1.1 jmcneill {VIACR,CR85,0xFF,0x1D}, /* LCD Scaling Parameter 12*/
203 1.1 jmcneill {VIACR,CR86,0xFF,0x1E}, /* LCD Scaling Parameter 13*/
204 1.1 jmcneill {VIACR,CR87,0xFF,0x1F}, /* LCD Scaling Parameter 14*/
205 1.1 jmcneill {VIACR,CR88,0xFF,0x40}, /* LCD Panel Type */
206 1.1 jmcneill {VIACR,CR89,0xFF,0x00}, /* LCD Timing Control 0 */
207 1.1 jmcneill {VIACR,CR8A,0xFF,0x88}, /* LCD Timing Control 1*/
208 1.1 jmcneill {VIACR,CR8B,0xFF,0x69}, /* LCD Power Sequence Control 0*/
209 1.1 jmcneill {VIACR,CR8C,0xFF,0x57}, /* LCD Power Sequence Control 1*/
210 1.1 jmcneill {VIACR,CR8D,0xFF,0x00}, /* LCD Power Sequence Control 2*/
211 1.1 jmcneill {VIACR,CR8E,0xFF,0x7B}, /* LCD Power Sequence Control 3*/
212 1.1 jmcneill {VIACR,CR8F,0xFF,0x03}, /* LCD Power Sequence Control 4*/
213 1.1 jmcneill {VIACR,CR90,0xFF,0x30}, /* LCD Power Sequence Control 5*/
214 1.1 jmcneill {VIACR,CR91,0xFF,0xA0}, /* 24/12 bit LVDS Data off*/
215 1.1 jmcneill {VIACR,CR96,0xFF,0x00},
216 1.1 jmcneill {VIACR,CR97,0xFF,0x00},
217 1.1 jmcneill {VIACR,CR99,0xFF,0x00},
218 1.1 jmcneill {VIACR,CR9B,0xFF,0x00},
219 1.1 jmcneill {VIACR,CR9D,0xFF,0x80},
220 1.1 jmcneill {VIACR,CR9E,0xFF,0x80}
221 1.1 jmcneill };
222 1.1 jmcneill #define NUM_TOTAL_CN900_ModeXregs ARRAY_SIZE(CN900_ModeXregs)
223 1.1 jmcneill
224 1.1 jmcneill struct io_reg KM400_ModeXregs[] = {
225 1.1 jmcneill {VIASR, SR10, 0xFF, 0x01}, /* Unlock Register */
226 1.1 jmcneill {VIASR, SR16, 0xFF, 0x08}, /* Display FIFO threshold Control */
227 1.1 jmcneill {VIASR, SR17, 0xFF, 0x1F}, /* Display FIFO Control */
228 1.1 jmcneill {VIASR, SR18, 0xFF, 0x4E}, /* GFX PREQ threshold */
229 1.1 jmcneill {VIASR, SR1A, 0xFF, 0x0a}, /* GFX PREQ threshold */
230 1.1 jmcneill {VIASR, SR1F, 0xFF, 0x00}, /* Memory Control 0 */
231 1.1 jmcneill {VIASR, SR1B, 0xFF, 0xF0}, /* Power Management Control 0 */
232 1.1 jmcneill {VIASR, SR1E, 0x0F, 0x01}, /* Power Management Control */
233 1.1 jmcneill {VIASR, SR20, 0xFF, 0x00}, /* Sequencer Arbiter Control 0 */
234 1.1 jmcneill {VIASR, SR21, 0xFF, 0x00}, /* Sequencer Arbiter Control 1 */
235 1.1 jmcneill {VIASR, SR22, 0xFF, 0x1F}, /* Display Arbiter Control 1 */
236 1.1 jmcneill {VIASR, SR2A, 0xF0, 0x00}, /* Power Management Control 5 */
237 1.1 jmcneill {VIASR, SR2D, 0xFF, 0xFF}, /* Power Management Control 1 */
238 1.1 jmcneill {VIASR, SR2E, 0xFF, 0xFF}, /* Power Management Control 2 */
239 1.1 jmcneill {VIACR, CR0A, 0xFF, 0x1E}, /* Cursor Start */
240 1.1 jmcneill {VIACR, CR0B, 0xFF, 0x00}, /* Cursor End */
241 1.1 jmcneill {VIACR, CR0E, 0xFF, 0x00}, /* Cursor Location High */
242 1.1 jmcneill {VIACR, CR0F, 0xFF, 0x00}, /* Cursor Localtion Low */
243 1.1 jmcneill {VIACR, CR33, 0xFF, 0x00},
244 1.1 jmcneill {VIACR, CR55, 0x80, 0x00},
245 1.1 jmcneill {VIACR, CR5D, 0x80, 0x00},
246 1.2 andvar {VIACR, CR36, 0xFF, 0x01}, /* Power Management 3 */
247 1.1 jmcneill {VIACR, CR62, 0xFF, 0x00}, /* Secondary Display Starting Address */
248 1.1 jmcneill {VIACR, CR63, 0xFF, 0x00}, /* Secondary Display Starting Address */
249 1.1 jmcneill {VIACR, CR64, 0xFF, 0x00}, /* Secondary Display Starting Address */
250 1.1 jmcneill {VIACR, CR68, 0xFF, 0x67}, /* Default FIFO For IGA2 */
251 1.1 jmcneill {VIACR, CR6A, 0x20, 0x20}, /* Extended FIFO On */
252 1.1 jmcneill {VIACR, CR7A, 0xFF, 0x01}, /* LCD Scaling Parameter 1 */
253 1.1 jmcneill {VIACR, CR7B, 0xFF, 0x02}, /* LCD Scaling Parameter 2 */
254 1.1 jmcneill {VIACR, CR7C, 0xFF, 0x03}, /* LCD Scaling Parameter 3 */
255 1.1 jmcneill {VIACR, CR7D, 0xFF, 0x04}, /* LCD Scaling Parameter 4 */
256 1.1 jmcneill {VIACR, CR7E, 0xFF, 0x07}, /* LCD Scaling Parameter 5 */
257 1.1 jmcneill {VIACR, CR7F, 0xFF, 0x0A}, /* LCD Scaling Parameter 6 */
258 1.1 jmcneill {VIACR, CR80, 0xFF, 0x0D}, /* LCD Scaling Parameter 7 */
259 1.1 jmcneill {VIACR, CR81, 0xFF, 0x13}, /* LCD Scaling Parameter 8 */
260 1.1 jmcneill {VIACR, CR82, 0xFF, 0x16}, /* LCD Scaling Parameter 9 */
261 1.1 jmcneill {VIACR, CR83, 0xFF, 0x19}, /* LCD Scaling Parameter 10 */
262 1.1 jmcneill {VIACR, CR84, 0xFF, 0x1C}, /* LCD Scaling Parameter 11 */
263 1.1 jmcneill {VIACR, CR85, 0xFF, 0x1D}, /* LCD Scaling Parameter 12 */
264 1.1 jmcneill {VIACR, CR86, 0xFF, 0x1E}, /* LCD Scaling Parameter 13 */
265 1.1 jmcneill {VIACR, CR87, 0xFF, 0x1F}, /* LCD Scaling Parameter 14 */
266 1.1 jmcneill {VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */
267 1.1 jmcneill {VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */
268 1.1 jmcneill {VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */
269 1.1 jmcneill {VIACR, CR8B, 0xFF, 0x2D}, /* LCD Power Sequence Control 0 */
270 1.1 jmcneill {VIACR, CR8C, 0xFF, 0x2D}, /* LCD Power Sequence Control 1 */
271 1.1 jmcneill {VIACR, CR8D, 0xFF, 0xC8}, /* LCD Power Sequence Control 2 */
272 1.1 jmcneill {VIACR, CR8E, 0xFF, 0x36}, /* LCD Power Sequence Control 3 */
273 1.1 jmcneill {VIACR, CR8F, 0xFF, 0x00}, /* LCD Power Sequence Control 4 */
274 1.1 jmcneill {VIACR, CR90, 0xFF, 0x10}, /* LCD Power Sequence Control 5 */
275 1.1 jmcneill {VIACR, CR91, 0xFF, 0xA0}, /* 24/12 bit LVDS Data off */
276 1.1 jmcneill {VIACR, CR96, 0xFF, 0x03}, /* TV on DVP0 ; DVP0 Clock Skew */
277 1.1 jmcneill {VIACR, CR97, 0xFF, 0x03}, /* TV on DFP high ; DFPH Clock Skew */
278 1.1 jmcneill {VIACR, CR99, 0xFF, 0x03}, /* DFP low ; DFPL Clock Skew */
279 1.1 jmcneill {VIACR, CR9B, 0xFF, 0x07} /* DVI on DVP1 ; DVP1 Clock Skew */
280 1.1 jmcneill };
281 1.1 jmcneill #define NUM_TOTAL_KM400_ModeXregs ARRAY_SIZE(KM400_ModeXregs)
282 1.1 jmcneill
283 1.1 jmcneill /* For VT3324: Common Setting for Video Mode */
284 1.1 jmcneill struct io_reg CX700_ModeXregs[] = {
285 1.1 jmcneill {VIASR, SR10, 0xFF, 0x01},
286 1.1 jmcneill {VIASR, SR15, 0x02, 0x02},
287 1.1 jmcneill {VIASR, SR16, 0xBF, 0x08},
288 1.1 jmcneill {VIASR, SR17, 0xFF, 0x1F},
289 1.1 jmcneill {VIASR, SR18, 0xFF, 0x4E},
290 1.1 jmcneill {VIASR, SR1A, 0xFB, 0x08},
291 1.1 jmcneill {VIASR, SR1B, 0xFF, 0xF0},
292 1.1 jmcneill {VIASR, SR1E, 0x0F, 0x01},
293 1.1 jmcneill {VIASR, SR2A, 0xF0, 0x00},
294 1.1 jmcneill {VIACR, CR0A, 0xFF, 0x1E}, /* Cursor Start */
295 1.1 jmcneill {VIACR, CR0B, 0xFF, 0x00}, /* Cursor End */
296 1.1 jmcneill {VIACR, CR0E, 0xFF, 0x00}, /* Cursor Location High */
297 1.1 jmcneill {VIACR, CR0F, 0xFF, 0x00}, /* Cursor Localtion Low */
298 1.1 jmcneill {VIACR, CR32, 0xFF, 0x00},
299 1.1 jmcneill {VIACR, CR33, 0xFF, 0x00},
300 1.1 jmcneill {VIACR, CR34, 0xFF, 0x00},
301 1.1 jmcneill {VIACR, CR35, 0xFF, 0x00},
302 1.1 jmcneill {VIACR, CR36, 0x08, 0x00},
303 1.1 jmcneill {VIACR, CR47, 0xC8, 0x00}, /* Clear VCK Plus. */
304 1.1 jmcneill {VIACR, CR62, 0xFF, 0x00}, /* Secondary Display Starting Address */
305 1.1 jmcneill {VIACR, CR63, 0xFF, 0x00}, /* Secondary Display Starting Address */
306 1.1 jmcneill {VIACR, CR64, 0xFF, 0x00}, /* Secondary Display Starting Address */
307 1.1 jmcneill {VIACR, CRA3, 0xFF, 0x00}, /* Secondary Display Starting Address */
308 1.1 jmcneill {VIACR, CR69, 0xFF, 0x00},
309 1.1 jmcneill {VIACR, CR6A, 0xFF, 0x40},
310 1.1 jmcneill {VIACR, CR6B, 0xFF, 0x00},
311 1.1 jmcneill {VIACR, CR6C, 0xFF, 0x00},
312 1.1 jmcneill {VIACR, CR7A, 0xFF, 0x01}, /* LCD Scaling Parameter 1 */
313 1.1 jmcneill {VIACR, CR7B, 0xFF, 0x02}, /* LCD Scaling Parameter 2 */
314 1.1 jmcneill {VIACR, CR7C, 0xFF, 0x03}, /* LCD Scaling Parameter 3 */
315 1.1 jmcneill {VIACR, CR7D, 0xFF, 0x04}, /* LCD Scaling Parameter 4 */
316 1.1 jmcneill {VIACR, CR7E, 0xFF, 0x07}, /* LCD Scaling Parameter 5 */
317 1.1 jmcneill {VIACR, CR7F, 0xFF, 0x0A}, /* LCD Scaling Parameter 6 */
318 1.1 jmcneill {VIACR, CR80, 0xFF, 0x0D}, /* LCD Scaling Parameter 7 */
319 1.1 jmcneill {VIACR, CR81, 0xFF, 0x13}, /* LCD Scaling Parameter 8 */
320 1.1 jmcneill {VIACR, CR82, 0xFF, 0x16}, /* LCD Scaling Parameter 9 */
321 1.1 jmcneill {VIACR, CR83, 0xFF, 0x19}, /* LCD Scaling Parameter 10 */
322 1.1 jmcneill {VIACR, CR84, 0xFF, 0x1C}, /* LCD Scaling Parameter 11 */
323 1.1 jmcneill {VIACR, CR85, 0xFF, 0x1D}, /* LCD Scaling Parameter 12 */
324 1.1 jmcneill {VIACR, CR86, 0xFF, 0x1E}, /* LCD Scaling Parameter 13 */
325 1.1 jmcneill {VIACR, CR87, 0xFF, 0x1F}, /* LCD Scaling Parameter 14 */
326 1.1 jmcneill {VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */
327 1.1 jmcneill {VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */
328 1.1 jmcneill {VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */
329 1.1 jmcneill {VIACR, CRD4, 0xFF, 0x81}, /* Second power sequence control */
330 1.1 jmcneill {VIACR, CR8B, 0xFF, 0x5D}, /* LCD Power Sequence Control 0 */
331 1.1 jmcneill {VIACR, CR8C, 0xFF, 0x2B}, /* LCD Power Sequence Control 1 */
332 1.1 jmcneill {VIACR, CR8D, 0xFF, 0x6F}, /* LCD Power Sequence Control 2 */
333 1.1 jmcneill {VIACR, CR8E, 0xFF, 0x2B}, /* LCD Power Sequence Control 3 */
334 1.1 jmcneill {VIACR, CR8F, 0xFF, 0x01}, /* LCD Power Sequence Control 4 */
335 1.1 jmcneill {VIACR, CR90, 0xFF, 0x01}, /* LCD Power Sequence Control 5 */
336 1.1 jmcneill {VIACR, CR91, 0xFF, 0x80}, /* 24/12 bit LVDS Data off */
337 1.1 jmcneill {VIACR, CR96, 0xFF, 0x00},
338 1.1 jmcneill {VIACR, CR97, 0xFF, 0x00},
339 1.1 jmcneill {VIACR, CR99, 0xFF, 0x00},
340 1.1 jmcneill {VIACR, CR9B, 0xFF, 0x00},
341 1.1 jmcneill {VIACR, CRD2, 0xFF, 0x03} /* LVDS0/LVDS1 Channel format. */
342 1.1 jmcneill };
343 1.1 jmcneill
344 1.1 jmcneill #define NUM_TOTAL_CX700_ModeXregs ARRAY_SIZE(CX700_ModeXregs)
345 1.1 jmcneill
346 1.1 jmcneill /* Video Mode Table */
347 1.1 jmcneill /* Common Setting for Video Mode */
348 1.1 jmcneill struct io_reg CLE266_ModeXregs[] = {
349 1.1 jmcneill {VIASR,SR1E,0xF0,0xF0},
350 1.1 jmcneill {VIASR,SR2A,0x0F,0x0F},
351 1.1 jmcneill {VIASR,SR15,0x02,0x02},
352 1.1 jmcneill {VIASR,SR16,0xBF,0x08},
353 1.1 jmcneill {VIASR,SR17,0xFF,0x1F},
354 1.1 jmcneill {VIASR,SR18,0xFF,0x4E},
355 1.1 jmcneill {VIASR,SR1A,0xFB,0x08},
356 1.1 jmcneill
357 1.1 jmcneill {VIACR,CR32,0xFF,0x00},
358 1.1 jmcneill // {VIACR,CR33,0xFF,0x08}, // for K800 prefetch mode
359 1.1 jmcneill {VIACR,CR34,0xFF,0x00},
360 1.1 jmcneill {VIACR,CR35,0xFF,0x00},
361 1.1 jmcneill {VIACR,CR36,0x08,0x00},
362 1.1 jmcneill {VIACR,CR6A,0xFF,0x80},
363 1.1 jmcneill {VIACR,CR6A,0xFF,0xC0},
364 1.1 jmcneill
365 1.1 jmcneill {VIACR,CR55,0x80,0x00},
366 1.1 jmcneill {VIACR,CR5D,0x80,0x00},
367 1.1 jmcneill
368 1.1 jmcneill {VIAGR,GR20,0xFF,0x00},
369 1.1 jmcneill {VIAGR,GR21,0xFF,0x00},
370 1.1 jmcneill {VIAGR,GR22,0xFF,0x00},
371 1.1 jmcneill // LCD Parameters
372 1.1 jmcneill {VIACR,CR7A,0xFF,0x01}, // LCD Parameter 1
373 1.1 jmcneill {VIACR,CR7B,0xFF,0x02}, // LCD Parameter 2
374 1.1 jmcneill {VIACR,CR7C,0xFF,0x03}, // LCD Parameter 3
375 1.1 jmcneill {VIACR,CR7D,0xFF,0x04}, // LCD Parameter 4
376 1.1 jmcneill {VIACR,CR7E,0xFF,0x07}, // LCD Parameter 5
377 1.1 jmcneill {VIACR,CR7F,0xFF,0x0A}, // LCD Parameter 6
378 1.1 jmcneill {VIACR,CR80,0xFF,0x0D}, // LCD Parameter 7
379 1.1 jmcneill {VIACR,CR81,0xFF,0x13}, // LCD Parameter 8
380 1.1 jmcneill {VIACR,CR82,0xFF,0x16}, // LCD Parameter 9
381 1.1 jmcneill {VIACR,CR83,0xFF,0x19}, // LCD Parameter 10
382 1.1 jmcneill {VIACR,CR84,0xFF,0x1C}, // LCD Parameter 11
383 1.1 jmcneill {VIACR,CR85,0xFF,0x1D}, // LCD Parameter 12
384 1.1 jmcneill {VIACR,CR86,0xFF,0x1E}, // LCD Parameter 13
385 1.1 jmcneill {VIACR,CR87,0xFF,0x1F}, // LCD Parameter 14
386 1.1 jmcneill
387 1.1 jmcneill };
388 1.1 jmcneill
389 1.1 jmcneill #define NUM_TOTAL_CLE266_ModeXregs ARRAY_SIZE(CLE266_ModeXregs)
390 1.1 jmcneill
391 1.1 jmcneill /* Mode:1024X768 */
392 1.1 jmcneill struct io_reg PM1024x768[] = {
393 1.1 jmcneill {VIASR,0x16,0xBF,0x0C},
394 1.1 jmcneill {VIASR,0x18,0xFF,0x4C}
395 1.1 jmcneill };
396 1.1 jmcneill
397 1.1 jmcneill struct patch_table res_patch_table[]= {
398 1.1 jmcneill {VIA_RES_1024X768, ARRAY_SIZE(PM1024x768), PM1024x768}
399 1.1 jmcneill };
400 1.1 jmcneill #define NUM_TOTAL_PATCH_MODE ARRAY_SIZE(res_patch_table)
401 1.1 jmcneill
402 1.1 jmcneill // struct VPITTable {
403 1.1 jmcneill // unsigned char Misc;
404 1.1 jmcneill // unsigned char SR[StdSR];
405 1.1 jmcneill // unsigned char CR[StdCR];
406 1.1 jmcneill // unsigned char GR[StdGR];
407 1.1 jmcneill // unsigned char AR[StdAR];
408 1.1 jmcneill // };
409 1.1 jmcneill
410 1.1 jmcneill struct VPITTable VPIT = {
411 1.1 jmcneill // Msic
412 1.1 jmcneill 0xC7,
413 1.1 jmcneill // Sequencer
414 1.1 jmcneill {0x01,0x0F,0x00,0x0E },
415 1.1 jmcneill // Graphic Controller
416 1.1 jmcneill {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0xFF},
417 1.1 jmcneill // Attribute Controller
418 1.1 jmcneill {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
419 1.1 jmcneill 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
420 1.1 jmcneill 0x01,0x00,0x0F,0x00}
421 1.1 jmcneill };
422 1.1 jmcneill
423 1.1 jmcneill /********************/
424 1.1 jmcneill /* Mode Table */
425 1.1 jmcneill /********************/
426 1.1 jmcneill
427 1.1 jmcneill // 640x480
428 1.1 jmcneill struct crt_mode_table CRTM640x480[] = {
429 1.1 jmcneill //r_rate,vclk,hsp,vsp
430 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
431 1.1 jmcneill {REFRESH_60, CLK_25_175M ,M640X480_R60_HSP, M640X480_R60_VSP,\
432 1.1 jmcneill {800, 640, 648, 144, 656, 96, 525, 480, 480, 45, 490, 2}},
433 1.1 jmcneill {REFRESH_75, CLK_31_500M ,M640X480_R75_HSP, M640X480_R75_VSP,\
434 1.1 jmcneill {840, 640, 640, 200, 656, 64, 500, 480, 480, 20, 481, 3}},
435 1.1 jmcneill {REFRESH_85, CLK_36_000M ,M640X480_R85_HSP, M640X480_R85_VSP,\
436 1.1 jmcneill {832, 640, 640, 192, 696, 56, 509, 480, 480, 29, 481, 3}},
437 1.1 jmcneill {REFRESH_100,CLK_43_163M ,M640X480_R100_HSP, M640X480_R100_VSP,\
438 1.1 jmcneill {848, 640, 640, 208, 680, 64, 509, 480, 480, 29, 481, 3}}, //GTF
439 1.1 jmcneill {REFRESH_120,CLK_52_406M ,M640X480_R120_HSP, M640X480_R120_VSP,\
440 1.1 jmcneill {848, 640, 640, 208, 680, 64, 515, 480, 480, 35, 481, 3}} //GTF
441 1.1 jmcneill };
442 1.1 jmcneill
443 1.1 jmcneill //720x480 (GTF)
444 1.1 jmcneill struct crt_mode_table CRTM720x480[] = {
445 1.1 jmcneill //r_rate,vclk,hsp,vsp
446 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
447 1.1 jmcneill {REFRESH_60,CLK_26_880M ,M720X480_R60_HSP, M720X480_R60_VSP,\
448 1.1 jmcneill {896, 720, 720, 176, 736, 72, 497, 480, 480, 17, 481, 3}}
449 1.1 jmcneill
450 1.1 jmcneill };
451 1.1 jmcneill
452 1.1 jmcneill //720x576 (GTF)
453 1.1 jmcneill struct crt_mode_table CRTM720x576[] = {
454 1.1 jmcneill //r_rate,vclk,hsp,vsp
455 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
456 1.1 jmcneill {REFRESH_60,CLK_32_668M ,M720X576_R60_HSP, M720X576_R60_VSP,\
457 1.1 jmcneill {912, 720, 720, 192, 744, 72, 597, 576, 576, 21, 577, 3}}
458 1.1 jmcneill };
459 1.1 jmcneill
460 1.1 jmcneill //800x480 (GTF)
461 1.1 jmcneill struct crt_mode_table CRTM800x480[] = {
462 1.1 jmcneill //r_rate,vclk,hsp,vsp
463 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
464 1.1 jmcneill {REFRESH_60,CLK_29_581M ,M800X480_R60_HSP,M800X480_R60_VSP,\
465 1.1 jmcneill {992, 800, 800, 192, 816, 80, 497, 480, 480, 17, 481, 3}}
466 1.1 jmcneill };
467 1.1 jmcneill // 800x600
468 1.1 jmcneill struct crt_mode_table CRTM800x600[] = {
469 1.1 jmcneill //r_rate,vclk,hsp,vsp
470 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
471 1.1 jmcneill {REFRESH_60, CLK_40_000M ,M800X600_R60_HSP, M800X600_R60_VSP,\
472 1.1 jmcneill {1056, 800, 800, 256, 840, 128, 628, 600, 600, 28, 601, 4}},
473 1.1 jmcneill {REFRESH_75, CLK_49_500M ,M800X600_R75_HSP, M800X600_R75_VSP,\
474 1.1 jmcneill {1056, 800, 800, 256, 816, 80, 625, 600, 600, 25, 601, 3}},
475 1.1 jmcneill {REFRESH_85, CLK_56_250M ,M800X600_R85_HSP, M800X600_R85_VSP,\
476 1.1 jmcneill {1048, 800, 800, 248, 832, 64, 631, 600, 600, 31, 601, 3}},
477 1.1 jmcneill {REFRESH_100,CLK_68_179M ,M800X600_R100_HSP, M800X600_R100_VSP,\
478 1.1 jmcneill {1072, 800, 800, 272, 848, 88, 636, 600, 600, 36, 601, 3}}, //GTF
479 1.1 jmcneill {REFRESH_120,CLK_83_950M ,M800X600_R120_HSP, M800X600_R120_VSP,\
480 1.1 jmcneill {1088, 800, 800, 288, 856, 88, 643, 600, 600, 43, 601, 3}} //GTF
481 1.1 jmcneill };
482 1.1 jmcneill //848x480 (GTF)
483 1.1 jmcneill struct crt_mode_table CRTM848x480[] = {
484 1.1 jmcneill //r_rate,vclk,hsp,vsp
485 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
486 1.1 jmcneill {REFRESH_60,CLK_31_490M ,M848X480_R60_HSP, M848X480_R60_VSP,\
487 1.1 jmcneill {1056, 848, 848, 208, 864, 88, 497, 480, 480, 17, 481, 3}}
488 1.1 jmcneill };
489 1.1 jmcneill
490 1.1 jmcneill //856x480 (GTF) convert to 852x480
491 1.1 jmcneill struct crt_mode_table CRTM852x480[] = {
492 1.1 jmcneill //r_rate,vclk,hsp,vsp
493 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
494 1.1 jmcneill {REFRESH_60,CLK_31_728M ,M852X480_R60_HSP, M852X480_R60_VSP,\
495 1.1 jmcneill {1064, 856, 856, 208, 872, 88, 497, 480, 480, 17, 481, 3}}
496 1.1 jmcneill
497 1.1 jmcneill };
498 1.1 jmcneill
499 1.1 jmcneill //1024x512 (GTF)
500 1.1 jmcneill struct crt_mode_table CRTM1024x512[] = {
501 1.1 jmcneill //r_rate,vclk,hsp,vsp
502 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
503 1.1 jmcneill {REFRESH_60,CLK_41_291M ,M1024X512_R60_HSP, M1024X512_R60_VSP,\
504 1.1 jmcneill {1296, 1024,1024,272, 1056,104, 531, 512, 512, 19, 513, 3}}
505 1.1 jmcneill
506 1.1 jmcneill };
507 1.1 jmcneill
508 1.1 jmcneill //1024x576 (GTF)
509 1.1 jmcneill /*static struct crt_mode_table CRTM1024x576[] = {
510 1.1 jmcneill //r_rate,vclk, HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
511 1.1 jmcneill { 60,CLK_46_996M ,{1312, 1024,1024,288, 1064,104, 597, 576, 576, 21, 577, 3}}
512 1.1 jmcneill
513 1.1 jmcneill };*/
514 1.1 jmcneill
515 1.1 jmcneill // 1024x768
516 1.1 jmcneill struct crt_mode_table CRTM1024x768[] = {
517 1.1 jmcneill //r_rate,vclk,hsp,vsp
518 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
519 1.1 jmcneill {REFRESH_60,CLK_65_000M ,M1024X768_R60_HSP, M1024X768_R60_VSP,\
520 1.1 jmcneill {1344, 1024, 1024, 320, 1048, 136, 806, 768, 768, 38, 771, 6}},
521 1.1 jmcneill {REFRESH_75,CLK_78_750M ,M1024X768_R75_HSP, M1024X768_R75_VSP,\
522 1.1 jmcneill {1312, 1024, 1024, 288, 1040, 96, 800, 768, 768, 32, 769, 3}},
523 1.1 jmcneill {REFRESH_85,CLK_94_500M ,M1024X768_R85_HSP, M1024X768_R85_VSP,\
524 1.1 jmcneill {1376, 1024, 1024, 352, 1072, 96, 808, 768, 768, 40, 769, 3}},
525 1.1 jmcneill {REFRESH_100,CLK_133_308M,M1024X768_R100_HSP, M1024X768_R100_VSP,\
526 1.1 jmcneill {1392, 1024, 1024, 368, 1096, 112, 814, 768, 768, 46, 769, 3}} //GTF
527 1.1 jmcneill };
528 1.1 jmcneill
529 1.1 jmcneill // 1152x864
530 1.1 jmcneill struct crt_mode_table CRTM1152x864[] = {
531 1.1 jmcneill //r_rate,vclk,hsp,vsp
532 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
533 1.1 jmcneill {REFRESH_75,CLK_108_000M ,M1152X864_R75_HSP, M1152X864_R75_VSP,\
534 1.1 jmcneill {1600, 1152,1152, 448, 1216, 128, 900, 864, 864, 36, 865, 3}}
535 1.1 jmcneill
536 1.1 jmcneill };
537 1.1 jmcneill
538 1.1 jmcneill // 1280x720 (GTF)
539 1.1 jmcneill struct crt_mode_table CRTM1280x720[] = {
540 1.1 jmcneill //r_rate,vclk,hsp,vsp
541 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
542 1.1 jmcneill {REFRESH_60,CLK_74_481M ,M1280X720_R60_HSP, M1280X720_R60_VSP,\
543 1.1 jmcneill {1664,1280, 1280, 384, 1336, 136, 746, 720, 720, 26, 721, 3}}
544 1.1 jmcneill };
545 1.1 jmcneill
546 1.1 jmcneill //1280x768 (GTF)
547 1.1 jmcneill struct crt_mode_table CRTM1280x768[] = {
548 1.1 jmcneill //r_rate,vclk,hsp,vsp
549 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
550 1.1 jmcneill {REFRESH_60,CLK_80_136M ,M1280X768_R60_HSP, M1280X768_R60_VSP,\
551 1.1 jmcneill {1680,1280, 1280, 400, 1344, 136, 795, 768, 768, 27, 769, 3}}
552 1.1 jmcneill };
553 1.1 jmcneill
554 1.1 jmcneill //1280x960
555 1.1 jmcneill struct crt_mode_table CRTM1280x960[] = {
556 1.1 jmcneill //r_rate,vclk,hsp,vsp
557 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
558 1.1 jmcneill {REFRESH_60,CLK_108_000M ,M1280X960_R60_HSP, M1280X960_R60_VSP,\
559 1.1 jmcneill {1800,1280, 1280, 520, 1376, 112, 1000,960, 960, 40, 961, 3}}
560 1.1 jmcneill };
561 1.1 jmcneill
562 1.1 jmcneill // 1280x1024
563 1.1 jmcneill struct crt_mode_table CRTM1280x1024[] = {
564 1.1 jmcneill //r_rate,vclk,,hsp,vsp
565 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
566 1.1 jmcneill {REFRESH_60,CLK_108_000M ,M1280X1024_R60_HSP, M1280X1024_R60_VSP,\
567 1.1 jmcneill {1688,1280, 1280, 408, 1328, 112, 1066,1024,1024,42, 1025,3}},
568 1.1 jmcneill {REFRESH_75,CLK_135_000M ,M1280X1024_R75_HSP, M1280X1024_R75_VSP,\
569 1.1 jmcneill {1688,1280, 1280, 408, 1296, 144, 1066,1024,1024,42, 1025,3}},
570 1.1 jmcneill {REFRESH_85,CLK_157_500M ,M1280X1024_R85_HSP, M1280X1024_R85_VSP,\
571 1.1 jmcneill {1728,1280, 1280, 448, 1344, 160, 1072,1024,1024,48, 1025,3}}
572 1.1 jmcneill };
573 1.1 jmcneill
574 1.1 jmcneill /* 1366x768 (GTF) */
575 1.1 jmcneill struct crt_mode_table CRTM1366x768[] = {
576 1.1 jmcneill // r_rate, vclk, hsp, vsp
577 1.1 jmcneill // HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
578 1.1 jmcneill {REFRESH_60, CLK_85_860M, M1368X768_R60_HSP, M1368X768_R60_VSP,\
579 1.1 jmcneill {1800,1366, 1366, 432, 1440, 144, 795, 768, 768, 27, 769, 3}}
580 1.1 jmcneill };
581 1.1 jmcneill
582 1.1 jmcneill //1368x768 (GTF)
583 1.1 jmcneill /*static struct crt_mode_table CRTM1368x768[] = {
584 1.1 jmcneill //r_rate,vclk, HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
585 1.1 jmcneill { 60,CLK_85_860M ,{1800,1368, 1368, 432, 1440, 144, 795, 768, 768, 27, 769, 3}}
586 1.1 jmcneill };*/
587 1.1 jmcneill
588 1.1 jmcneill //1440x1050 (GTF)
589 1.1 jmcneill struct crt_mode_table CRTM1440x1050[] = {
590 1.1 jmcneill //r_rate,vclk,hsp,vsp
591 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
592 1.1 jmcneill {REFRESH_60 ,CLK_125_104M ,M1440X1050_R60_HSP, M1440X1050_R60_VSP,\
593 1.1 jmcneill {1936,1440, 1440, 496, 1536, 152, 1077,1040,1040,37, 1041,3}}
594 1.1 jmcneill };
595 1.1 jmcneill
596 1.1 jmcneill // 1600x1200
597 1.1 jmcneill struct crt_mode_table CRTM1600x1200[] = {
598 1.1 jmcneill //r_rate,vclk,hsp,vsp
599 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
600 1.1 jmcneill {REFRESH_60 ,CLK_162_000M ,M1600X1200_R60_HSP, M1600X1200_R60_VSP,\
601 1.1 jmcneill {2160,1600, 1600, 560, 1664, 192, 1250,1200,1200,50, 1201,3}},
602 1.1 jmcneill {REFRESH_75 ,CLK_202_500M ,M1600X1200_R75_HSP, M1600X1200_R75_VSP,\
603 1.1 jmcneill {2160,1600, 1600, 560, 1664, 192, 1250,1200,1200,50, 1201,3}}
604 1.1 jmcneill
605 1.1 jmcneill };
606 1.1 jmcneill
607 1.1 jmcneill // 1920x1080 (GTF)
608 1.1 jmcneill struct crt_mode_table CRTM1920x1080[] = {
609 1.1 jmcneill //r_rate,vclk,hsp,vsp
610 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
611 1.1 jmcneill {REFRESH_60,CLK_172_798M ,M1920X1080_R60_HSP, M1920X1080_R60_VSP,\
612 1.1 jmcneill {2576,1920, 1920, 656, 2040, 208, 1118,1080,1080,38, 1081, 3}}
613 1.1 jmcneill };
614 1.1 jmcneill
615 1.1 jmcneill // 1920x1440
616 1.1 jmcneill struct crt_mode_table CRTM1920x1440[] = {
617 1.1 jmcneill //r_rate,vclk,hsp,vsp
618 1.1 jmcneill //HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE
619 1.1 jmcneill {REFRESH_60,CLK_234_000M ,M1920X1440_R60_HSP, M1920X1440_R60_VSP,\
620 1.1 jmcneill {2600,1920, 1920, 680, 2048, 208, 1500,1440,1440,60, 1441,3}},
621 1.1 jmcneill {REFRESH_75,CLK_297_500M ,M1920X1440_R75_HSP, M1920X1440_R75_VSP,\
622 1.1 jmcneill {2640,1920, 1920, 720, 2064, 224, 1500,1440,1440,60, 1441,3}}
623 1.1 jmcneill };
624 1.1 jmcneill
625 1.1 jmcneill /* 1400x1050 (VESA) */
626 1.1 jmcneill struct crt_mode_table CRTM1400x1050[] = {
627 1.1 jmcneill /* r_rate, vclk, hsp, vsp */
628 1.1 jmcneill /* HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE */
629 1.1 jmcneill {REFRESH_60,CLK_108_000M, M1400X1050_R60_HSP, M1400X1050_R60_VSP,
630 1.1 jmcneill {1688,1400, 1400, 288, 1448, 112, 1066,1050, 1050, 16, 1051, 3}}
631 1.1 jmcneill };
632 1.1 jmcneill
633 1.1 jmcneill /* Video Mode Table */
634 1.1 jmcneill // struct VideoModeTable {
635 1.1 jmcneill // int ModeIndex;
636 1.1 jmcneill // struct crt_mode_table *crtc;
637 1.1 jmcneill // int mode_array;
638 1.1 jmcneill // };
639 1.1 jmcneill struct VideoModeTable CLE266Modes[] = {
640 1.1 jmcneill /* Display : 640x480 */
641 1.1 jmcneill { VIA_RES_640X480, CRTM640x480, ARRAY_SIZE(CRTM640x480)},
642 1.1 jmcneill
643 1.1 jmcneill /* Display : 720x480 (GTF)*/
644 1.1 jmcneill { VIA_RES_720X480, CRTM720x480, ARRAY_SIZE(CRTM720x480)},
645 1.1 jmcneill
646 1.1 jmcneill /* Display : 720x576 (GTF)*/
647 1.1 jmcneill { VIA_RES_720X576, CRTM720x576, ARRAY_SIZE(CRTM720x576)},
648 1.1 jmcneill
649 1.1 jmcneill /* Display : 800x600 */
650 1.1 jmcneill { VIA_RES_800X600, CRTM800x600, ARRAY_SIZE(CRTM800x600)},
651 1.1 jmcneill
652 1.1 jmcneill /* Display : 800x480 (GTF)*/
653 1.1 jmcneill { VIA_RES_800X480, CRTM800x480, ARRAY_SIZE(CRTM800x480)},
654 1.1 jmcneill
655 1.1 jmcneill /* Display : 848x480 (GTF)*/
656 1.1 jmcneill { VIA_RES_848X480, CRTM848x480, ARRAY_SIZE(CRTM848x480)},
657 1.1 jmcneill
658 1.1 jmcneill /* Display : 852x480 (GTF)*/
659 1.1 jmcneill { VIA_RES_856X480, CRTM852x480, ARRAY_SIZE(CRTM852x480)},
660 1.1 jmcneill
661 1.1 jmcneill /* Display : 1024x512 (GTF)*/
662 1.1 jmcneill { VIA_RES_1024X512, CRTM1024x512, ARRAY_SIZE(CRTM1024x512)},
663 1.1 jmcneill
664 1.1 jmcneill /* Display : 1024x576 (GTF)*/
665 1.1 jmcneill //{ VIA_RES_1024X576, CRTM1024x576, ARRAY_SIZE(CRTM1024x576)},
666 1.1 jmcneill
667 1.1 jmcneill /* Display : 1024x768 */
668 1.1 jmcneill { VIA_RES_1024X768, CRTM1024x768, ARRAY_SIZE(CRTM1024x768)},
669 1.1 jmcneill
670 1.1 jmcneill /* Display : 1152x864 */
671 1.1 jmcneill { VIA_RES_1152X864, CRTM1152x864, ARRAY_SIZE(CRTM1152x864)},
672 1.1 jmcneill
673 1.1 jmcneill /* Display : 1280x768 (GTF)*/
674 1.1 jmcneill { VIA_RES_1280X768, CRTM1280x768, ARRAY_SIZE(CRTM1280x768)},
675 1.1 jmcneill
676 1.1 jmcneill /* Display : 1280x800 (GTF)*/
677 1.1 jmcneill //{ M1280x800, CRTM1280x800, ARRAY_SIZE(CRTM1280x800)},
678 1.1 jmcneill
679 1.1 jmcneill /* Display : 1280x960 */
680 1.1 jmcneill { VIA_RES_1280X960, CRTM1280x960, ARRAY_SIZE(CRTM1280x960)},
681 1.1 jmcneill
682 1.1 jmcneill /* Display : 1280x1024 */
683 1.1 jmcneill { VIA_RES_1280X1024, CRTM1280x1024,ARRAY_SIZE(CRTM1280x1024)},
684 1.1 jmcneill
685 1.1 jmcneill /* Display : 1368x768 (GTF)*/
686 1.1 jmcneill //{ M1368x768,CRTM1368x768,ARRAY_SIZE(CRTM1368x768)},
687 1.1 jmcneill /* Display : 1366x768 (GTF)*/
688 1.1 jmcneill { VIA_RES_1366X768,CRTM1366x768,ARRAY_SIZE(CRTM1366x768)},
689 1.1 jmcneill
690 1.1 jmcneill /* Display : 1440x1050 (GTF)*/
691 1.1 jmcneill { VIA_RES_1440X1050, CRTM1440x1050, ARRAY_SIZE(CRTM1440x1050)},
692 1.1 jmcneill
693 1.1 jmcneill /* Display : 1600x1200 */
694 1.1 jmcneill { VIA_RES_1600X1200, CRTM1600x1200, ARRAY_SIZE(CRTM1600x1200)},
695 1.1 jmcneill
696 1.1 jmcneill /* Display : 1920x1440 */
697 1.1 jmcneill { VIA_RES_1920X1440, CRTM1920x1440, ARRAY_SIZE(CRTM1920x1440)},
698 1.1 jmcneill
699 1.1 jmcneill /* Display : 1280x720 */
700 1.1 jmcneill { VIA_RES_1280X720, CRTM1280x720, ARRAY_SIZE(CRTM1280x720)},
701 1.1 jmcneill
702 1.1 jmcneill /* Display : 1920x1080 */
703 1.1 jmcneill { VIA_RES_1920X1080, CRTM1920x1080, ARRAY_SIZE(CRTM1920x1080)},
704 1.1 jmcneill
705 1.1 jmcneill /* Display : 1400x1050 */
706 1.1 jmcneill { VIA_RES_1400X1050, CRTM1400x1050, ARRAY_SIZE(CRTM1400x1050)}
707 1.1 jmcneill };
708 1.1 jmcneill
709 1.1 jmcneill #define NUM_TOTAL_MODETABLE ARRAY_SIZE(CLE266Modes)
710 1.1 jmcneill
711 1.1 jmcneill
712 1.1 jmcneill #endif /* _DEV_PCI_UNICHROMEMODE_H */
713