aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/via/viamode.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-09-22 19:47:35 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-23 10:39:53 -0400
commit0306ab11c396f93056009152464ff104e4721817 (patch)
treeb4b2586011d0b2669a2c02897795aacdb74d31d8 /drivers/video/via/viamode.c
parent5ff32f69e75deca5ee1a2f421ca8a3e43cfaa339 (diff)
viafb: add support for the VX855 chipset
Add support for a new VIA integrated graphics chipset, the VX855. Signed-off-by: HaraldWelte <HaraldWelte@viatech.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Scott Fang <ScottFang@viatech.com.cn> Cc: Joseph Chan <JosephChan@via.com.tw> Cc: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/via/viamode.c')
-rw-r--r--drivers/video/via/viamode.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/drivers/video/via/viamode.c b/drivers/video/via/viamode.c
index 16a8a97f6042..b74f8a67923c 100644
--- a/drivers/video/via/viamode.c
+++ b/drivers/video/via/viamode.c
@@ -312,6 +312,60 @@ struct io_reg CX700_ModeXregs[] = { {VIASR, SR10, 0xFF, 0x01},
312{VIACR, CR9B, 0xFF, 0x00} 312{VIACR, CR9B, 0xFF, 0x00}
313}; 313};
314 314
315struct io_reg VX855_ModeXregs[] = {
316{VIASR, SR10, 0xFF, 0x01},
317{VIASR, SR15, 0x02, 0x02},
318{VIASR, SR16, 0xBF, 0x08},
319{VIASR, SR17, 0xFF, 0x1F},
320{VIASR, SR18, 0xFF, 0x4E},
321{VIASR, SR1A, 0xFB, 0x08},
322{VIASR, SR1B, 0xFF, 0xF0},
323{VIASR, SR1E, 0x07, 0x01},
324{VIASR, SR2A, 0xF0, 0x00},
325{VIASR, SR58, 0xFF, 0x00},
326{VIASR, SR59, 0xFF, 0x00},
327{VIASR, SR2D, 0xFF, 0xFF}, /* VCK and LCK PLL power on. */
328{VIACR, CR09, 0xFF, 0x00}, /* Initial CR09=0*/
329{VIACR, CR11, 0x8F, 0x00}, /* IGA1 initial Vertical end */
330{VIACR, CR17, 0x7F, 0x00}, /* IGA1 CRT Mode control init */
331{VIACR, CR0A, 0xFF, 0x1E}, /* Cursor Start */
332{VIACR, CR0B, 0xFF, 0x00}, /* Cursor End */
333{VIACR, CR0E, 0xFF, 0x00}, /* Cursor Location High */
334{VIACR, CR0F, 0xFF, 0x00}, /* Cursor Localtion Low */
335{VIACR, CR32, 0xFF, 0x00},
336{VIACR, CR33, 0x7F, 0x00},
337{VIACR, CR35, 0xFF, 0x00},
338{VIACR, CR36, 0x08, 0x00},
339{VIACR, CR69, 0xFF, 0x00},
340{VIACR, CR6A, 0xFD, 0x60},
341{VIACR, CR6B, 0xFF, 0x00},
342{VIACR, CR6C, 0xFF, 0x00},
343{VIACR, CR7A, 0xFF, 0x01}, /* LCD Scaling Parameter 1 */
344{VIACR, CR7B, 0xFF, 0x02}, /* LCD Scaling Parameter 2 */
345{VIACR, CR7C, 0xFF, 0x03}, /* LCD Scaling Parameter 3 */
346{VIACR, CR7D, 0xFF, 0x04}, /* LCD Scaling Parameter 4 */
347{VIACR, CR7E, 0xFF, 0x07}, /* LCD Scaling Parameter 5 */
348{VIACR, CR7F, 0xFF, 0x0A}, /* LCD Scaling Parameter 6 */
349{VIACR, CR80, 0xFF, 0x0D}, /* LCD Scaling Parameter 7 */
350{VIACR, CR81, 0xFF, 0x13}, /* LCD Scaling Parameter 8 */
351{VIACR, CR82, 0xFF, 0x16}, /* LCD Scaling Parameter 9 */
352{VIACR, CR83, 0xFF, 0x19}, /* LCD Scaling Parameter 10 */
353{VIACR, CR84, 0xFF, 0x1C}, /* LCD Scaling Parameter 11 */
354{VIACR, CR85, 0xFF, 0x1D}, /* LCD Scaling Parameter 12 */
355{VIACR, CR86, 0xFF, 0x1E}, /* LCD Scaling Parameter 13 */
356{VIACR, CR87, 0xFF, 0x1F}, /* LCD Scaling Parameter 14 */
357{VIACR, CR88, 0xFF, 0x40}, /* LCD Panel Type */
358{VIACR, CR89, 0xFF, 0x00}, /* LCD Timing Control 0 */
359{VIACR, CR8A, 0xFF, 0x88}, /* LCD Timing Control 1 */
360{VIACR, CRD4, 0xFF, 0x81}, /* Second power sequence control */
361{VIACR, CR91, 0xFF, 0x80}, /* 24/12 bit LVDS Data off */
362{VIACR, CR96, 0xFF, 0x00},
363{VIACR, CR97, 0xFF, 0x00},
364{VIACR, CR99, 0xFF, 0x00},
365{VIACR, CR9B, 0xFF, 0x00},
366{VIACR, CRD2, 0xFF, 0xFF} /* TMDS/LVDS control register. */
367};
368
315/* Video Mode Table */ 369/* Video Mode Table */
316/* Common Setting for Video Mode */ 370/* Common Setting for Video Mode */
317struct io_reg CLE266_ModeXregs[] = { {VIASR, SR1E, 0xF0, 0x00}, 371struct io_reg CLE266_ModeXregs[] = { {VIASR, SR1E, 0xF0, 0x00},
@@ -1012,6 +1066,7 @@ int NUM_TOTAL_CN400_ModeXregs = ARRAY_SIZE(CN400_ModeXregs);
1012int NUM_TOTAL_CN700_ModeXregs = ARRAY_SIZE(CN700_ModeXregs); 1066int NUM_TOTAL_CN700_ModeXregs = ARRAY_SIZE(CN700_ModeXregs);
1013int NUM_TOTAL_KM400_ModeXregs = ARRAY_SIZE(KM400_ModeXregs); 1067int NUM_TOTAL_KM400_ModeXregs = ARRAY_SIZE(KM400_ModeXregs);
1014int NUM_TOTAL_CX700_ModeXregs = ARRAY_SIZE(CX700_ModeXregs); 1068int NUM_TOTAL_CX700_ModeXregs = ARRAY_SIZE(CX700_ModeXregs);
1069int NUM_TOTAL_VX855_ModeXregs = ARRAY_SIZE(VX855_ModeXregs);
1015int NUM_TOTAL_CLE266_ModeXregs = ARRAY_SIZE(CLE266_ModeXregs); 1070int NUM_TOTAL_CLE266_ModeXregs = ARRAY_SIZE(CLE266_ModeXregs);
1016int NUM_TOTAL_PATCH_MODE = ARRAY_SIZE(res_patch_table); 1071int NUM_TOTAL_PATCH_MODE = ARRAY_SIZE(res_patch_table);
1017int NUM_TOTAL_MODETABLE = ARRAY_SIZE(CLE266Modes); 1072int NUM_TOTAL_MODETABLE = ARRAY_SIZE(CLE266Modes);