Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm/dsi: Add phy configuration for QCM2290

The QCM2290 SoC a the 14nm (V2.0) single DSI phy. The platform is not
fully compatible with the standard 14nm PHY, so it requires a separate
compatible and config entry.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
[DB: rebased and updated commit msg]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org>
Patchwork: https://patchwork.freedesktop.org/patch/504578/
Link: https://lore.kernel.org/r/20220924121900.222711-3-dmitry.baryshkov@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

authored by

Loic Poulain and committed by
Dmitry Baryshkov
572e9fd6 2387771f

+20
+2
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
··· 549 549 #ifdef CONFIG_DRM_MSM_DSI_14NM_PHY 550 550 { .compatible = "qcom,dsi-phy-14nm", 551 551 .data = &dsi_phy_14nm_cfgs }, 552 + { .compatible = "qcom,dsi-phy-14nm-2290", 553 + .data = &dsi_phy_14nm_2290_cfgs }, 552 554 { .compatible = "qcom,dsi-phy-14nm-660", 553 555 .data = &dsi_phy_14nm_660_cfgs }, 554 556 { .compatible = "qcom,dsi-phy-14nm-8953",
+1
drivers/gpu/drm/msm/dsi/phy/dsi_phy.h
··· 50 50 extern const struct msm_dsi_phy_cfg dsi_phy_28nm_8960_cfgs; 51 51 extern const struct msm_dsi_phy_cfg dsi_phy_14nm_cfgs; 52 52 extern const struct msm_dsi_phy_cfg dsi_phy_14nm_660_cfgs; 53 + extern const struct msm_dsi_phy_cfg dsi_phy_14nm_2290_cfgs; 53 54 extern const struct msm_dsi_phy_cfg dsi_phy_14nm_8953_cfgs; 54 55 extern const struct msm_dsi_phy_cfg dsi_phy_10nm_cfgs; 55 56 extern const struct msm_dsi_phy_cfg dsi_phy_10nm_8998_cfgs;
+17
drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c
··· 1081 1081 .io_start = { 0x1a94400, 0x1a96400 }, 1082 1082 .num_dsi_phy = 2, 1083 1083 }; 1084 + 1085 + const struct msm_dsi_phy_cfg dsi_phy_14nm_2290_cfgs = { 1086 + .has_phy_lane = true, 1087 + .regulator_data = dsi_phy_14nm_17mA_regulators, 1088 + .num_regulators = ARRAY_SIZE(dsi_phy_14nm_17mA_regulators), 1089 + .ops = { 1090 + .enable = dsi_14nm_phy_enable, 1091 + .disable = dsi_14nm_phy_disable, 1092 + .pll_init = dsi_pll_14nm_init, 1093 + .save_pll_state = dsi_14nm_pll_save_state, 1094 + .restore_pll_state = dsi_14nm_pll_restore_state, 1095 + }, 1096 + .min_pll_rate = VCO_MIN_RATE, 1097 + .max_pll_rate = VCO_MAX_RATE, 1098 + .io_start = { 0x5e94400 }, 1099 + .num_dsi_phy = 1, 1100 + };