mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
phy: rockchip: samsung-hdptx: Consistently use bitfield macros
Make the code more robust and improve readability by using the available bitfield macros (e.g. FIELD_PREP, FIELD_GET) whenever possible, instead of open coding the related bit operations. Tested-by: Thomas Niederprüm <dubito@online.de> Tested-by: Simon Wright <simon@symple.nz> Tested-by: Diederik de Haas <diederik@cknow-tech.com> # NanoPC-T6 LTS Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> Link: https://patch.msgid.link/20260811-hdptx-clk-fixes-v6-10-75bca0ee5753@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
859fd8ae69
commit
f3a8aba9c3
|
|
@ -53,6 +53,12 @@
|
|||
/* CMN_REG(001e) */
|
||||
#define LCPLL_PI_EN_MASK BIT(5)
|
||||
#define LCPLL_100M_CLK_EN_MASK BIT(0)
|
||||
/* CMN_REG(0022) */
|
||||
#define ANA_LCPLL_PMS_PDIV_MASK GENMASK(7, 4)
|
||||
#define ANA_LCPLL_PMS_REFDIV_MASK GENMASK(3, 0)
|
||||
/* CMN_REG(0023) */
|
||||
#define LCPLL_PMS_SDIV_RBR_MASK GENMASK(7, 4)
|
||||
#define LCPLL_PMS_SDIV_HBR_MASK GENMASK(3, 0)
|
||||
/* CMN_REG(0025) */
|
||||
#define LCPLL_PMS_IQDIV_RSTN_MASK BIT(4)
|
||||
/* CMN_REG(0028) */
|
||||
|
|
@ -1157,9 +1163,11 @@ static int rk_hdptx_frl_lcpll_cmn_config(struct rk_hdptx_phy *hdptx)
|
|||
regmap_write(hdptx->regmap, CMN_REG(0020), cfg->pms_mdiv);
|
||||
regmap_write(hdptx->regmap, CMN_REG(0021), cfg->pms_mdiv_afc);
|
||||
regmap_write(hdptx->regmap, CMN_REG(0022),
|
||||
(cfg->pms_pdiv << 4) | cfg->pms_refdiv);
|
||||
FIELD_PREP(ANA_LCPLL_PMS_PDIV_MASK, cfg->pms_pdiv) |
|
||||
FIELD_PREP(ANA_LCPLL_PMS_REFDIV_MASK, cfg->pms_refdiv));
|
||||
regmap_write(hdptx->regmap, CMN_REG(0023),
|
||||
(cfg->pms_sdiv << 4) | cfg->pms_sdiv);
|
||||
FIELD_PREP(LCPLL_PMS_SDIV_RBR_MASK, cfg->pms_sdiv) |
|
||||
FIELD_PREP(LCPLL_PMS_SDIV_HBR_MASK, cfg->pms_sdiv));
|
||||
regmap_write(hdptx->regmap, CMN_REG(002a), cfg->sdm_deno);
|
||||
regmap_write(hdptx->regmap, CMN_REG(002b), cfg->sdm_num_sign);
|
||||
regmap_write(hdptx->regmap, CMN_REG(002c), cfg->sdm_num);
|
||||
|
|
@ -1229,8 +1237,10 @@ static int rk_hdptx_tmds_ropll_cmn_config(struct rk_hdptx_phy *hdptx)
|
|||
regmap_write(hdptx->regmap, CMN_REG(0051), cfg->pms_mdiv);
|
||||
regmap_write(hdptx->regmap, CMN_REG(0055), cfg->pms_mdiv_afc);
|
||||
regmap_write(hdptx->regmap, CMN_REG(0059),
|
||||
(cfg->pms_pdiv << 4) | cfg->pms_refdiv);
|
||||
regmap_write(hdptx->regmap, CMN_REG(005a), cfg->pms_sdiv << 4);
|
||||
FIELD_PREP(ANA_ROPLL_PMS_PDIV_MASK, cfg->pms_pdiv) |
|
||||
FIELD_PREP(ANA_ROPLL_PMS_REFDIV_MASK, cfg->pms_refdiv));
|
||||
regmap_write(hdptx->regmap, CMN_REG(005a),
|
||||
FIELD_PREP(ROPLL_PMS_SDIV_RBR_MASK, cfg->pms_sdiv));
|
||||
|
||||
regmap_update_bits(hdptx->regmap, CMN_REG(005e), ROPLL_SDM_EN_MASK,
|
||||
FIELD_PREP(ROPLL_SDM_EN_MASK, cfg->sdm_en));
|
||||
|
|
@ -2177,7 +2187,7 @@ static u64 rk_hdptx_phy_clk_calc_rate_from_pll_cfg(struct rk_hdptx_phy *hdptx)
|
|||
ret = regmap_read(hdptx->regmap, CMN_REG(0023), &val);
|
||||
if (ret)
|
||||
return 0;
|
||||
lcpll_hw.pms_sdiv = val & 0xf;
|
||||
lcpll_hw.pms_sdiv = FIELD_GET(LCPLL_PMS_SDIV_HBR_MASK, val);
|
||||
|
||||
ret = regmap_read(hdptx->regmap, CMN_REG(002B), &val);
|
||||
if (ret)
|
||||
|
|
@ -2197,7 +2207,7 @@ static u64 rk_hdptx_phy_clk_calc_rate_from_pll_cfg(struct rk_hdptx_phy *hdptx)
|
|||
ret = regmap_read(hdptx->regmap, CMN_REG(002D), &val);
|
||||
if (ret)
|
||||
return 0;
|
||||
lcpll_hw.sdc_n = (val & LCPLL_SDC_N_MASK) >> 1;
|
||||
lcpll_hw.sdc_n = FIELD_GET(LCPLL_SDC_N_MASK, val);
|
||||
|
||||
ret = regmap_read(hdptx->grf, GRF_HDPTX_CON0, &val);
|
||||
if (ret)
|
||||
|
|
@ -2238,12 +2248,12 @@ static u64 rk_hdptx_phy_clk_calc_rate_from_pll_cfg(struct rk_hdptx_phy *hdptx)
|
|||
ret = regmap_read(hdptx->regmap, CMN_REG(005E), &val);
|
||||
if (ret)
|
||||
return 0;
|
||||
ropll_hw.sdm_en = val & ROPLL_SDM_EN_MASK;
|
||||
ropll_hw.sdm_en = FIELD_GET(ROPLL_SDM_EN_MASK, val);
|
||||
|
||||
ret = regmap_read(hdptx->regmap, CMN_REG(0064), &val);
|
||||
if (ret)
|
||||
return 0;
|
||||
ropll_hw.sdm_num_sign = val & ROPLL_SDM_NUM_SIGN_RBR_MASK;
|
||||
ropll_hw.sdm_num_sign = FIELD_GET(ROPLL_SDM_NUM_SIGN_RBR_MASK, val);
|
||||
|
||||
ret = regmap_read(hdptx->regmap, CMN_REG(0065), &val);
|
||||
if (ret)
|
||||
|
|
@ -2258,7 +2268,7 @@ static u64 rk_hdptx_phy_clk_calc_rate_from_pll_cfg(struct rk_hdptx_phy *hdptx)
|
|||
ret = regmap_read(hdptx->regmap, CMN_REG(0069), &val);
|
||||
if (ret)
|
||||
return 0;
|
||||
ropll_hw.sdc_n = (val & ROPLL_SDC_N_RBR_MASK) + 3;
|
||||
ropll_hw.sdc_n = FIELD_GET(ROPLL_SDC_N_RBR_MASK, val) + 3;
|
||||
|
||||
ret = regmap_read(hdptx->regmap, CMN_REG(006c), &val);
|
||||
if (ret)
|
||||
|
|
@ -2273,7 +2283,7 @@ static u64 rk_hdptx_phy_clk_calc_rate_from_pll_cfg(struct rk_hdptx_phy *hdptx)
|
|||
ret = regmap_read(hdptx->regmap, CMN_REG(0086), &val);
|
||||
if (ret)
|
||||
return 0;
|
||||
ropll_hw.pms_sdiv = ((val & PLL_PCG_POSTDIV_SEL_MASK) >> 4) + 1;
|
||||
ropll_hw.pms_sdiv = FIELD_GET(PLL_PCG_POSTDIV_SEL_MASK, val) + 1;
|
||||
bpc = (FIELD_GET(PLL_PCG_CLK_SEL_MASK, val) << 1) + 8;
|
||||
|
||||
fout = PLL_REF_CLK * ropll_hw.pms_mdiv;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user