mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 08:01:08 +00:00
board: ge: bx50v3: correct LDB clock
Use Video PLL to provide 65MHz for all displays. Signed-off-by: Ian Ray <ian.ray@ge.com> Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com>
This commit is contained in:
parent
6ee7bb528e
commit
d9ea0d77a8
1 changed files with 17 additions and 13 deletions
|
@ -426,14 +426,22 @@ static void enable_videopll(void)
|
||||||
|
|
||||||
setbits_le32(&ccm->analog_pll_video, BM_ANADIG_PLL_VIDEO_POWERDOWN);
|
setbits_le32(&ccm->analog_pll_video, BM_ANADIG_PLL_VIDEO_POWERDOWN);
|
||||||
|
|
||||||
/* set video pll to 910MHz (24MHz * (37+11/12))
|
/* PLL_VIDEO 455MHz (24MHz * (37+11/12) / 2)
|
||||||
* video pll post div to 910/4 = 227.5MHz
|
* |
|
||||||
*/
|
* PLL5
|
||||||
|
* |
|
||||||
|
* CS2CDR[LDB_DI0_CLK_SEL]
|
||||||
|
* |
|
||||||
|
* +----> LDB_DI0_SERIAL_CLK_ROOT
|
||||||
|
* |
|
||||||
|
* +--> CSCMR2[LDB_DI0_IPU_DIV] --> LDB_DI0_IPU 455 / 7 = 65 MHz
|
||||||
|
*/
|
||||||
|
|
||||||
clrsetbits_le32(&ccm->analog_pll_video,
|
clrsetbits_le32(&ccm->analog_pll_video,
|
||||||
BM_ANADIG_PLL_VIDEO_DIV_SELECT |
|
BM_ANADIG_PLL_VIDEO_DIV_SELECT |
|
||||||
BM_ANADIG_PLL_VIDEO_POST_DIV_SELECT,
|
BM_ANADIG_PLL_VIDEO_POST_DIV_SELECT,
|
||||||
BF_ANADIG_PLL_VIDEO_DIV_SELECT(37) |
|
BF_ANADIG_PLL_VIDEO_DIV_SELECT(37) |
|
||||||
BF_ANADIG_PLL_VIDEO_POST_DIV_SELECT(0));
|
BF_ANADIG_PLL_VIDEO_POST_DIV_SELECT(1));
|
||||||
|
|
||||||
writel(BF_ANADIG_PLL_VIDEO_NUM_A(11), &ccm->analog_pll_video_num);
|
writel(BF_ANADIG_PLL_VIDEO_NUM_A(11), &ccm->analog_pll_video_num);
|
||||||
writel(BF_ANADIG_PLL_VIDEO_DENOM_B(12), &ccm->analog_pll_video_denom);
|
writel(BF_ANADIG_PLL_VIDEO_DENOM_B(12), &ccm->analog_pll_video_denom);
|
||||||
|
@ -459,8 +467,8 @@ static void setup_display_b850v3(void)
|
||||||
|
|
||||||
enable_videopll();
|
enable_videopll();
|
||||||
|
|
||||||
/* IPU1 D0 clock is 227.5 / 3.5 = 65MHz */
|
/* IPU1 DI0 clock is 455MHz / 7 = 65MHz */
|
||||||
clrbits_le32(&mxc_ccm->cscmr2, MXC_CCM_CSCMR2_LDB_DI0_IPU_DIV);
|
setbits_le32(&mxc_ccm->cscmr2, MXC_CCM_CSCMR2_LDB_DI0_IPU_DIV);
|
||||||
|
|
||||||
imx_setup_hdmi();
|
imx_setup_hdmi();
|
||||||
|
|
||||||
|
@ -507,7 +515,7 @@ static void setup_display_bx50v3(void)
|
||||||
*/
|
*/
|
||||||
mdelay(200);
|
mdelay(200);
|
||||||
|
|
||||||
/* IPU1 DI0 clock is 480/7 = 68.5 MHz */
|
/* IPU1 DI0 clock is 455MHz / 7 = 65MHz */
|
||||||
setbits_le32(&mxc_ccm->cscmr2, MXC_CCM_CSCMR2_LDB_DI0_IPU_DIV);
|
setbits_le32(&mxc_ccm->cscmr2, MXC_CCM_CSCMR2_LDB_DI0_IPU_DIV);
|
||||||
|
|
||||||
/* Set LDB_DI0 as clock source for IPU_DI0 */
|
/* Set LDB_DI0 as clock source for IPU_DI0 */
|
||||||
|
@ -683,12 +691,8 @@ int board_early_init_f(void)
|
||||||
setup_iomux_uart();
|
setup_iomux_uart();
|
||||||
|
|
||||||
#if defined(CONFIG_VIDEO_IPUV3)
|
#if defined(CONFIG_VIDEO_IPUV3)
|
||||||
if (is_b850v3())
|
/* Set LDB clock to Video PLL */
|
||||||
/* Set LDB clock to Video PLL */
|
select_ldb_di_clock_source(MXC_PLL5_CLK);
|
||||||
select_ldb_di_clock_source(MXC_PLL5_CLK);
|
|
||||||
else
|
|
||||||
/* Set LDB clock to USB PLL */
|
|
||||||
select_ldb_di_clock_source(MXC_PLL3_SW_CLK);
|
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue