diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2012-10-01 14:02:49 +0200 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2012-10-07 22:05:42 -0400 |
commit | 02203b5302238640271b2077d15c685bd1d795f2 (patch) | |
tree | 7c9978eba2ebcf2c21a3e7c58e2d5f0934d686c3 /vgasrc/geodevga.c | |
parent | fad37fd6d1299c2147323409e1b291a8a30b1f4c (diff) | |
download | seabios-02203b5302238640271b2077d15c685bd1d795f2.tar.gz |
geodevga: Setup flat panel if needed
This patch does basic setup of the flat panel and turns the
panel on.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Diffstat (limited to 'vgasrc/geodevga.c')
-rw-r--r-- | vgasrc/geodevga.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/vgasrc/geodevga.c b/vgasrc/geodevga.c index 94298564..5b42e00e 100644 --- a/vgasrc/geodevga.c +++ b/vgasrc/geodevga.c @@ -292,6 +292,25 @@ static void vp_setup(void) geode_vp_mask(VP_DCFG, 0, VP_DCFG_CRT_EN|VP_DCFG_HSYNC_EN|VP_DCFG_VSYNC_EN|VP_DCFG_DAC_BL_EN|VP_DCFG_CRT_SKEW); reg = geode_vp_read(VP_DCFG); dprintf(1,"VP_SETUP VP_DCFG=0x%08x\n",reg); + + /* setup flat panel */ + if (CONFIG_VGA_OUTPUT_PANEL || CONFIG_VGA_OUTPUT_CRT_PANEL) { + dprintf(1, "Setting up flat panel\n"); + /* write timing register */ + geode_fp_write(FP_PT1, 0x0); + geode_fp_write(FP_PT2, FP_PT2_SCRC); + + /* set pad select for TFT/LVDS */ + msr = VP_MSR_PADSEL_TFT_SEL_HIGH; + msr = msr << 32; + msr |= VP_MSR_PADSEL_TFT_SEL_LOW; + geode_msr_mask(VP_MSR_PADSEL, ~msr, msr); + + /* turn the panel on (if it isn't already) */ + reg = geode_fp_read(FP_PM); + reg |= FP_PM_P; + geode_fp_write(FP_PM, reg); + } } static u8 geode_crtc_01[] VAR16 = { |