[lkml]   [2011]   [Jan]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[PATCH 0/2] Common struct clk implementation, v10
    Hi all,

    These patches are an attempt to allow platforms to share clock code. At
    present, the definitions of 'struct clk' are local to platform code,
    which makes allocating and initialising cross-platform clock sources
    difficult, and makes it impossible to compile a single image containing
    support for two ARM platforms with different struct clks.

    The two patches are for the architecture-independent kernel code,
    introducing the common clk infrastructure. The changelog for the first
    patch includes details about the new clock definitions.

    As requested by rmk, I've put together a small series of patches
    illustrating the usage of the common struct clock on the ARM imx51
    platform. These are available in my git tree:


    in the clk-common-mx51 branch (clk-common..clk-common-mx51). There is
    also a port for versatile (clk-common-versatile) in this tree too.

    The approach I've taken with the imx51 port is to temporarly duplicate
    the platform-common clock code (ie, for all mxc-based boards) to enable
    usage of the common struct clk on one machine (imx51), while leaving the
    others as-is. For a proper platform-wide usage of the common struct clk,
    we'd be better off doing the whole platform at once. However, mx51 is
    the only mxc-based HW I have, hence the duplicated example port.

    In the example port, the first change simply converts the mxc's struct
    clk to a struct clk_mxc, using the new API. The subsequent patches move
    certain clocks to more specific data structures (eg clk_fixed and
    clk_pll) where possible.

    Also, Yong Shen has contributed a patch to export a tree of clock data
    (currently the clock rate and enable_count) through debugfs; this is in
    the clk-common-debug branch.

    Ben Herrenschmidt is looking at using common struct clk code for powerpc
    too, hence the kernel-wide approach.

    Many thanks to the following for their input:
    * Ben Dooks <>
    * Baruch Siach <>
    * Russell King <>
    * Uwe Kleine-König <>
    * Lorenzo Pieralisi <>
    * Vincent Guittot <>
    * Sascha Hauer <>

    Russell - now that we've had a few platforms ported to the common clk
    infrastructure, I believe it's ready to merge. If so, do you want this
    in the patch tracker? Otherwise, let me know what needs changing.



    * comment fixups, from Uwe's review
    * added DEFINE_CLK_FIXED

    * comment improvements
    * kerneldoc fixups
    * add WARN_ON to clk_disable

    * add atomic clocks, and locking wrappers
    * expand comments on clk and clk_ops

    * change CLK_INIT to initialise clk->mutex statically

    * fixed up references to 'clk_operations' in the changelog

    * uninline main API, and share definitions with !USE_COMMON_STRUCT_CLK
    * add __clk_get
    * delay mutex init
    * kerneldoc for struct clk

    * use mutex for enable/disable locking
    * DEFINE_CLK -> INIT_CLK, and pass the clk name for mutex init
    * struct clk_operations -> struct clk_ops

    * do clock usage refcounting in common code
    * provide sample port

    * no longer ARM-specific
    * use clk_operations

    Jeremy Kerr (2):
    Add a common struct clk
    clk: Generic support for fixed-rate clocks

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2011-01-05 04:53    [W:0.027 / U:36.452 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site