From: Ritesh Kumar <[email protected]>

Wire up Nord-specific callbacks into qcom_edp_phy_ops_nord and
assemble nord_edp_phy_cfg with all Nord-specific values: AUX/VCO
tables, swing/pre-emphasis tables, relocated status register offsets
and TX lane control.  Register "qcom,nord-dp-phy" in the OF match
table so the driver binds to Nord DP PHY device-tree nodes.

Signed-off-by: Ritesh Kumar <[email protected]>
Signed-off-by: Nabige Aala <[email protected]>
---
 drivers/phy/qualcomm/phy-qcom-edp.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/drivers/phy/qualcomm/phy-qcom-edp.c 
b/drivers/phy/qualcomm/phy-qcom-edp.c
index cb5f6e0ae607..87400d61323a 100644
--- a/drivers/phy/qualcomm/phy-qcom-edp.c
+++ b/drivers/phy/qualcomm/phy-qcom-edp.c
@@ -1774,6 +1774,30 @@ static const struct qcom_edp_tx_res_entry 
tx_res_cfg_nord[] = {
        QCOM_EDP_TX_RES_ENTRY_END,
 };
 
+static const struct phy_ver_ops qcom_edp_phy_ops_nord = {
+       .com_power_on           = qcom_edp_phy_power_on_v8,
+       .com_resetsm_cntrl      = qcom_edp_phy_com_resetsm_cntrl_v8,
+       .com_bias_en_clkbuflr   = qcom_edp_com_bias_en_clkbuflr_v8,
+       .com_configure_pll      = qcom_edp_com_configure_pll_nord,
+       .com_configure_ssc      = qcom_edp_com_configure_ssc_nord,
+       .com_ldo_config         = qcom_edp_ldo_config_nord,
+};
+
+static const struct qcom_edp_phy_cfg nord_edp_phy_cfg = {
+       .is_edp                 = false,
+       .aux_cfg                = edp_phy_aux_cfg_nord,
+       .vco_div_cfg            = edp_phy_vco_div_cfg_nord,
+       .dp_swing_pre_emph_cfg  = &nord_dp_swing_pre_emph_cfg,
+       .edp_swing_pre_emph_cfg = &nord_edp_swing_pre_emph_cfg,
+       .ver_ops                = &qcom_edp_phy_ops_nord,
+       .phy_status_reg         = DP_PHY_STATUS_NORD,
+       .bias1_en_2lane         = 0x03,
+       .tx2_tx3_lane_ctl       = DP_PHY_TX2_TX3_LANE_CTL_NORD,
+       .tx_res_cfg             = tx_res_cfg_nord,
+       .cmn_status_reg         = DP_QSERDES_V8_COM_CMN_STATUS_NORD,
+       .c_ready_status_reg     = DP_QSERDES_V8_COM_C_READY_STATUS_NORD,
+};
+
 static const struct of_device_id qcom_edp_phy_match_table[] = {
        { .compatible = "qcom,glymur-dp-phy", .data = &glymur_phy_cfg, },
        { .compatible = "qcom,sa8775p-edp-phy", .data = &sa8775p_dp_phy_cfg, },
@@ -1782,6 +1806,7 @@ static const struct of_device_id 
qcom_edp_phy_match_table[] = {
        { .compatible = "qcom,sc8280xp-dp-phy", .data = &sc8280xp_dp_phy_cfg, },
        { .compatible = "qcom,sc8280xp-edp-phy", .data = &sc8280xp_edp_phy_cfg, 
},
        { .compatible = "qcom,x1e80100-dp-phy", .data = &x1e80100_phy_cfg, },
+       { .compatible = "qcom,nord-dp-phy", .data = &nord_edp_phy_cfg, },
        { }
 };
 MODULE_DEVICE_TABLE(of, qcom_edp_phy_match_table);

-- 
2.34.1

Reply via email to