S5pv210的 LCD clock 居然只能设那么低的值?why?
2012-11-09 14:40
204 查看
The CLKVAL field in VIDCON0 register controls the rate of RGB_VCLK signal. Table 32-5 defines the relationship
of RGB_VCLK and CLKVAL. The minimum value of CLKVAL is 1.
RGB_VCLK (Hz) =HCLK/ (CLKVAL+1), where CLKVAL >= 1
Table 32-5 Relation 16BPP Between VCLK and CLKVAL
(TFT, Frequency of Video Clock Source=60MHz)
CLKVAL 60MHz/X VCLK
2 60 MHz/3 20.0 MHz
3 60 MHz/4 15.0 MHz
: : :
63 60 MHz/64 937.5 kHz
CLKSEL_F
Selects the video clock source.
0 = HCLK
1 = SCLK_FIMD
HCLK is the bus clock, whereas SCLK_FIMD is the special clock
for display controller.
For more information, refer to Chapter, ―02.03 CLOCK
CONTROLLER‖.
FIMD_RATIO [23:20]
DIVFIMD clock divider ratio,
SCLK_FIMD = MOUTFIMD
/ (FIMD_RATIO + 1)
MOUTFIMD 在手册居然不出现了,不知道哪里来的,只是看到代码里面有这么回事。
of RGB_VCLK and CLKVAL. The minimum value of CLKVAL is 1.
RGB_VCLK (Hz) =HCLK/ (CLKVAL+1), where CLKVAL >= 1
Table 32-5 Relation 16BPP Between VCLK and CLKVAL
(TFT, Frequency of Video Clock Source=60MHz)
CLKVAL 60MHz/X VCLK
2 60 MHz/3 20.0 MHz
3 60 MHz/4 15.0 MHz
: : :
63 60 MHz/64 937.5 kHz
CLKSEL_F
Selects the video clock source.
0 = HCLK
1 = SCLK_FIMD
HCLK is the bus clock, whereas SCLK_FIMD is the special clock
for display controller.
For more information, refer to Chapter, ―02.03 CLOCK
CONTROLLER‖.
FIMD_RATIO [23:20]
DIVFIMD clock divider ratio,
SCLK_FIMD = MOUTFIMD
/ (FIMD_RATIO + 1)
MOUTFIMD 在手册居然不出现了,不知道哪里来的,只是看到代码里面有这么回事。
static BOOL Disp_get_src_clock (unsigned int CLKSrc, unsigned int *pdwVCLKSrc) { DWORD dwTimeOut = 0; volatile DWORD dwReadTemp = 0; DWORD dwVCLKSrc = 0; switch(CLKSrc) { case CLKSEL_F_HCLK: dwVCLKSrc = g_pBSPArg->SystemClocks.HCLKDSYS_CLK; DISP_INF((_T("[DISP:INF] VCLK Source = HCLK (%d Hz)\n\r"), dwVCLKSrc)); break; case CLKSEL_F_LCDCLK: Disp_set_syscon_clk_fimd(); // MPLL #if MPLL_USE // if we use Dout_MPLL then we can calculate Clock from SysClk Register dwVCLKSrc = GET_MPLLCLK(g_pCMUCLKReg->PLL_CON.MPLL_CON); DISP_INF((_T("[DISP:INF] MPLLout = (%d Hz)\n\r"), dwVCLKSrc)); dwVCLKSrc /= (((g_pCMUCLKReg->CLK_DIV.CLK_DIV1 & BW_DIV_FIMD_RATIO<<BP_DIV_FIMD_RATIO)>>BP_DIV_FIMD_RATIO) + 1); #else dwVCLKSrc = 54000000; // 54Mhz #endif DISP_INF((_T("[DISP:INF] VCLK Source = LCDCLK (%d Hz)\n\r"), dwVCLKSrc)); break; case CLKSEL_F_EXT27M: dwVCLKSrc = 27000000; // 27MHz DISP_INF((_T("[DISP:INF] VCLK Source = EXT27M (%d Hz)\n\r"), dwVCLKSrc)); break; default: DISP_ERR((_T("[DISP:ERR] --Disp_get_vclk_direction_divider() : Unknown CLKSrc = %d\n\r"), CLKSrc)); return FALSE; break; } *pdwVCLKSrc = dwVCLKSrc; return TRUE; } static void Disp_set_syscon_clk_fimd (void) { DWORD dwTimeOut = 0; volatile DWORD dwReadTemp = 0; #if MPLL_USE g_pCMUCLKReg->CLK_SRC.CLK_SRC_MASK0 = \ (g_pCMUCLKReg->CLK_SRC.CLK_SRC_MASK0 & \ ~(BW_MUX_FIMD_MASK<<BP_MUX_FIMD_MASK)) | \ (MUX_OUT_OFF<<BP_MUX_FIMD_MASK); //MUX OFF g_pCMUCLKReg->CLK_SRC.CLK_SRC1 = (g_pCMUCLKReg->CLK_SRC.CLK_SRC1 & \ ~(BW_MUX_FIMD_SEL<<BP_MUX_FIMD_SEL)) | \ (CLK_SCLKMPLL<<BP_MUX_FIMD_SEL); g_pCMUCLKReg->CLK_DIV.CLK_DIV1 = \ (g_pCMUCLKReg->CLK_DIV.CLK_DIV1 & \ ~(BW_DIV_FIMD_RATIO<<BP_DIV_FIMD_RATIO)) | ((MPLL_DIV_VALUE-1)<<BP_DIV_FIMD_RATIO); // MPLL/3 // Divider Status Check dwTimeOut = 10000; do { dwReadTemp = g_pCMUCLKReg->CLK_DIV_STAT.CLK_DIV_STAT0; if(dwTimeOut-- == 0) { break; } }while(dwReadTemp & (DIV_STAT_ON_CHANGING<<BP_DIV_FIMD_STAT)); g_pCMUCLKReg->CLK_SRC.CLK_SRC_MASK0 = \ (g_pCMUCLKReg->CLK_SRC.CLK_SRC_MASK0 & \ ~(BW_MUX_FIMD_MASK<<BP_MUX_FIMD_MASK)) | (MUX_OUT_ON<<BP_MUX_FIMD_MASK); //MUX ON DISP_INF((_T("[DISP:INF] CLK_SRC_MASK0 = 0x%08x\n\r"), g_pCMUCLKReg->CLK_SRC.CLK_SRC_MASK0)); DISP_INF((_T("[DISP:INF] CLK_SRC1 = 0x%08x\n\r"), g_pCMUCLKReg->CLK_SRC.CLK_SRC1)); DISP_INF((_T("[DISP:INF] CLK_DIV1 = 0x%08x\n\r"), g_pCMUCLKReg->CLK_DIV.CLK_DIV1)); #else g_pCMUCLKReg->CLK_SRC2 = (g_pCMUCLKReg->CLK_SRC2 & ~BM_LCD_SEL) | CLKSEL_VCLK_54(LCD_SEL); g_pCMUCLKReg->CLK_DIV3 = (g_pCMUCLKReg->CLK_DIV3 & ~BM_LCD_RATIO) | CLKDIV_LCD_RATIO(LCD_RATIO, 1); #endif }
相关文章推荐
- 今夜,按捺不住心中的兴奋——S5PV210 真的好厉害,LCD 控制器居然可以输出1080P(1920*1080超高分辨率)!
- 怪了,在提问区居然没列出来,只能贴首页了
- s5pv210 LCD驱动移植
- LCD显示的一些基本概念以及DSI的一些clock解释
- 第39级台阶 每一步只能迈上1个或2个台阶.先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步.那么,上完39级台阶,有多少种不同的上法(java代码)
- s5pv210 android hdmi与LCD异步显示之fb2多线程操作驱动修改
- s5pv210-nand s5pv210-nand: failed to get clock问题
- 如果构造方法中包含super(…)或this(…)调用,那么它们只能作为该构造方法的第一条语句,也就是说连try…catch都不可以有
- S5PV210 -- HX8369 LCD 驱动
- ARM9 S3C2450 这样的参数也能输出VGA 1024*768 的分辨率,A8 S5pv210 这么恐怖的参数也同样只能输出1024*768没天理啊!
- 曾经想学很多很多,最后发现自己只能专心学那么很少的几个必杀技
- linux-3.8.0 S5PV210 LCD显示屏驱动移植
- S5PV210----裸机LCD驱动
- 曾经想学很多很多,最后发现自己只能专心学那么很少的几个必杀技 【转】
- [置顶] s5pv210,lcd驱动,x210,驱动
- 奶奶的熊,就是因为一跳串口线,导致一个客户重新做了一次S5pv210 底板,烧写wince6.0 两周不成功,哎,实在没办法,叫他发电路板给我调试,我发现居然是串口线!
- 曾经想学很多很多,最后发现自己只能专心学那么很少的几个必杀技
- S5PV210 LCD驱动的分析过程——定位相关源代码
- 曾经想学很多很多,最后发现自己只能专心学那么很少的几个必杀技
- 关于S3C2440的LCD只能显示2张图片,不能显示多张图片的问题