2 * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved.
3 * Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved.
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public
7 * License as published by the Free Software Foundation;
8 * either version 2, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTIES OR REPRESENTATIONS; without even
12 * the implied warranty of MERCHANTABILITY or FITNESS FOR
13 * A PARTICULAR PURPOSE.See the GNU General Public License
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
19 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26 /* CLE266 Software Power Sequence */
27 /* {Mask}, {Data}, {Delay} */
28 int PowerSequenceOn
[3][3] =
29 { {0x10, 0x08, 0x06}, {0x10, 0x08, 0x06}, {0x19, 0x1FE, 0x01} };
30 int PowerSequenceOff
[3][3] =
31 { {0x06, 0x08, 0x10}, {0x00, 0x00, 0x00}, {0xD2, 0x19, 0x01} };
33 /* ++++++ P880 ++++++ */
35 struct io_reg P880_LCD_RES_6X4_16X12
[] = {
36 /*IGA2 Horizontal Total */
37 {VIACR
, CR50
, 0xFF, 0x73}, {VIACR
, CR55
, 0x0F, 0x08},
38 /*IGA2 Horizontal Blank End */
39 {VIACR
, CR53
, 0xFF, 0x73}, {VIACR
, CR54
, 0x38, 0x00},
40 {VIACR
, CR5D
, 0x40, 0x40},
41 /*IGA2 Horizontal Total Shadow */
42 {VIACR
, CR6D
, 0xFF, 0x5A}, {VIACR
, CR71
, 0x08, 0x00},
43 /*IGA2 Horizontal Blank End Shadow */
44 {VIACR
, CR6E
, 0xFF, 0x5E},
46 {VIACR
, CR66
, 0xFF, 0xD6}, {VIACR
, CR67
, 0x03, 0x00},
47 /*VCLK*/ {VIASR
, SR44
, 0xFF, 0x7D}, {VIASR
, SR45
, 0xFF, 0x8C},
48 {VIASR
, SR46
, 0xFF, 0x02}
52 #define NUM_TOTAL_P880_LCD_RES_6X4_16X12 ARRAY_SIZE(P880_LCD_RES_6X4_16X12)
54 struct io_reg P880_LCD_RES_7X4_16X12
[] = {
55 /*IGA2 Horizontal Total */
56 {VIACR
, CR50
, 0xFF, 0x67}, {VIACR
, CR55
, 0x0F, 0x08},
57 /*IGA2 Horizontal Blank End */
58 {VIACR
, CR53
, 0xFF, 0x67}, {VIACR
, CR54
, 0x38, 0x00},
59 {VIACR
, CR5D
, 0x40, 0x40},
60 /*IGA2 Horizontal Total Shadow */
61 {VIACR
, CR6D
, 0xFF, 0x74}, {VIACR
, CR71
, 0x08, 0x00},
62 /*IGA2 Horizontal Blank End Shadow */
63 {VIACR
, CR6E
, 0xFF, 0x78},
65 {VIACR
, CR66
, 0xFF, 0xF5}, {VIACR
, CR67
, 0x03, 0x00},
66 /*VCLK*/ {VIASR
, SR44
, 0xFF, 0x78}, {VIASR
, SR45
, 0xFF, 0x8C},
67 {VIASR
, SR46
, 0xFF, 0x01}
71 #define NUM_TOTAL_P880_LCD_RES_7X4_16X12 ARRAY_SIZE(P880_LCD_RES_7X4_16X12)
73 struct io_reg P880_LCD_RES_8X6_16X12
[] = {
74 /*IGA2 Horizontal Total */
75 {VIACR
, CR50
, 0xFF, 0x65}, {VIACR
, CR55
, 0x0F, 0x08},
76 /*IGA2 Horizontal Blank End */
77 {VIACR
, CR53
, 0xFF, 0x65}, {VIACR
, CR54
, 0x38, 0x00},
78 {VIACR
, CR5D
, 0x40, 0x40},
79 /*IGA2 Horizontal Total Shadow */
80 {VIACR
, CR6D
, 0xFF, 0x7F}, {VIACR
, CR71
, 0x08, 0x00},
81 /*IGA2 Horizontal Blank End Shadow */
82 {VIACR
, CR6E
, 0xFF, 0x83},
84 {VIACR
, CR66
, 0xFF, 0xE1}, {VIACR
, CR67
, 0x03, 0x00},
85 /*VCLK*/ {VIASR
, SR44
, 0xFF, 0x6D}, {VIASR
, SR45
, 0xFF, 0x88},
86 {VIASR
, SR46
, 0xFF, 0x03}
90 #define NUM_TOTAL_P880_LCD_RES_8X6_16X12 ARRAY_SIZE(P880_LCD_RES_8X6_16X12)
92 struct io_reg P880_LCD_RES_10X7_16X12
[] = {
93 /*IGA2 Horizontal Total */
94 {VIACR
, CR50
, 0xFF, 0x65}, {VIACR
, CR55
, 0x0F, 0x08},
95 /*IGA2 Horizontal Blank End */
96 {VIACR
, CR53
, 0xFF, 0x65}, {VIACR
, CR54
, 0x38, 0x00},
97 {VIACR
, CR5D
, 0x40, 0x40},
98 /*IGA2 Horizontal Total Shadow */
99 {VIACR
, CR6D
, 0xFF, 0xAB}, {VIACR
, CR71
, 0x08, 0x00},
100 /*IGA2 Horizontal Blank End Shadow */
101 {VIACR
, CR6E
, 0xFF, 0xAF},
103 {VIACR
, CR66
, 0xFF, 0xF0}, {VIACR
, CR67
, 0x03, 0x00},
104 /*VCLK*/ {VIASR
, SR44
, 0xFF, 0x92}, {VIASR
, SR45
, 0xFF, 0x88},
105 {VIASR
, SR46
, 0xFF, 0x03}
109 #define NUM_TOTAL_P880_LCD_RES_10X7_16X12 ARRAY_SIZE(P880_LCD_RES_10X7_16X12)
111 struct io_reg P880_LCD_RES_12X10_16X12
[] = {
112 /*IGA2 Horizontal Total */
113 {VIACR
, CR50
, 0xFF, 0x7D}, {VIACR
, CR55
, 0x0F, 0x08},
114 /*IGA2 Horizontal Blank End */
115 {VIACR
, CR53
, 0xFF, 0x7D}, {VIACR
, CR54
, 0x38, 0x00},
116 {VIACR
, CR5D
, 0x40, 0x40},
117 /*IGA2 Horizontal Total Shadow */
118 {VIACR
, CR6D
, 0xFF, 0xD0}, {VIACR
, CR71
, 0x08, 0x00},
119 /*IGA2 Horizontal Blank End Shadow */
120 {VIACR
, CR6E
, 0xFF, 0xD4},
122 {VIACR
, CR66
, 0xFF, 0xFA}, {VIACR
, CR67
, 0x03, 0x00},
123 /*VCLK*/ {VIASR
, SR44
, 0xFF, 0xF6}, {VIASR
, SR45
, 0xFF, 0x88},
124 {VIASR
, SR46
, 0xFF, 0x05}
128 #define NUM_TOTAL_P880_LCD_RES_12X10_16X12 ARRAY_SIZE(P880_LCD_RES_12X10_16X12)
130 /* Panel 1400x1050 */
131 struct io_reg P880_LCD_RES_6X4_14X10
[] = {
133 /* IGA2 Horizontal Total */
134 {VIACR
, CR50
, 0xFF, 0x9D}, {VIACR
, CR55
, 0x0F, 0x56},
135 /* IGA2 Horizontal Blank End */
136 {VIACR
, CR53
, 0xFF, 0x9D}, {VIACR
, CR54
, 0x38, 0x75},
137 {VIACR
, CR5D
, 0x40, 0x24},
138 /* IGA2 Horizontal Total Shadow */
139 {VIACR
, CR6D
, 0xFF, 0x5F}, {VIACR
, CR71
, 0x08, 0x44},
140 /* IGA2 Horizontal Blank End Shadow */
141 {VIACR
, CR6E
, 0xFF, 0x63},
143 {VIACR
, CR66
, 0xFF, 0xB4}, {VIACR
, CR67
, 0x03, 0x00},
145 {VIASR
, SR44
, 0xFF, 0xC6}, {VIASR
, SR45
, 0xFF, 0x8C},
146 {VIASR
, SR46
, 0xFF, 0x05}
149 #define NUM_TOTAL_P880_LCD_RES_6X4_14X10 ARRAY_SIZE(P880_LCD_RES_6X4_14X10)
151 struct io_reg P880_LCD_RES_8X6_14X10
[] = {
153 /* IGA2 Horizontal Total */
154 {VIACR
, CR50
, 0xFF, 0x9D}, {VIACR
, CR55
, 0x0F, 0x56},
155 /* IGA2 Horizontal Blank End */
156 {VIACR
, CR53
, 0xFF, 0x9D}, {VIACR
, CR54
, 0x38, 0x75},
157 {VIACR
, CR5D
, 0x40, 0x24},
158 /* IGA2 Horizontal Total Shadow */
159 {VIACR
, CR6D
, 0xFF, 0x7F}, {VIACR
, CR71
, 0x08, 0x44},
160 /* IGA2 Horizontal Blank End Shadow */
161 {VIACR
, CR6E
, 0xFF, 0x83},
163 {VIACR
, CR66
, 0xFF, 0xBE}, {VIACR
, CR67
, 0x03, 0x00},
165 {VIASR
, SR44
, 0xFF, 0x06}, {VIASR
, SR45
, 0xFF, 0x8D},
166 {VIASR
, SR46
, 0xFF, 0x05}
169 #define NUM_TOTAL_P880_LCD_RES_8X6_14X10 ARRAY_SIZE(P880_LCD_RES_8X6_14X10)
171 /* ++++++ K400 ++++++ */
172 /* Panel 1600x1200 */
173 struct io_reg K400_LCD_RES_6X4_16X12
[] = {
174 /*IGA2 Horizontal Total */
175 {VIACR
, CR50
, 0xFF, 0x73}, {VIACR
, CR55
, 0x0F, 0x08},
176 /*IGA2 Horizontal Blank End */
177 {VIACR
, CR53
, 0xFF, 0x73}, {VIACR
, CR54
, 0x38, 0x00},
178 {VIACR
, CR5D
, 0x40, 0x40},
179 /*IGA2 Horizontal Total Shadow */
180 {VIACR
, CR6D
, 0xFF, 0x5A}, {VIACR
, CR71
, 0x08, 0x00},
181 /*IGA2 Horizontal Blank End Shadow */
182 {VIACR
, CR6E
, 0xFF, 0x5E},
184 {VIACR
, CR66
, 0xFF, 0xDA}, {VIACR
, CR67
, 0x03, 0x00},
185 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0xC4}, {VIASR
, SR47
, 0xFF, 0x7F}
188 #define NUM_TOTAL_K400_LCD_RES_6X4_16X12 ARRAY_SIZE(K400_LCD_RES_6X4_16X12)
190 struct io_reg K400_LCD_RES_7X4_16X12
[] = {
191 /*IGA2 Horizontal Total */
192 {VIACR
, CR50
, 0xFF, 0x67}, {VIACR
, CR55
, 0x0F, 0x08},
193 /*IGA2 Horizontal Blank End */
194 {VIACR
, CR53
, 0xFF, 0x67}, {VIACR
, CR54
, 0x38, 0x00},
195 {VIACR
, CR5D
, 0x40, 0x40},
196 /*IGA2 Horizontal Total Shadow */
197 {VIACR
, CR6D
, 0xFF, 0x74}, {VIACR
, CR71
, 0x08, 0x00},
198 /*IGA2 Horizontal Blank End Shadow */
199 {VIACR
, CR6E
, 0xFF, 0x78},
201 {VIACR
, CR66
, 0xFF, 0xF5}, {VIACR
, CR67
, 0x03, 0x00},
202 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x46}, {VIASR
, SR47
, 0xFF, 0x3D}
205 #define NUM_TOTAL_K400_LCD_RES_7X4_16X12 ARRAY_SIZE(K400_LCD_RES_7X4_16X12)
207 struct io_reg K400_LCD_RES_8X6_16X12
[] = {
208 /*IGA2 Horizontal Total */
209 {VIACR
, CR50
, 0xFF, 0x65}, {VIACR
, CR55
, 0x0F, 0x08},
210 /*IGA2 Horizontal Blank End */
211 {VIACR
, CR53
, 0xFF, 0x65}, {VIACR
, CR54
, 0x38, 0x00},
212 {VIACR
, CR5D
, 0x40, 0x40},
213 /*IGA2 Horizontal Total Shadow */
214 {VIACR
, CR6D
, 0xFF, 0x7F}, {VIACR
, CR71
, 0x08, 0x00},
215 /*IGA2 Horizontal Blank End Shadow */
216 {VIACR
, CR6E
, 0xFF, 0x83},
218 {VIACR
, CR66
, 0xFF, 0xE1}, {VIACR
, CR67
, 0x03, 0x00},
219 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x85}, {VIASR
, SR47
, 0xFF, 0x6F}
222 #define NUM_TOTAL_K400_LCD_RES_8X6_16X12 ARRAY_SIZE(K400_LCD_RES_8X6_16X12)
224 struct io_reg K400_LCD_RES_10X7_16X12
[] = {
225 /*IGA2 Horizontal Total */
226 {VIACR
, CR50
, 0xFF, 0x65}, {VIACR
, CR55
, 0x0F, 0x08},
227 /*IGA2 Horizontal Blank End */
228 {VIACR
, CR53
, 0xFF, 0x65}, {VIACR
, CR54
, 0x38, 0x00},
229 {VIACR
, CR5D
, 0x40, 0x40},
230 /*IGA2 Horizontal Total Shadow */
231 {VIACR
, CR6D
, 0xFF, 0xAB}, {VIACR
, CR71
, 0x08, 0x00},
232 /*IGA2 Horizontal Blank End Shadow */
233 {VIACR
, CR6E
, 0xFF, 0xAF},
235 {VIACR
, CR66
, 0xFF, 0xF0}, {VIACR
, CR67
, 0x03, 0x00},
236 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x45}, {VIASR
, SR47
, 0xFF, 0x4A}
239 #define NUM_TOTAL_K400_LCD_RES_10X7_16X12 ARRAY_SIZE(K400_LCD_RES_10X7_16X12)
241 struct io_reg K400_LCD_RES_12X10_16X12
[] = {
242 /*IGA2 Horizontal Total */
243 {VIACR
, CR50
, 0xFF, 0x7D}, {VIACR
, CR55
, 0x0F, 0x08},
244 /*IGA2 Horizontal Blank End */
245 {VIACR
, CR53
, 0xFF, 0x7D}, {VIACR
, CR54
, 0x38, 0x00},
246 {VIACR
, CR5D
, 0x40, 0x40},
247 /*IGA2 Horizontal Total Shadow */
248 {VIACR
, CR6D
, 0xFF, 0xD0}, {VIACR
, CR71
, 0x08, 0x00},
249 /*IGA2 Horizontal Blank End Shadow */
250 {VIACR
, CR6E
, 0xFF, 0xD4},
252 {VIACR
, CR66
, 0xFF, 0xFA}, {VIACR
, CR67
, 0x03, 0x00},
253 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x47}, {VIASR
, SR47
, 0xFF, 0x7C}
256 #define NUM_TOTAL_K400_LCD_RES_12X10_16X12 ARRAY_SIZE(K400_LCD_RES_12X10_16X12)
258 /* Panel 1400x1050 */
259 struct io_reg K400_LCD_RES_6X4_14X10
[] = {
261 /* IGA2 Horizontal Total */
262 {VIACR
, CR50
, 0xFF, 0x9D}, {VIACR
, CR55
, 0x0F, 0x56},
263 /* IGA2 Horizontal Blank End */
264 {VIACR
, CR53
, 0xFF, 0x9D}, {VIACR
, CR54
, 0x38, 0x75},
265 {VIACR
, CR5D
, 0x40, 0x24},
266 /* IGA2 Horizontal Total Shadow */
267 {VIACR
, CR6D
, 0xFF, 0x5F}, {VIACR
, CR71
, 0x08, 0x44},
268 /* IGA2 Horizontal Blank End Shadow */
269 {VIACR
, CR6E
, 0xFF, 0x63},
271 {VIACR
, CR66
, 0xFF, 0xB4}, {VIACR
, CR67
, 0x03, 0x00},
273 {VIASR
, SR46
, 0xFF, 0x07}, {VIASR
, SR47
, 0xFF, 0x19}
276 #define NUM_TOTAL_K400_LCD_RES_6X4_14X10 ARRAY_SIZE(K400_LCD_RES_6X4_14X10)
278 struct io_reg K400_LCD_RES_8X6_14X10
[] = {
280 /* IGA2 Horizontal Total */
281 {VIACR
, CR50
, 0xFF, 0x9D}, {VIACR
, CR55
, 0x0F, 0x56},
282 /* IGA2 Horizontal Blank End */
283 {VIACR
, CR53
, 0xFF, 0x9D}, {VIACR
, CR54
, 0x38, 0x75},
284 {VIACR
, CR5D
, 0x40, 0x24},
285 /* IGA2 Horizontal Total Shadow */
286 {VIACR
, CR6D
, 0xFF, 0x7F}, {VIACR
, CR71
, 0x08, 0x44},
287 /* IGA2 Horizontal Blank End Shadow */
288 {VIACR
, CR6E
, 0xFF, 0x83},
290 {VIACR
, CR66
, 0xFF, 0xBE}, {VIACR
, CR67
, 0x03, 0x00},
292 {VIASR
, SR46
, 0xFF, 0x07}, {VIASR
, SR47
, 0xFF, 0x21}
295 #define NUM_TOTAL_K400_LCD_RES_8X6_14X10 ARRAY_SIZE(K400_LCD_RES_8X6_14X10)
297 struct io_reg K400_LCD_RES_10X7_14X10
[] = {
299 /* IGA2 Horizontal Total */
300 {VIACR
, CR50
, 0xFF, 0x9D}, {VIACR
, CR55
, 0x0F, 0x56},
301 /* IGA2 Horizontal Blank End */
302 {VIACR
, CR53
, 0xFF, 0x9D}, {VIACR
, CR54
, 0x38, 0x75},
303 {VIACR
, CR5D
, 0x40, 0x24},
304 /* IGA2 Horizontal Total Shadow */
305 {VIACR
, CR6D
, 0xFF, 0xA3}, {VIACR
, CR71
, 0x08, 0x44},
306 /* IGA2 Horizontal Blank End Shadow */
307 {VIACR
, CR6E
, 0xFF, 0xA7},
309 {VIACR
, CR66
, 0xFF, 0xC3}, {VIACR
, CR67
, 0x03, 0x04},
311 {VIASR
, SR46
, 0xFF, 0x05}, {VIASR
, SR47
, 0xFF, 0x1E}
314 #define NUM_TOTAL_K400_LCD_RES_10X7_14X10 ARRAY_SIZE(K400_LCD_RES_10X7_14X10)
316 struct io_reg K400_LCD_RES_12X10_14X10
[] = {
317 /* 1280x768, 1280x960, 1280x1024 */
318 /* IGA2 Horizontal Total */
319 {VIACR
, CR50
, 0xFF, 0x97}, {VIACR
, CR55
, 0x0F, 0x56},
320 /* IGA2 Horizontal Blank End */
321 {VIACR
, CR53
, 0xFF, 0x97}, {VIACR
, CR54
, 0x38, 0x75},
322 {VIACR
, CR5D
, 0x40, 0x24},
323 /* IGA2 Horizontal Total Shadow */
324 {VIACR
, CR6D
, 0xFF, 0xCE}, {VIACR
, CR71
, 0x08, 0x44},
325 /* IGA2 Horizontal Blank End Shadow */
326 {VIACR
, CR6E
, 0xFF, 0xD2},
328 {VIACR
, CR66
, 0xFF, 0xC9}, {VIACR
, CR67
, 0x03, 0x04},
330 {VIASR
, SR46
, 0xFF, 0x84}, {VIASR
, SR47
, 0xFF, 0x79}
333 #define NUM_TOTAL_K400_LCD_RES_12X10_14X10 ARRAY_SIZE(K400_LCD_RES_12X10_14X10)
335 /* ++++++ K400 ++++++ */
337 struct io_reg K400_LCD_RES_6X4_1366X7
[] = {
339 /* IGA2 Horizontal Total */
340 {VIACR
, CR50
, 0xFF, 0x47}, {VIACR
, CR55
, 0x0F, 0x35},
341 /* IGA2 Horizontal Blank End */
342 {VIACR
, CR53
, 0xFF, 0x47}, {VIACR
, CR54
, 0x38, 0x2B},
343 {VIACR
, CR5D
, 0x40, 0x13},
344 /* IGA2 Horizontal Total Shadow */
345 {VIACR
, CR6D
, 0xFF, 0x60}, {VIACR
, CR71
, 0x08, 0x23},
346 /* IGA2 Horizontal Blank End Shadow */
347 {VIACR
, CR6E
, 0xFF, 0x64},
349 {VIACR
, CR66
, 0xFF, 0x8C}, {VIACR
, CR67
, 0x03, 0x00},
351 {VIASR
, SR46
, 0xFF, 0x87}, {VIASR
, SR47
, 0xFF, 0x4C}
354 #define NUM_TOTAL_K400_LCD_RES_6X4_1366X7 ARRAY_SIZE(K400_LCD_RES_6X4_1366X7)
356 struct io_reg K400_LCD_RES_7X4_1366X7
[] = {
357 /* IGA2 Horizontal Total */
358 {VIACR
, CR50
, 0xFF, 0x3B}, {VIACR
, CR55
, 0x0F, 0x35},
359 /* IGA2 Horizontal Blank End */
360 {VIACR
, CR53
, 0xFF, 0x3B}, {VIACR
, CR54
, 0x38, 0x2B},
361 {VIACR
, CR5D
, 0x40, 0x13},
362 /* IGA2 Horizontal Total Shadow */
363 {VIACR
, CR6D
, 0xFF, 0x71}, {VIACR
, CR71
, 0x08, 0x23},
364 /* IGA2 Horizontal Blank End Shadow */
365 {VIACR
, CR6E
, 0xFF, 0x75},
367 {VIACR
, CR66
, 0xFF, 0x96}, {VIACR
, CR67
, 0x03, 0x00},
369 {VIASR
, SR46
, 0xFF, 0x05}, {VIASR
, SR47
, 0xFF, 0x10}
372 #define NUM_TOTAL_K400_LCD_RES_7X4_1366X7 ARRAY_SIZE(K400_LCD_RES_7X4_1366X7)
374 struct io_reg K400_LCD_RES_8X6_1366X7
[] = {
376 /* IGA2 Horizontal Total */
377 {VIACR
, CR50
, 0xFF, 0x37}, {VIACR
, CR55
, 0x0F, 0x35},
378 /* IGA2 Horizontal Blank End */
379 {VIACR
, CR53
, 0xFF, 0x37}, {VIACR
, CR54
, 0x38, 0x2B},
380 {VIACR
, CR5D
, 0x40, 0x13},
381 /* IGA2 Horizontal Total Shadow */
382 {VIACR
, CR6D
, 0xFF, 0x7E}, {VIACR
, CR71
, 0x08, 0x23},
383 /* IGA2 Horizontal Blank End Shadow */
384 {VIACR
, CR6E
, 0xFF, 0x82},
386 {VIACR
, CR66
, 0xFF, 0x8C}, {VIACR
, CR67
, 0x03, 0x00},
388 {VIASR
, SR46
, 0xFF, 0x84}, {VIASR
, SR47
, 0xFF, 0xB9}
391 #define NUM_TOTAL_K400_LCD_RES_8X6_1366X7 ARRAY_SIZE(K400_LCD_RES_8X6_1366X7)
393 struct io_reg K400_LCD_RES_10X7_1366X7
[] = {
395 /* IGA2 Horizontal Total */
396 {VIACR
, CR50
, 0xFF, 0x9D}, {VIACR
, CR55
, 0x0F, 0x56},
397 /* IGA2 Horizontal Blank End */
398 {VIACR
, CR53
, 0xFF, 0x9D}, {VIACR
, CR54
, 0x38, 0x75},
399 {VIACR
, CR5D
, 0x40, 0x24},
400 /* IGA2 Horizontal Total Shadow */
401 {VIACR
, CR6D
, 0xFF, 0xA3}, {VIACR
, CR71
, 0x08, 0x44},
402 /* IGA2 Horizontal Blank End Shadow */
403 {VIACR
, CR6E
, 0xFF, 0xA7},
405 {VIACR
, CR66
, 0xFF, 0xC3}, {VIACR
, CR67
, 0x03, 0x04},
407 {VIASR
, SR46
, 0xFF, 0x05}, {VIASR
, SR47
, 0xFF, 0x1E}
410 #define NUM_TOTAL_K400_LCD_RES_10X7_1366X7 ARRAY_SIZE(K400_LCD_RES_10X7_1366X7)
412 struct io_reg K400_LCD_RES_12X10_1366X7
[] = {
413 /* 1280x768, 1280x960, 1280x1024 */
414 /* IGA2 Horizontal Total */
415 {VIACR
, CR50
, 0xFF, 0x97}, {VIACR
, CR55
, 0x0F, 0x56},
416 /* IGA2 Horizontal Blank End */
417 {VIACR
, CR53
, 0xFF, 0x97}, {VIACR
, CR54
, 0x38, 0x75},
418 {VIACR
, CR5D
, 0x40, 0x24},
419 /* IGA2 Horizontal Total Shadow */
420 {VIACR
, CR6D
, 0xFF, 0xCE}, {VIACR
, CR71
, 0x08, 0x44},
421 /* IGA2 Horizontal Blank End Shadow */
422 {VIACR
, CR6E
, 0xFF, 0xD2},
424 {VIACR
, CR66
, 0xFF, 0xC9}, {VIACR
, CR67
, 0x03, 0x04},
426 {VIASR
, SR46
, 0xFF, 0x84}, {VIASR
, SR47
, 0xFF, 0x79}
429 #define NUM_TOTAL_K400_LCD_RES_12X10_1366X7\
430 ARRAY_SIZE(K400_LCD_RES_12X10_1366X7)
432 /* ++++++ K400 ++++++ */
433 /* Panel 1280x1024 */
434 struct io_reg K400_LCD_RES_6X4_12X10
[] = {
435 /*IGA2 Horizontal Total */
436 {VIACR
, CR50
, 0xFF, 0x9D}, {VIACR
, CR55
, 0x0F, 0x46},
437 /*IGA2 Horizontal Blank End */
438 {VIACR
, CR53
, 0xFF, 0x9D}, {VIACR
, CR54
, 0x38, 0x74},
439 {VIACR
, CR5D
, 0x40, 0x1C},
440 /*IGA2 Horizontal Total Shadow */
441 {VIACR
, CR6D
, 0xFF, 0x5F}, {VIACR
, CR71
, 0x08, 0x34},
442 /*IGA2 Horizontal Blank End Shadow */
443 {VIACR
, CR6E
, 0xFF, 0x63},
445 {VIACR
, CR66
, 0xFF, 0xAA}, {VIACR
, CR67
, 0x03, 0x00},
446 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x07}, {VIASR
, SR47
, 0xFF, 0x19}
449 #define NUM_TOTAL_K400_LCD_RES_6X4_12X10 ARRAY_SIZE(K400_LCD_RES_6X4_12X10)
451 struct io_reg K400_LCD_RES_7X4_12X10
[] = {
452 /*IGA2 Horizontal Total */
453 {VIACR
, CR50
, 0xFF, 0x9D}, {VIACR
, CR55
, 0x0F, 0x46},
454 /*IGA2 Horizontal Blank End */
455 {VIACR
, CR53
, 0xFF, 0x9D}, {VIACR
, CR54
, 0x38, 0x74},
456 {VIACR
, CR5D
, 0x40, 0x1C},
457 /*IGA2 Horizontal Total Shadow */
458 {VIACR
, CR6D
, 0xFF, 0x68}, {VIACR
, CR71
, 0x08, 0x34},
459 /*IGA2 Horizontal Blank End Shadow */
460 {VIACR
, CR6E
, 0xFF, 0x6C},
462 {VIACR
, CR66
, 0xFF, 0xA8}, {VIACR
, CR67
, 0x03, 0x00},
463 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x87}, {VIASR
, SR47
, 0xFF, 0xED}
466 #define NUM_TOTAL_K400_LCD_RES_7X4_12X10 ARRAY_SIZE(K400_LCD_RES_7X4_12X10)
468 struct io_reg K400_LCD_RES_8X6_12X10
[] = {
469 /*IGA2 Horizontal Total */
470 {VIACR
, CR50
, 0xFF, 0x9D}, {VIACR
, CR55
, 0x0F, 0x46},
471 /*IGA2 Horizontal Blank End */
472 {VIACR
, CR53
, 0xFF, 0x9D}, {VIACR
, CR54
, 0x38, 0x74},
473 {VIACR
, CR5D
, 0x40, 0x1C},
474 /*IGA2 Horizontal Total Shadow */
475 {VIACR
, CR6D
, 0xFF, 0x7F}, {VIACR
, CR71
, 0x08, 0x34},
476 /*IGA2 Horizontal Blank End Shadow */
477 {VIACR
, CR6E
, 0xFF, 0x83},
479 {VIACR
, CR66
, 0xFF, 0xBE}, {VIACR
, CR67
, 0x03, 0x00},
480 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x07}, {VIASR
, SR47
, 0xFF, 0x21}
483 #define NUM_TOTAL_K400_LCD_RES_8X6_12X10 ARRAY_SIZE(K400_LCD_RES_8X6_12X10)
485 struct io_reg K400_LCD_RES_10X7_12X10
[] = {
486 /*IGA2 Horizontal Total */
487 {VIACR
, CR50
, 0xFF, 0x9D}, {VIACR
, CR55
, 0x0F, 0x46},
488 /*IGA2 Horizontal Blank End */
489 {VIACR
, CR53
, 0xFF, 0x9D}, {VIACR
, CR54
, 0x38, 0x74},
490 {VIACR
, CR5D
, 0x40, 0x1C},
491 /*IGA2 Horizontal Total Shadow */
492 {VIACR
, CR6D
, 0xFF, 0xA3}, {VIACR
, CR71
, 0x08, 0x34},
493 /*IGA2 Horizontal Blank End Shadow */
494 {VIACR
, CR6E
, 0xFF, 0xA7},
496 {VIACR
, CR66
, 0xFF, 0xBE}, {VIACR
, CR67
, 0x03, 0x04},
497 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x05}, {VIASR
, SR47
, 0xFF, 0x1E}
500 #define NUM_TOTAL_K400_LCD_RES_10X7_12X10 ARRAY_SIZE(K400_LCD_RES_10X7_12X10)
502 /* ++++++ K400 ++++++ */
504 struct io_reg K400_LCD_RES_6X4_10X7
[] = {
505 /*IGA2 Horizontal Total */
506 {VIACR
, CR50
, 0xFF, 0x47}, {VIACR
, CR55
, 0x0F, 0x35},
507 /*IGA2 Horizontal Blank End */
508 {VIACR
, CR53
, 0xFF, 0x47}, {VIACR
, CR54
, 0x38, 0x2B},
509 {VIACR
, CR5D
, 0x40, 0x13},
510 /*IGA2 Horizontal Total Shadow */
511 {VIACR
, CR6D
, 0xFF, 0x60}, {VIACR
, CR71
, 0x08, 0x23},
512 /*IGA2 Horizontal Blank End Shadow */
513 {VIACR
, CR6E
, 0xFF, 0x64},
515 {VIACR
, CR66
, 0xFF, 0x8C}, {VIACR
, CR67
, 0x03, 0x00},
516 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x87}, {VIASR
, SR47
, 0xFF, 0x4C}
519 #define NUM_TOTAL_K400_LCD_RES_6X4_10X7 ARRAY_SIZE(K400_LCD_RES_6X4_10X7)
521 struct io_reg K400_LCD_RES_7X4_10X7
[] = {
522 /*IGA2 Horizontal Total */
523 {VIACR
, CR50
, 0xFF, 0x3B}, {VIACR
, CR55
, 0x0F, 0x35},
524 /*IGA2 Horizontal Blank End */
525 {VIACR
, CR53
, 0xFF, 0x3B}, {VIACR
, CR54
, 0x38, 0x2B},
526 {VIACR
, CR5D
, 0x40, 0x13},
527 /*IGA2 Horizontal Total Shadow */
528 {VIACR
, CR6D
, 0xFF, 0x71}, {VIACR
, CR71
, 0x08, 0x23},
529 /*IGA2 Horizontal Blank End Shadow */
530 {VIACR
, CR6E
, 0xFF, 0x75},
532 {VIACR
, CR66
, 0xFF, 0x96}, {VIACR
, CR67
, 0x03, 0x00},
533 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x05}, {VIASR
, SR47
, 0xFF, 0x10}
536 #define NUM_TOTAL_K400_LCD_RES_7X4_10X7 ARRAY_SIZE(K400_LCD_RES_7X4_10X7)
538 struct io_reg K400_LCD_RES_8X6_10X7
[] = {
539 /*IGA2 Horizontal Total */
540 {VIACR
, CR50
, 0xFF, 0x37}, {VIACR
, CR55
, 0x0F, 0x35},
541 /*IGA2 Horizontal Blank End */
542 {VIACR
, CR53
, 0xFF, 0x37}, {VIACR
, CR54
, 0x38, 0x2B},
543 {VIACR
, CR5D
, 0x40, 0x13},
544 /*IGA2 Horizontal Total Shadow */
545 {VIACR
, CR6D
, 0xFF, 0x7E}, {VIACR
, CR71
, 0x08, 0x23},
546 /*IGA2 Horizontal Blank End Shadow */
547 {VIACR
, CR6E
, 0xFF, 0x82},
549 {VIACR
, CR66
, 0xFF, 0x8C}, {VIACR
, CR67
, 0x03, 0x00},
550 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x84}, {VIASR
, SR47
, 0xFF, 0xB9}
553 #define NUM_TOTAL_K400_LCD_RES_8X6_10X7 ARRAY_SIZE(K400_LCD_RES_8X6_10X7)
555 /* ++++++ K400 ++++++ */
557 struct io_reg K400_LCD_RES_6X4_8X6
[] = {
558 /*IGA2 Horizontal Total */
559 {VIACR
, CR50
, 0xFF, 0x1A}, {VIACR
, CR55
, 0x0F, 0x34},
560 /*IGA2 Horizontal Blank End */
561 {VIACR
, CR53
, 0xFF, 0x1A}, {VIACR
, CR54
, 0x38, 0xE3},
562 {VIACR
, CR5D
, 0x40, 0x12},
563 /*IGA2 Horizontal Total Shadow */
564 {VIACR
, CR6D
, 0xFF, 0x5F}, {VIACR
, CR71
, 0x08, 0x22},
565 /*IGA2 Horizontal Blank End Shadow */
566 {VIACR
, CR6E
, 0xFF, 0x63},
568 {VIACR
, CR66
, 0xFF, 0x6E}, {VIACR
, CR67
, 0x03, 0x00},
569 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0x86}, {VIASR
, SR47
, 0xFF, 0xB3}
572 #define NUM_TOTAL_K400_LCD_RES_6X4_8X6 ARRAY_SIZE(K400_LCD_RES_6X4_8X6)
574 struct io_reg K400_LCD_RES_7X4_8X6
[] = {
575 /*IGA2 Horizontal Total */
576 {VIACR
, CR50
, 0xFF, 0x1F}, {VIACR
, CR55
, 0x0F, 0x34},
577 /*IGA2 Horizontal Blank End */
578 {VIACR
, CR53
, 0xFF, 0x1F}, {VIACR
, CR54
, 0x38, 0xE3},
579 {VIACR
, CR5D
, 0x40, 0x12},
580 /*IGA2 Horizontal Total Shadow */
581 {VIACR
, CR6D
, 0xFF, 0x7F}, {VIACR
, CR71
, 0x08, 0x22},
582 /*IGA2 Horizontal Blank End Shadow */
583 {VIACR
, CR6E
, 0xFF, 0x83},
585 {VIACR
, CR66
, 0xFF, 0x78}, {VIACR
, CR67
, 0x03, 0x00},
586 /*VCLK*/ {VIASR
, SR46
, 0xFF, 0xC4}, {VIASR
, SR47
, 0xFF, 0x59}
589 #define NUM_TOTAL_K400_LCD_RES_7X4_8X6 ARRAY_SIZE(K400_LCD_RES_7X4_8X6)
591 #endif /* __LCDTBL_H__ */