summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/msm
diff options
context:
space:
mode:
authorAravind Venkateswaran <aravindh@codeaurora.org>2016-08-17 12:00:34 -0700
committerAravind Venkateswaran <aravindh@codeaurora.org>2016-08-18 15:36:40 -0700
commit1df0ae65ac4e52df36525fd2e886cc3b2e9aa759 (patch)
tree5b6087f213383b91e245a23cec9382841c457a87 /drivers/video/fbdev/msm
parentbd1ead72ec97cae894544ebbb4de8c38355f0732 (diff)
msm: mdss: dsi: update DSI phy v3 initialization sequence
Update the DSI phy v3 initialization sequence as per the recommended values. The key changes include deferring the enabling of the global bit clock until after the PLL is locked, along with updates to the lane strength settings. CRs-Fixed: 1033911 Change-Id: I1993f5cedb629f44a5b07d429a77f17218f2d6e7 Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev/msm')
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi_phy_v3.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi_phy_v3.c b/drivers/video/fbdev/msm/mdss_dsi_phy_v3.c
index 7d201a574a00..b99983c7b00a 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_phy_v3.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_phy_v3.c
@@ -113,8 +113,8 @@ static void mdss_dsi_phy_v3_set_pll_source(
else
pll_src = 0x00; /* internal PLL */
- /* set the PLL src and set global clock enable */
- reg = (pll_src << 2) | BIT(5);
+ /* set the PLL src */
+ reg = (pll_src << 2);
DSI_PHY_W32(ctrl->phy_io.base, CMN_CLK_CFG1, reg);
}
@@ -183,7 +183,7 @@ static void mdss_dsi_phy_v3_config_lane_settings(
struct mdss_dsi_ctrl_pdata *ctrl)
{
int i;
- u32 tx_dctrl[] = {0x98, 0x99, 0x98, 0x9a, 0x98};
+ u32 tx_dctrl[] = {0x18, 0x19, 0x18, 0x02, 0x18};
struct mdss_dsi_phy_ctrl *pd =
&(((ctrl->panel_data).panel_info.mipi).dsi_phy_db);
@@ -198,8 +198,8 @@ static void mdss_dsi_phy_v3_config_lane_settings(
*/
DSI_PHY_W32(ctrl->phy_io.base, LNX_LPRX_CTRL(i), 0);
- DSI_PHY_W32(ctrl->phy_io.base, LNX_HSTX_STR_CTRL(i), 0x88);
DSI_PHY_W32(ctrl->phy_io.base, LNX_PIN_SWAP(i), 0x0);
+ DSI_PHY_W32(ctrl->phy_io.base, LNX_HSTX_STR_CTRL(i), 0x88);
}
mdss_dsi_phy_v3_config_lpcdrx(ctrl, true);
@@ -383,8 +383,11 @@ int mdss_dsi_phy_v3_init(struct mdss_dsi_ctrl_pdata *ctrl,
return rc;
}
- /* de-assert digital power down */
- DSI_PHY_W32(ctrl->phy_io.base, CMN_CTRL_0, BIT(6));
+ /* de-assert digital and pll power down */
+ DSI_PHY_W32(ctrl->phy_io.base, CMN_CTRL_0, BIT(6) | BIT(5));
+
+ /* Assert PLL core reset */
+ DSI_PHY_W32(ctrl->phy_io.base, CMN_PLL_CNTRL, 0x00);
/* turn off resync FIFO */
DSI_PHY_W32(ctrl->phy_io.base, CMN_RBUF_CTRL, 0x00);