OSDN Git Service

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)
commitb09c68dc57c9d44071d83bb935b733f53ea2b2b4
tree7c9264f6b8d64530eb6e6ce9026e6bb5aefebca2
parent80cbc80612a01461a257f2c2eb9976cbadfb7be2
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