09 Dec, 2011

1 commit


24 Nov, 2011

1 commit


11 Nov, 2011

1 commit

  • Now that all of the named string association with clocks has been
    migrated to clkdev lookups there's no meaningful named topology that can
    be constructed for a debugfs tree view. Get rid of the left over bits,
    and shrink struct clk a bit in the process.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

04 Nov, 2011

1 commit


11 Jul, 2011

1 commit


15 Nov, 2010

3 commits


08 Nov, 2010

1 commit

  • Sometimes it is possible and reasonable to adjust the parent clock rate to
    improve precision of the child clock, e.g., if the child clock has no siblings.
    clk_round_parent() is a new addition to the SH clock-framework API, that
    implements such an optimization for child clocks with divisors, taking all
    integer values in a range.

    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Paul Mundt

    Guennadi Liakhovetski
     

15 Oct, 2010

3 commits

  • This adds a new clk_rate_div_range_round() for implementing rate rounding
    by divisor ranges. This can be used trivially by clocks that support
    arbitrary ranged divisors without the need for rate table construction.

    This should only be used by clocks that both have large divisor ranges in
    addition to clocks that will never be arbitrarily scaled, as the lack of
    a backing frequency table will prevent cpufreq from being able to do much
    of anything with them.

    Primarily intended for use as a ->recalc helper.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Presently the only assisted rate rounding is frequency table backed, but
    there are cases where it's impractical to use a frequency table for
    certain clocks (such as the FSIDIV case, which supports 65535 divisors),
    and we wish to reuse the same rate rounding algorithm.

    This breaks out the core of the rate rounding logic in to its own helper
    routine and shuffles the frequency table logic around, switching to using
    an iterator for the generic helper routine.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This implements support for ioremapping of register windows that
    encapsulate clock control registers used by a struct clk, with
    transparent sibling inheritance.

    Root clocks at the top of a given topology often encapsulate the entire
    register space of all of their sibling clocks, so this mapping can be
    done once and handed down. A given clock enable/disable case maps out to
    a single bit in a shared register, so this prevents creating multiple
    overlapping mappings.

    The mapping case breaks down in to a couple of different situations:

    - Sibling clocks without a specific mapping.
    - Root clocks without a specific mapping.
    - Any of sibling/root clocks with a specific mapping.

    Sibling clocks with no specified mapping will grovel up the clock chain
    and install the root clock mapping unconditionally at registration time.

    Root clocks without their own mappings have a dummy BSS-initialized
    mapping inserted that is handed down the chain just like any other
    mapping. This permits all of the sibling clock ops to read/write using
    the mapping offsets without any special configuration, enabling them to
    not care whether access ultimately goes through translatable or
    untranslatable memory.

    Any clock with its own mapping will have the window initialized at
    registration time and be ready for use by its clock ops. Failure to
    establish the mapping will prevent registration, so no additional sanity
    checks are needed. Sibling clocks that double as parents for the moment
    will not propagate their mapping down, but this is easily tunable if the
    need arises.

    All clock mappings are kref refcounted, with each instance of mapping
    inheritance incrementing the refcount.

    Tested-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Paul Mundt
     

13 Oct, 2010

1 commit


04 Aug, 2010

2 commits


13 May, 2010

3 commits

  • Now that the definitions have been consolidated in an alternate header,
    update the template accordingly.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This patch is V2 of the SH clock framework move from
    arch/sh/kernel/cpu/clock.c to drivers/sh/clk.c. All
    code except the following functions are moved:
    clk_init(), clk_get() and clk_put().

    The init function is still kept in clock.c since it
    depends on the SH-specific machvec implementation.

    The symbols clk_get() and clk_put() already exist in
    the common ARM clkdev code, those symbols are left in
    the SH tree to avoid duplicating them for SH-Mobile ARM.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch is V2 of the clock framework move from
    arch/sh/include/asm/clock.h to include/linux/sh_clk.h
    and updates the include paths for files that will be
    shared between SH and SH-Mobile ARM.

    The file asm/clock.h is still kept in this version,
    this to depend on as few files as possible at this
    point. We keep SH specific stuff in there.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm