]> git.baikalelectronics.ru Git - kernel.git/commit
clk: imx: pll14xx: Support dynamic rates
authorSascha Hauer <s.hauer@pengutronix.de>
Fri, 4 Mar 2022 12:52:56 +0000 (13:52 +0100)
committerAbel Vesa <abel.vesa@nxp.com>
Fri, 4 Mar 2022 15:06:30 +0000 (17:06 +0200)
commitbf84e8f94bf090fb1806cf3044e9842d6f900f35
tree7c9264f6b8d64530eb6e6ce9026e6bb5aefebca2
parent744f54278fb54d77701fa5c4582d47b181b0854f
clk: imx: pll14xx: Support dynamic rates

The pll1443x PLL so far only supports rates from a rate table passed
during initialization. Calculating PLL settings dynamically helps audio
applications to get their desired rates, so support for this is added
in this patch.

The strategy to get to the PLL setting for a rate is:

- First try to only adjust kdiv which specifies the fractional part of the PLL.
  This setting can be changed without glitches on the output and is therefore
  preferred
- When that isn't possible then the rate table is searched for suitable rates,
  so for standard rates the same settings are used as without this patch
- As a last resort the best settings are calculated dynamically

The code in this patch is based on patches from Adrian Alonso <adrian.alonso@nxp.com>
and Mads Bligaard Nielsen <bli@bang-olufsen.dk>

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Abel Vesa <abel.vesa@nxp.com>
Link: https://lore.kernel.org/r/20220304125256.2125023-9-s.hauer@pengutronix.de
Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
drivers/clk/imx/clk-pll14xx.c