• Paul Walmsley's avatar
    OMAP2/3/4 clock: fix DPLL multiplier value errors; also copyrights, includes, documentation · 93340a22
    Paul Walmsley authored
    The maximum DPLL multiplier (M) values for OMAP2xxx and OMAP3xxx are
    one increment higher than they should be.  See for example the
    OMAP242x TRM Rev X Section 5.10.6 "Clock Generator Registers" and the
    OMAP36xx TRM Rev C Table 3-202 "CM_CLKSEL1_PLL".  Programming a 0 into
    the DPLL's M register bitfield is valid for OMAP2/3 and indicates that
    the DPLL should enter MN-bypass mode.  Also, increase the minimum
    multiplier (M) value for the DPLL rate rounding code from 1 to 2, to
    ensure that it does not inadvertently put the DPLL into bypass.
    
    Note that the register documentation in the OMAP2xxx and OMAP3xxx TRMs
    does not make clear that the actual DPLL divider value (the "N") is
    the content of the appropriate register bitfield for the N value,
    _plus one_.  (In other words, an N register bitfield of 0 indicates a
    DPLL divider value of 1.)  This is only clearly documented in the
    OMAP4430 TRM, in, for example, OMAP4430 TRM Rev A Table 3-1167
    "CM_CLKSEL_DPLL_USB".
    
    While here, update copyrights, add kerneldoc for struct dpll_data,
    drop the unused struct dpll_data.max_tolerance field, remove some
    unnecessary #includes in DPLL-related code, and replace the #include
    of <linux/module.h> with <linux/list.h>, which is what was really
    needed.  The OMAP4 clock autogenerator script has been updated
    accordingly.
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    Cc: Benoît Cousson <b-cousson@ti.com>
    Cc: Rajendra Nayak <rnayak@ti.com>
    93340a22
dpll3xxx.c 15.1 KB