board: ge: bx50v3: correct LDB clock
authorIan Ray <ian.ray@ge.com>
Mon, 15 Oct 2018 07:59:44 +0000 (09:59 +0200)
committerStefano Babic <sbabic@denx.de>
Mon, 22 Oct 2018 12:32:07 +0000 (14:32 +0200)
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>
board/ge/bx50v3/bx50v3.c

index b2d065c1b801244e01216ff637032390718dc3cd..f07141b1c34b9d6483322ef222714004bff02eb2 100644 (file)
@@ -426,14 +426,22 @@ static void enable_videopll(void)
 
        setbits_le32(&ccm->analog_pll_video, BM_ANADIG_PLL_VIDEO_POWERDOWN);
 
-       /* set video pll to 910MHz (24MHz * (37+11/12))
-       * video pll post div to 910/4 = 227.5MHz
-       */
+       /* PLL_VIDEO  455MHz (24MHz * (37+11/12) / 2)
+        *   |
+        * 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,
                        BM_ANADIG_PLL_VIDEO_DIV_SELECT |
                        BM_ANADIG_PLL_VIDEO_POST_DIV_SELECT,
                        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_DENOM_B(12), &ccm->analog_pll_video_denom);
@@ -459,8 +467,8 @@ static void setup_display_b850v3(void)
 
        enable_videopll();
 
-       /* IPU1 D0 clock is 227.5 / 3.5 = 65MHz */
-       clrbits_le32(&mxc_ccm->cscmr2, MXC_CCM_CSCMR2_LDB_DI0_IPU_DIV);
+       /* IPU1 DI0 clock is 455MHz / 7 = 65MHz */
+       setbits_le32(&mxc_ccm->cscmr2, MXC_CCM_CSCMR2_LDB_DI0_IPU_DIV);
 
        imx_setup_hdmi();
 
@@ -507,7 +515,7 @@ static void setup_display_bx50v3(void)
         */
        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);
 
        /* Set LDB_DI0 as clock source for IPU_DI0 */
@@ -683,12 +691,8 @@ int board_early_init_f(void)
        setup_iomux_uart();
 
 #if defined(CONFIG_VIDEO_IPUV3)
-       if (is_b850v3())
-               /* Set LDB clock to Video PLL */
-               select_ldb_di_clock_source(MXC_PLL5_CLK);
-       else
-               /* Set LDB clock to USB PLL */
-               select_ldb_di_clock_source(MXC_PLL3_SW_CLK);
+       /* Set LDB clock to Video PLL */
+       select_ldb_di_clock_source(MXC_PLL5_CLK);
 #endif
        return 0;
 }