clk: iproc: Allow iproc pll to runtime calculate vco parameters
authorLori Hikichi <lori.hikichi@broadcom.com>
Mon, 14 Aug 2017 19:00:38 +0000 (12:00 -0700)
committerStephen Boyd <sboyd@codeaurora.org>
Thu, 28 Dec 2017 22:53:33 +0000 (14:53 -0800)
commitbecf123772a9ef15823a3f495478fe68e45b5028
tree3aea47d2966f28410ebf32995c16fd9178e31e16
parent4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323
clk: iproc: Allow iproc pll to runtime calculate vco parameters

Add the ability for the iproc pll to calculate the pll parameters at
runtime instead of only using predefined tables. This ability allows
the clock users to select from the full range of vco frequencies.
The old method of table based programming is retained so that existing
users will retain expected behavior. The flag IPROC_CLK_PLL_CALC_PARAM
will need to be set to enable the new runtime calculation method.
Currently, this is only being enabled for the audio pll.

This feature also revealed a problem with the driver using the
round_rate api.  The round_rate api does not allow for frequencies larger
than 2^31 to be returned.  Those large frequencies are interpreted as an
error code. Therefore, we are moving to the determine_rate api which
solves this problem.

Signed-off-by: Simran Rai <ssimran@broadcom.com>
Signed-off-by: Lori Hikichi <lori.hikichi@broadcom.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/bcm/clk-cygnus.c
drivers/clk/bcm/clk-iproc-pll.c
drivers/clk/bcm/clk-iproc.h