aboutsummaryrefslogtreecommitdiffstats
path: root/vgasrc/geodevga.c
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2012-10-01 14:02:49 +0200
committerKevin O'Connor <kevin@koconnor.net>2012-10-07 22:05:42 -0400
commit02203b5302238640271b2077d15c685bd1d795f2 (patch)
tree7c9978eba2ebcf2c21a3e7c58e2d5f0934d686c3 /vgasrc/geodevga.c
parentfad37fd6d1299c2147323409e1b291a8a30b1f4c (diff)
downloadseabios-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.c19
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 = {