In preparation for adding support for the eDP PHY found in newer SoCs, transfer the register mask for PHYD_TX_LN_EN to SoC specific data.
Signed-off-by: AngeloGioacchino Del Regno <[email protected]> --- drivers/phy/mediatek/phy-mtk-dp.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/phy/mediatek/phy-mtk-dp.c b/drivers/phy/mediatek/phy-mtk-dp.c index 4603f28d1466..f5aadc5fdc42 100644 --- a/drivers/phy/mediatek/phy-mtk-dp.c +++ b/drivers/phy/mediatek/phy-mtk-dp.c @@ -220,6 +220,7 @@ struct mtk_dp_phya_imp_sel { * @regs_ana_lane: Register (layout) offsets for ana_lan * @regs_dig_glb: Register (layout) offsets for dig_glb * @regs_dig_lane: Register (layout) offsets for dig_lan + * @mask_dig_tx_ln: Register mask for PHYD_TX_LN_EN field * @val_dig_bitrate:IP Version specific register values for Bit Rate setting * @ana_bias_r: Internal resistance "R" Selection Settings (global) * @ana_cktx_imp: TX Clock Impedance Selection Settings (global) @@ -239,6 +240,9 @@ struct mtk_dp_phy_pdata { const u8 *regs_dig_glb; const u8 *regs_dig_lane; + /* Register masks */ + u32 mask_dig_tx_ln; + /* IP-Version specific register value arrays */ const u8 *val_dig_bitrate; @@ -377,10 +381,10 @@ static int mtk_dp_phy_configure(struct phy *phy, union phy_configure_opts *opts) val = 0; for (i = 0; i < opts->dp.lanes; i++) - val |= FIELD_PREP(PHYD_TX_LN_EN, BIT(i)); + val |= field_prep(pdata->mask_dig_tx_ln, BIT(i)); regmap_update_bits(dp_phy->regmap, pdata->off_dig_glb + reg_dig_tx_ctl, - PHYD_TX_LN_EN, val); + pdata->mask_dig_tx_ln, val); } if (opts->dp.set_voltages) { @@ -456,7 +460,7 @@ static int mtk_dp_phy_disable_all_lanes(struct mtk_dp_phy *dp_phy) return ret; /* Get mask of currently enabled lane */ - val = FIELD_GET(PHYD_TX_LN_EN, val); + val = field_get(pdata->mask_dig_tx_ln, val); if (val == 0) return 0; @@ -467,7 +471,7 @@ static int mtk_dp_phy_disable_all_lanes(struct mtk_dp_phy *dp_phy) ret = regmap_clear_bits(dp_phy->regmap, pdata->off_dig_glb + regs[DP_PHYD_TX_CTL_0], - FIELD_PREP(PHYD_TX_LN_EN, BIT(lane_num))); + field_prep(pdata->mask_dig_tx_ln, BIT(lane_num))); if (ret) return ret; } while (val); @@ -780,6 +784,7 @@ static const struct mtk_dp_phy_pdata mt8195_dp_phy_data = { .regs_ana_lane = mt8195_phy_ana_lane_regs, .regs_dig_glb = mt8195_phy_dig_glb_regs, .regs_dig_lane = mt8195_phy_dig_lane_regs, + .mask_dig_tx_ln = PHYD_TX_LN_EN, .val_dig_bitrate = mt8195_phy_dig_bitrate_val, .ana_bias_r = 15, .ana_cktx_imp = 8, -- 2.54.0
