Skip to content

Commit

Permalink
phy: zynqmp: Allow variation in refclk rate
Browse files Browse the repository at this point in the history
Due to limited available frequency ratios, the reference clock rate may
not be exactly the same as the required rate. Allow a small (100 ppm)
deviation.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Link: https://lore.kernel.org/r/20230711194542.898230-1-sean.anderson@seco.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
  • Loading branch information
Sean Anderson authored and Vinod Koul committed Jul 12, 2023
1 parent 20b5c6a commit 76009ee
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/phy/xilinx/phy-zynqmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -904,7 +904,10 @@ static int xpsgtr_get_ref_clocks(struct xpsgtr_dev *gtr_dev)
rate = clk_get_rate(clk);

for (i = 0 ; i < ARRAY_SIZE(ssc_lookup); i++) {
if (rate == ssc_lookup[i].refclk_rate) {
/* Allow an error of 100 ppm */
unsigned long error = ssc_lookup[i].refclk_rate / 10000;

if (abs(rate - ssc_lookup[i].refclk_rate) < error) {
gtr_dev->refclk_sscs[refclk] = &ssc_lookup[i];
break;
}
Expand Down

0 comments on commit 76009ee

Please sign in to comment.