|
@@ -230,16 +230,20 @@ enum pll_status analogix_dp_get_pll_lock_status(struct analogix_dp_device *dp)
|
|
|
void analogix_dp_set_pll_power_down(struct analogix_dp_device *dp, bool enable)
|
|
|
{
|
|
|
u32 reg;
|
|
|
+ u32 mask = DP_PLL_PD;
|
|
|
+ u32 pd_addr = ANALOGIX_DP_PLL_CTL;
|
|
|
|
|
|
- if (enable) {
|
|
|
- reg = readl(dp->reg_base + ANALOGIX_DP_PLL_CTL);
|
|
|
- reg |= DP_PLL_PD;
|
|
|
- writel(reg, dp->reg_base + ANALOGIX_DP_PLL_CTL);
|
|
|
- } else {
|
|
|
- reg = readl(dp->reg_base + ANALOGIX_DP_PLL_CTL);
|
|
|
- reg &= ~DP_PLL_PD;
|
|
|
- writel(reg, dp->reg_base + ANALOGIX_DP_PLL_CTL);
|
|
|
+ if (dp->plat_data && is_rockchip(dp->plat_data->dev_type)) {
|
|
|
+ pd_addr = ANALOGIX_DP_PD;
|
|
|
+ mask = RK_PLL_PD;
|
|
|
}
|
|
|
+
|
|
|
+ reg = readl(dp->reg_base + pd_addr);
|
|
|
+ if (enable)
|
|
|
+ reg |= mask;
|
|
|
+ else
|
|
|
+ reg &= ~mask;
|
|
|
+ writel(reg, dp->reg_base + pd_addr);
|
|
|
}
|
|
|
|
|
|
void analogix_dp_set_analog_power_down(struct analogix_dp_device *dp,
|