drm/msm/dsi: Add dsi phy tuning configuration support
Add support for MSM DSI PHY tuning configuration. Current design is to support drive strength and drive level/amplitude tuning for 10nm PHY version, but this can be extended to other PHY versions. Signed-off-by: Rajeev Nandan <quic_rajeevny@quicinc.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://lore.kernel.org/r/1643573719-32095-3-git-send-email-quic_rajeevny@quicinc.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
This commit is contained in:
parent
3bcf3d8341
commit
0874cf8614
@ -741,6 +741,12 @@ static int dsi_phy_driver_probe(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (phy->cfg->ops.parse_dt_properties) {
|
||||||
|
ret = phy->cfg->ops.parse_dt_properties(phy);
|
||||||
|
if (ret)
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
|
||||||
ret = dsi_phy_regulator_init(phy);
|
ret = dsi_phy_regulator_init(phy);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
@ -25,6 +25,7 @@ struct msm_dsi_phy_ops {
|
|||||||
void (*save_pll_state)(struct msm_dsi_phy *phy);
|
void (*save_pll_state)(struct msm_dsi_phy *phy);
|
||||||
int (*restore_pll_state)(struct msm_dsi_phy *phy);
|
int (*restore_pll_state)(struct msm_dsi_phy *phy);
|
||||||
bool (*set_continuous_clock)(struct msm_dsi_phy *phy, bool enable);
|
bool (*set_continuous_clock)(struct msm_dsi_phy *phy, bool enable);
|
||||||
|
int (*parse_dt_properties)(struct msm_dsi_phy *phy);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct msm_dsi_phy_cfg {
|
struct msm_dsi_phy_cfg {
|
||||||
@ -82,6 +83,8 @@ struct msm_dsi_dphy_timing {
|
|||||||
#define DSI_PIXEL_PLL_CLK 1
|
#define DSI_PIXEL_PLL_CLK 1
|
||||||
#define NUM_PROVIDED_CLKS 2
|
#define NUM_PROVIDED_CLKS 2
|
||||||
|
|
||||||
|
#define DSI_LANE_MAX 5
|
||||||
|
|
||||||
struct msm_dsi_phy {
|
struct msm_dsi_phy {
|
||||||
struct platform_device *pdev;
|
struct platform_device *pdev;
|
||||||
void __iomem *base;
|
void __iomem *base;
|
||||||
@ -99,6 +102,7 @@ struct msm_dsi_phy {
|
|||||||
|
|
||||||
struct msm_dsi_dphy_timing timing;
|
struct msm_dsi_dphy_timing timing;
|
||||||
const struct msm_dsi_phy_cfg *cfg;
|
const struct msm_dsi_phy_cfg *cfg;
|
||||||
|
void *tuning_cfg;
|
||||||
|
|
||||||
enum msm_dsi_phy_usecase usecase;
|
enum msm_dsi_phy_usecase usecase;
|
||||||
bool regulator_ldo_mode;
|
bool regulator_ldo_mode;
|
||||||
|
Loading…
Reference in New Issue
Block a user