mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-03 17:51:57 +09:00
drm/msm/dsi_phy_10nm: implement PHY disabling
Implement phy_disable() callback to disable DSI PHY lanes and blocks
when phy is not used.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fixes: ff73ff1940 ("drm/msm/dsi: Populate the 10nm PHY funcs")
Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
committed by
Rob Clark
parent
b66ccc5713
commit
e92ce317fb
@@ -192,6 +192,28 @@ static int dsi_10nm_phy_enable(struct msm_dsi_phy *phy, int src_pll_id,
|
||||
|
||||
static void dsi_10nm_phy_disable(struct msm_dsi_phy *phy)
|
||||
{
|
||||
void __iomem *base = phy->base;
|
||||
u32 data;
|
||||
|
||||
DBG("");
|
||||
|
||||
if (dsi_phy_hw_v3_0_is_pll_on(phy))
|
||||
pr_warn("Turning OFF PHY while PLL is on\n");
|
||||
|
||||
dsi_phy_hw_v3_0_config_lpcdrx(phy, false);
|
||||
data = dsi_phy_read(base + REG_DSI_10nm_PHY_CMN_CTRL_0);
|
||||
|
||||
/* disable all lanes */
|
||||
data &= ~0x1F;
|
||||
dsi_phy_write(base + REG_DSI_10nm_PHY_CMN_CTRL_0, data);
|
||||
dsi_phy_write(base + REG_DSI_10nm_PHY_CMN_LANE_CTRL0, 0);
|
||||
|
||||
/* Turn off all PHY blocks */
|
||||
dsi_phy_write(base + REG_DSI_10nm_PHY_CMN_CTRL_0, 0x00);
|
||||
/* make sure phy is turned off */
|
||||
wmb();
|
||||
|
||||
DBG("DSI%d PHY disabled", phy->id);
|
||||
}
|
||||
|
||||
static int dsi_10nm_phy_init(struct msm_dsi_phy *phy)
|
||||
|
||||
Reference in New Issue
Block a user