Quoting Shawn Guo (2021-05-03 22:28:44) > diff --git a/drivers/clk/qcom/a53-pll.c b/drivers/clk/qcom/a53-pll.c > index bfa048dc01ec..8c6f8bcc6128 100644 > --- a/drivers/clk/qcom/a53-pll.c > +++ b/drivers/clk/qcom/a53-pll.c [..] > + { 1651200000, 86, 0x0, 0x1, 0 }, > + { 1689600000, 88, 0x0, 0x1, 0 }, > + { 1708800000, 89, 0x0, 0x1, 0 }, > +}; > + > +static const struct pll_freq_tbl msm8939_cci_freq[] = { > + { 403200000, 21, 0x0, 0x1, 0 }, > + { 595200000, 31, 0x0, 0x1, 0 }, > +}; > + > static const struct regmap_config a53pll_regmap_config = { > .reg_bits = 32, > .reg_stride = 4, > @@ -98,6 +137,9 @@ static int qcom_a53pll_probe(struct platform_device *pdev) > > static const struct of_device_id qcom_a53pll_match_table[] = { > { .compatible = "qcom,msm8916-a53pll", .data = msm8916_freq }, > + { .compatible = "qcom,msm8939-a53pll-c0", .data = &msm8939_c0_freq }, > + { .compatible = "qcom,msm8939-a53pll-c1", .data = &msm8939_c1_freq }, > + { .compatible = "qcom,msm8939-a53pll-cci", .data = &msm8939_cci_freq }, Can we push these compatibles and tables into an OPP table? Then the frequency plan would be an opp-table binding and the driver can drive the multiplier on XO (probably l_val) without having to hardcode it here in the driver. It does mean we spend a bit more time at probe detecting the frequency plan, but it would at least avoid the concern that Rob has with multiple compatibles and probably make it easier to handle CPU frequencies anyway.