[RFC,PATCH 0/3] Common struct clk implementation, v11

Jeremy Kerr jeremy.kerr at canonical.com
Mon Feb 7 01:07:57 EST 2011

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 three 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.

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 <ben-linux at fluff.org>
 * Baruch Siach <baruch at tkos.co.il>
 * Russell King <linux at arm.linux.org.uk>
 * Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
 * Lorenzo Pieralisi <Lorenzo.Pieralisi at arm.com>
 * Vincent Guittot <vincent.guittot at linaro.org>
 * Sascha Hauer <s.hauer at pengutronix.de>



 * add prepare/unprepare for non-atomic switching, document atomicity
 * move to drivers/clk/

 * comment fixups, from Uwe's review

 * 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 (3):
      Add a common struct clk
      clk: Generic support for fixed-rate clocks
      clk: add warnings for incorrect enable/prepare semantics

More information about the linux-arm-kernel mailing list