ARM: OMAP4: clock: round_rate and recalc functions for DPLL_ABE
authorMike Turquette <mturquette@ti.com>
Fri, 7 Oct 2011 06:52:58 +0000 (00:52 -0600)
committerPaul Walmsley <paul@pwsan.com>
Fri, 7 Oct 2011 06:52:58 +0000 (00:52 -0600)
commita1900f2efe2d75e0fe5b871421a2f2de2fa68b4e
treeec96f1f2a34d81bc0fa561d3ff404fbd9059531d
parentbe73246058737beec52ae232bcab7776332a9e06
ARM: OMAP4: clock: round_rate and recalc functions for DPLL_ABE

OMAP4 DPLL_ABE can enable a 4X multipler on top of the normal MN multipler
and divider. This is achieved by setting CM_CLKMODE_DPLL_ABE.DPLL_REGM4XEN
bit in CKGEN module of CM1. From the OMAP4 TRM:

Fdpll = Fref x 2 x (4 x M/(N+1)) in case REGM4XEN bit field is set (only
applicable to DPLL_ABE).

Add new round_rate() and recalc() functions for OMAP4, that check the
setting of REGM4XEN bit and handle this appropriately. The new functions
are a simple wrapper on top of the existing omap2_dpll_round_rate() and
omap2_dpll_get_rate() functions to handle the REGM4XEN bit.

The REGM4XEN bit is only implemented for the ABE DPLL on OMAP4 and so
only dpll_abe_ck uses omap4_dpll_regm4xen_round_rate() and
omap4_dpll_regm4xen_recalc() functions.

Signed-off-by: Mike Turquette <mturquette@ti.com>
Tested-by: Jon Hunter <jon-hunter@ti.com>
Signed-off-by: Jon Hunter <jon-hunter@ti.com>
[paul@pwsan.com: fixed attempt to return a negative from a fn returning
 unsigned; pass along errors from omap2_dpll_round_rate();
 added documentation; added Jon's S-o-b]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
arch/arm/mach-omap2/clock.h
arch/arm/mach-omap2/clock44xx.h
arch/arm/mach-omap2/clock44xx_data.c
arch/arm/mach-omap2/dpll44xx.c