• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/video/via/
1/*
2 * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved.
3 * Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved.
4
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.
9
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
14 * for more details.
15
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
18 * Foundation, Inc.,
19 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 */
21#ifndef __LCDTBL_H__
22#define __LCDTBL_H__
23
24#include "share.h"
25
26/* CLE266 Software Power Sequence */
27/* {Mask}, {Data}, {Delay} */
28int PowerSequenceOn[3][3] =
29    { {0x10, 0x08, 0x06}, {0x10, 0x08, 0x06}, {0x19, 0x1FE, 0x01} };
30int PowerSequenceOff[3][3] =
31    { {0x06, 0x08, 0x10}, {0x00, 0x00, 0x00}, {0xD2, 0x19, 0x01} };
32
33/* ++++++ P880 ++++++ */
34/*   Panel 1600x1200   */
35struct 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},
45	/*IGA2 Offset */
46	{VIACR, CR66, 0xFF, 0xD6}, {VIACR, CR67, 0x03, 0x00},
47	 /*VCLK*/ {VIASR, SR44, 0xFF, 0x7D}, {VIASR, SR45, 0xFF, 0x8C},
48	{VIASR, SR46, 0xFF, 0x02}
49
50};
51
52#define NUM_TOTAL_P880_LCD_RES_6X4_16X12 ARRAY_SIZE(P880_LCD_RES_6X4_16X12)
53
54struct 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},
64	/*IGA2 Offset */
65	{VIACR, CR66, 0xFF, 0xF5}, {VIACR, CR67, 0x03, 0x00},
66	 /*VCLK*/ {VIASR, SR44, 0xFF, 0x78}, {VIASR, SR45, 0xFF, 0x8C},
67	{VIASR, SR46, 0xFF, 0x01}
68
69};
70
71#define NUM_TOTAL_P880_LCD_RES_7X4_16X12 ARRAY_SIZE(P880_LCD_RES_7X4_16X12)
72
73struct 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},
83	/*IGA2 Offset */
84	{VIACR, CR66, 0xFF, 0xE1}, {VIACR, CR67, 0x03, 0x00},
85	 /*VCLK*/ {VIASR, SR44, 0xFF, 0x6D}, {VIASR, SR45, 0xFF, 0x88},
86	{VIASR, SR46, 0xFF, 0x03}
87
88};
89
90#define NUM_TOTAL_P880_LCD_RES_8X6_16X12 ARRAY_SIZE(P880_LCD_RES_8X6_16X12)
91
92struct 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},
102	/*IGA2 Offset */
103	{VIACR, CR66, 0xFF, 0xF0}, {VIACR, CR67, 0x03, 0x00},
104	 /*VCLK*/ {VIASR, SR44, 0xFF, 0x92}, {VIASR, SR45, 0xFF, 0x88},
105	{VIASR, SR46, 0xFF, 0x03}
106
107};
108
109#define NUM_TOTAL_P880_LCD_RES_10X7_16X12 ARRAY_SIZE(P880_LCD_RES_10X7_16X12)
110
111struct 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},
121	/*IGA2 Offset */
122	{VIACR, CR66, 0xFF, 0xFA}, {VIACR, CR67, 0x03, 0x00},
123	 /*VCLK*/ {VIASR, SR44, 0xFF, 0xF6}, {VIASR, SR45, 0xFF, 0x88},
124	{VIASR, SR46, 0xFF, 0x05}
125
126};
127
128#define NUM_TOTAL_P880_LCD_RES_12X10_16X12 ARRAY_SIZE(P880_LCD_RES_12X10_16X12)
129
130/*   Panel 1400x1050   */
131struct io_reg P880_LCD_RES_6X4_14X10[] = {
132	/* 640x480                          */
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},
142	/* IGA2 Offset                      */
143	{VIACR, CR66, 0xFF, 0xB4}, {VIACR, CR67, 0x03, 0x00},
144	/* VCLK                             */
145	{VIASR, SR44, 0xFF, 0xC6}, {VIASR, SR45, 0xFF, 0x8C},
146	{VIASR, SR46, 0xFF, 0x05}
147};
148
149#define NUM_TOTAL_P880_LCD_RES_6X4_14X10 ARRAY_SIZE(P880_LCD_RES_6X4_14X10)
150
151struct io_reg P880_LCD_RES_8X6_14X10[] = {
152	/* 800x600                          */
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},
162	/* IGA2 Offset                      */
163	{VIACR, CR66, 0xFF, 0xBE}, {VIACR, CR67, 0x03, 0x00},
164	/* VCLK                             */
165	{VIASR, SR44, 0xFF, 0x06}, {VIASR, SR45, 0xFF, 0x8D},
166	{VIASR, SR46, 0xFF, 0x05}
167};
168
169#define NUM_TOTAL_P880_LCD_RES_8X6_14X10 ARRAY_SIZE(P880_LCD_RES_8X6_14X10)
170
171/* ++++++ K400 ++++++ */
172/*   Panel 1600x1200   */
173struct 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},
183	/*IGA2 Offset */
184	{VIACR, CR66, 0xFF, 0xDA}, {VIACR, CR67, 0x03, 0x00},
185	 /*VCLK*/ {VIASR, SR46, 0xFF, 0xC4}, {VIASR, SR47, 0xFF, 0x7F}
186};
187
188#define NUM_TOTAL_K400_LCD_RES_6X4_16X12 ARRAY_SIZE(K400_LCD_RES_6X4_16X12)
189
190struct 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},
200	/*IGA2 Offset */
201	{VIACR, CR66, 0xFF, 0xF5}, {VIACR, CR67, 0x03, 0x00},
202	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x46}, {VIASR, SR47, 0xFF, 0x3D}
203};
204
205#define NUM_TOTAL_K400_LCD_RES_7X4_16X12 ARRAY_SIZE(K400_LCD_RES_7X4_16X12)
206
207struct 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},
217	/*IGA2 Offset */
218	{VIACR, CR66, 0xFF, 0xE1}, {VIACR, CR67, 0x03, 0x00},
219	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x85}, {VIASR, SR47, 0xFF, 0x6F}
220};
221
222#define NUM_TOTAL_K400_LCD_RES_8X6_16X12 ARRAY_SIZE(K400_LCD_RES_8X6_16X12)
223
224struct 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},
234	/*IGA2 Offset */
235	{VIACR, CR66, 0xFF, 0xF0}, {VIACR, CR67, 0x03, 0x00},
236	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x45}, {VIASR, SR47, 0xFF, 0x4A}
237};
238
239#define NUM_TOTAL_K400_LCD_RES_10X7_16X12 ARRAY_SIZE(K400_LCD_RES_10X7_16X12)
240
241struct 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},
251	/*IGA2 Offset */
252	{VIACR, CR66, 0xFF, 0xFA}, {VIACR, CR67, 0x03, 0x00},
253	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x47}, {VIASR, SR47, 0xFF, 0x7C}
254};
255
256#define NUM_TOTAL_K400_LCD_RES_12X10_16X12 ARRAY_SIZE(K400_LCD_RES_12X10_16X12)
257
258/*   Panel 1400x1050   */
259struct io_reg K400_LCD_RES_6X4_14X10[] = {
260	/* 640x400                          */
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},
270	/* IGA2 Offset                      */
271	{VIACR, CR66, 0xFF, 0xB4}, {VIACR, CR67, 0x03, 0x00},
272	/* VCLK                             */
273	{VIASR, SR46, 0xFF, 0x07}, {VIASR, SR47, 0xFF, 0x19}
274};
275
276#define NUM_TOTAL_K400_LCD_RES_6X4_14X10 ARRAY_SIZE(K400_LCD_RES_6X4_14X10)
277
278struct io_reg K400_LCD_RES_8X6_14X10[] = {
279	/* 800x600                          */
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},
289	/* IGA2 Offset                      */
290	{VIACR, CR66, 0xFF, 0xBE}, {VIACR, CR67, 0x03, 0x00},
291	/* VCLK                             */
292	{VIASR, SR46, 0xFF, 0x07}, {VIASR, SR47, 0xFF, 0x21}
293};
294
295#define NUM_TOTAL_K400_LCD_RES_8X6_14X10 ARRAY_SIZE(K400_LCD_RES_8X6_14X10)
296
297struct io_reg K400_LCD_RES_10X7_14X10[] = {
298	/* 1024x768                         */
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},
308	/* IGA2 Offset                      */
309	{VIACR, CR66, 0xFF, 0xC3}, {VIACR, CR67, 0x03, 0x04},
310	/* VCLK                             */
311	{VIASR, SR46, 0xFF, 0x05}, {VIASR, SR47, 0xFF, 0x1E}
312};
313
314#define NUM_TOTAL_K400_LCD_RES_10X7_14X10 ARRAY_SIZE(K400_LCD_RES_10X7_14X10)
315
316struct 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},
327	/* IGA2 Offset                      */
328	{VIACR, CR66, 0xFF, 0xC9}, {VIACR, CR67, 0x03, 0x04},
329	/* VCLK                             */
330	{VIASR, SR46, 0xFF, 0x84}, {VIASR, SR47, 0xFF, 0x79}
331};
332
333#define NUM_TOTAL_K400_LCD_RES_12X10_14X10 ARRAY_SIZE(K400_LCD_RES_12X10_14X10)
334
335/* ++++++ K400 ++++++ */
336/*   Panel 1366x768   */
337struct io_reg K400_LCD_RES_6X4_1366X7[] = {
338	/* 640x400                          */
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},
348	/* IGA2 Offset                      */
349	{VIACR, CR66, 0xFF, 0x8C}, {VIACR, CR67, 0x03, 0x00},
350	/* VCLK                             */
351	{VIASR, SR46, 0xFF, 0x87}, {VIASR, SR47, 0xFF, 0x4C}
352};
353
354#define NUM_TOTAL_K400_LCD_RES_6X4_1366X7 ARRAY_SIZE(K400_LCD_RES_6X4_1366X7)
355
356struct 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},
366	/* IGA2 Offset                      */
367	{VIACR, CR66, 0xFF, 0x96}, {VIACR, CR67, 0x03, 0x00},
368	/* VCLK                             */
369	{VIASR, SR46, 0xFF, 0x05}, {VIASR, SR47, 0xFF, 0x10}
370};
371
372#define NUM_TOTAL_K400_LCD_RES_7X4_1366X7 ARRAY_SIZE(K400_LCD_RES_7X4_1366X7)
373
374struct io_reg K400_LCD_RES_8X6_1366X7[] = {
375	/* 800x600                          */
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},
385	/* IGA2 Offset                      */
386	{VIACR, CR66, 0xFF, 0x8C}, {VIACR, CR67, 0x03, 0x00},
387	/* VCLK                             */
388	{VIASR, SR46, 0xFF, 0x84}, {VIASR, SR47, 0xFF, 0xB9}
389};
390
391#define NUM_TOTAL_K400_LCD_RES_8X6_1366X7 ARRAY_SIZE(K400_LCD_RES_8X6_1366X7)
392
393struct io_reg K400_LCD_RES_10X7_1366X7[] = {
394	/* 1024x768                         */
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},
404	/* IGA2 Offset                      */
405	{VIACR, CR66, 0xFF, 0xC3}, {VIACR, CR67, 0x03, 0x04},
406	/* VCLK                             */
407	{VIASR, SR46, 0xFF, 0x05}, {VIASR, SR47, 0xFF, 0x1E}
408};
409
410#define NUM_TOTAL_K400_LCD_RES_10X7_1366X7 ARRAY_SIZE(K400_LCD_RES_10X7_1366X7)
411
412struct 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},
423	/* IGA2 Offset                      */
424	{VIACR, CR66, 0xFF, 0xC9}, {VIACR, CR67, 0x03, 0x04},
425	/* VCLK                             */
426	{VIASR, SR46, 0xFF, 0x84}, {VIASR, SR47, 0xFF, 0x79}
427};
428
429#define NUM_TOTAL_K400_LCD_RES_12X10_1366X7\
430			ARRAY_SIZE(K400_LCD_RES_12X10_1366X7)
431
432/* ++++++ K400 ++++++ */
433/*   Panel 1280x1024   */
434struct 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},
444	/*IGA2 Offset */
445	{VIACR, CR66, 0xFF, 0xAA}, {VIACR, CR67, 0x03, 0x00},
446	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x07}, {VIASR, SR47, 0xFF, 0x19}
447};
448
449#define NUM_TOTAL_K400_LCD_RES_6X4_12X10 ARRAY_SIZE(K400_LCD_RES_6X4_12X10)
450
451struct 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},
461	/*IGA2 Offset */
462	{VIACR, CR66, 0xFF, 0xA8}, {VIACR, CR67, 0x03, 0x00},
463	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x87}, {VIASR, SR47, 0xFF, 0xED}
464};
465
466#define NUM_TOTAL_K400_LCD_RES_7X4_12X10 ARRAY_SIZE(K400_LCD_RES_7X4_12X10)
467
468struct 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},
478	/*IGA2 Offset */
479	{VIACR, CR66, 0xFF, 0xBE}, {VIACR, CR67, 0x03, 0x00},
480	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x07}, {VIASR, SR47, 0xFF, 0x21}
481};
482
483#define NUM_TOTAL_K400_LCD_RES_8X6_12X10 ARRAY_SIZE(K400_LCD_RES_8X6_12X10)
484
485struct 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},
495	/*IGA2 Offset */
496	{VIACR, CR66, 0xFF, 0xBE}, {VIACR, CR67, 0x03, 0x04},
497	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x05}, {VIASR, SR47, 0xFF, 0x1E}
498};
499
500#define NUM_TOTAL_K400_LCD_RES_10X7_12X10 ARRAY_SIZE(K400_LCD_RES_10X7_12X10)
501
502/* ++++++ K400 ++++++ */
503/*   Panel 1024x768    */
504struct 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},
514	/*IGA2 Offset */
515	{VIACR, CR66, 0xFF, 0x8C}, {VIACR, CR67, 0x03, 0x00},
516	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x87}, {VIASR, SR47, 0xFF, 0x4C}
517};
518
519#define NUM_TOTAL_K400_LCD_RES_6X4_10X7 ARRAY_SIZE(K400_LCD_RES_6X4_10X7)
520
521struct 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},
531	/*IGA2 Offset */
532	{VIACR, CR66, 0xFF, 0x96}, {VIACR, CR67, 0x03, 0x00},
533	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x05}, {VIASR, SR47, 0xFF, 0x10}
534};
535
536#define NUM_TOTAL_K400_LCD_RES_7X4_10X7 ARRAY_SIZE(K400_LCD_RES_7X4_10X7)
537
538struct 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},
548	/*IGA2 Offset */
549	{VIACR, CR66, 0xFF, 0x8C}, {VIACR, CR67, 0x03, 0x00},
550	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x84}, {VIASR, SR47, 0xFF, 0xB9}
551};
552
553#define NUM_TOTAL_K400_LCD_RES_8X6_10X7 ARRAY_SIZE(K400_LCD_RES_8X6_10X7)
554
555/* ++++++ K400 ++++++ */
556/*   Panel 800x600     */
557struct 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},
567	/*IGA2 Offset */
568	{VIACR, CR66, 0xFF, 0x6E}, {VIACR, CR67, 0x03, 0x00},
569	 /*VCLK*/ {VIASR, SR46, 0xFF, 0x86}, {VIASR, SR47, 0xFF, 0xB3}
570};
571
572#define NUM_TOTAL_K400_LCD_RES_6X4_8X6 ARRAY_SIZE(K400_LCD_RES_6X4_8X6)
573
574struct 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},
584	/*IGA2 Offset */
585	{VIACR, CR66, 0xFF, 0x78}, {VIACR, CR67, 0x03, 0x00},
586	 /*VCLK*/ {VIASR, SR46, 0xFF, 0xC4}, {VIASR, SR47, 0xFF, 0x59}
587};
588
589#define NUM_TOTAL_K400_LCD_RES_7X4_8X6 ARRAY_SIZE(K400_LCD_RES_7X4_8X6)
590
591#endif /* __LCDTBL_H__ */
592