diff options
| author | Padmanabhan Komanduru <pkomandu@codeaurora.org> | 2014-07-03 12:05:06 +0530 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:31:35 -0700 |
| commit | 022d7ffdfdbb4d7c938fc204b76837c4043a67cf (patch) | |
| tree | 7ba66afbcf00f366382b0231beb92ada03142f5d | |
| parent | 332378092471e5446ecc4051ea0cb42118d008ed (diff) | |
msm: mdss: update the PHY settings for DSI1 for 8939
For 8939, the DSI_1_PHY_DSIPHY_GLBL_TEST_CTRL register setting
is different when compared to other chipsets. Update the
register settings for this based on the DSI_HW_VERSION check.
This enables dual DSI panel support on 8939.
Change-Id: Iebf8015d4a4c978283e74b104bd955a6bf7004c2
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi.h | 3 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/msm_mdss_io_8974.c | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi.h b/drivers/video/fbdev/msm/mdss_dsi.h index 62df757052d4..998ac9d7e95f 100644 --- a/drivers/video/fbdev/msm/mdss_dsi.h +++ b/drivers/video/fbdev/msm/mdss_dsi.h @@ -45,10 +45,13 @@ #define DSI_PANEL_MAX 8 #define MDSS_DSI_HW_REV_100 0x10000000 /* 8974 */ +#define MDSS_DSI_HW_REV_100_1 0x10000001 /* 8x26 */ +#define MDSS_DSI_HW_REV_100_2 0x10000002 /* 8x26v2 */ #define MDSS_DSI_HW_REV_101 0x10010000 /* 8974v2 */ #define MDSS_DSI_HW_REV_101_1 0x10010001 /* 8974Pro */ #define MDSS_DSI_HW_REV_102 0x10020000 /* 8084 */ #define MDSS_DSI_HW_REV_103 0x10030000 /* 8994 */ +#define MDSS_DSI_HW_REV_103_1 0x10030001 /* 8916/8936 */ enum { /* mipi dsi panel */ diff --git a/drivers/video/fbdev/msm/msm_mdss_io_8974.c b/drivers/video/fbdev/msm/msm_mdss_io_8974.c index 80364a7b4a97..80badaf41496 100644 --- a/drivers/video/fbdev/msm/msm_mdss_io_8974.c +++ b/drivers/video/fbdev/msm/msm_mdss_io_8974.c @@ -1151,6 +1151,7 @@ void mdss_dsi_phy_init(struct mdss_panel_data *pdata) struct mdss_dsi_phy_ctrl *pd; int i, off, ln, offset; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL, *temp_ctrl = NULL; + u32 ctrl_rev; ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); @@ -1237,8 +1238,11 @@ void mdss_dsi_phy_init(struct mdss_panel_data *pdata) MIPI_OUTP((ctrl_pdata->phy_io.base) + 0x0170, 0x5f); wmb(); + ctrl_rev = MIPI_INP(ctrl_pdata->ctrl_base); + /* DSI_0_PHY_DSIPHY_GLBL_TEST_CTRL */ - if ((ctrl_pdata->panel_data).panel_info.pdest == DISPLAY_1) + if (((ctrl_pdata->panel_data).panel_info.pdest == DISPLAY_1) || + (ctrl_rev == MDSS_DSI_HW_REV_103_1)) MIPI_OUTP((ctrl_pdata->phy_io.base) + 0x01d4, 0x01); else MIPI_OUTP((ctrl_pdata->phy_io.base) + 0x01d4, 0x00); |
