drm/msm/dsi: Add dsi phy tuning configuration support
authorRajeev Nandan <quic_rajeevny@quicinc.com>
Sun, 30 Jan 2022 20:15:18 +0000 (01:45 +0530)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fri, 18 Feb 2022 15:32:59 +0000 (18:32 +0300)
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>
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
drivers/gpu/drm/msm/dsi/phy/dsi_phy.h

index 2027b38..31f3490 100644 (file)
@@ -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);
        if (ret)
                goto fail;
index 4c82575..dc91b43 100644 (file)
@@ -25,6 +25,7 @@ struct msm_dsi_phy_ops {
        void (*save_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);
+       int (*parse_dt_properties)(struct msm_dsi_phy *phy);
 };
 
 struct msm_dsi_phy_cfg {
@@ -82,6 +83,8 @@ struct msm_dsi_dphy_timing {
 #define DSI_PIXEL_PLL_CLK              1
 #define NUM_PROVIDED_CLKS              2
 
+#define DSI_LANE_MAX                   5
+
 struct msm_dsi_phy {
        struct platform_device *pdev;
        void __iomem *base;
@@ -99,6 +102,7 @@ struct msm_dsi_phy {
 
        struct msm_dsi_dphy_timing timing;
        const struct msm_dsi_phy_cfg *cfg;
+       void *tuning_cfg;
 
        enum msm_dsi_phy_usecase usecase;
        bool regulator_ldo_mode;