linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Common struct clk implementation, v7
@ 2010-09-15  3:40 Jeremy Kerr
  2010-09-15  3:40 ` [PATCH 3/3] arm/clkdev: Allow common struct clk usage Jeremy Kerr
                   ` (5 more replies)
  0 siblings, 6 replies; 25+ messages in thread
From: Jeremy Kerr @ 2010-09-15  3:40 UTC (permalink / raw)
  To: linux-arm-kernel

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:

 git://kernel.ubuntu.com/jk/dt/linux-2.6

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.

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@fluff.org>
 * Baruch Siach <baruch@tkos.co.il>
 * Russell King <linux@arm.linux.org.uk>
 * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
 * Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>

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.

This series includes a patch to hook the common clk API into ARM.

Cheers,


Jeremy

--
v7:
 * change CLK_INIT to initialise clk->mutex statically

v6:
 * fixed up references to 'clk_operations' in the changelog

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

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

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

v2:
 * no longer ARM-specific
 * use clk_operations

---
Jeremy Kerr (3):
      Add a common struct clk
      clk: Generic support for fixed-rate clocks
      arm/clkdev: Allow common struct clk usage

^ permalink raw reply	[flat|nested] 25+ messages in thread
* [PATCH 0/3] Common struct clk implementation, v6
@ 2010-07-30  7:03 Jeremy Kerr
  2010-07-30  7:03 ` [PATCH 1/3] Add a common struct clk Jeremy Kerr
  0 siblings, 1 reply; 25+ messages in thread
From: Jeremy Kerr @ 2010-07-30  7:03 UTC (permalink / raw)
  To: linux-arm-kernel

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:

 git://kernel.ubuntu.com/jk/dt/linux-2.6

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.

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@fluff.org>
 * Baruch Siach <baruch@tkos.co.il>
 * Russell King <linux@arm.linux.org.uk>
 * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
 * Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>

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.

This series includes a patch to hook the common clk API into ARM.

Cheers,


Jeremy

--
v6:
 * fixed up references to 'clk_operations' in the changelog

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

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

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

v2:
 * no longer ARM-specific
 * use clk_operations

---
Jeremy Kerr (3):
      Add a common struct clk
      clk: Generic support for fixed-rate clocks
      arm/clkdev: Allow common struct clk usage

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2010-12-11  2:21 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-15  3:40 [PATCH 0/3] Common struct clk implementation, v7 Jeremy Kerr
2010-09-15  3:40 ` [PATCH 3/3] arm/clkdev: Allow common struct clk usage Jeremy Kerr
2010-09-15  3:40 ` [PATCH 2/3] clk: Generic support for fixed-rate clocks Jeremy Kerr
2010-09-15  3:40 ` [PATCH 1/3] Add a common struct clk Jeremy Kerr
2010-09-16 13:09   ` Jassi Brar
2010-09-17  0:24     ` Jeremy Kerr
2010-09-17  0:55       ` Jassi Brar
2010-09-17  2:16         ` Jassi Brar
2010-11-27 15:56   ` Jassi Brar
2010-11-29  7:59     ` Jeremy Kerr
2010-12-07 14:31       ` Uwe Kleine-König
2010-12-08  1:02         ` Jeremy Kerr
2010-12-08  8:45           ` Uwe Kleine-König
2010-12-08 16:48           ` Ben Dooks
2010-12-09  2:16             ` Jeremy Kerr
2010-12-10 15:09               ` Richard Zhao
2010-12-11  2:21                 ` Jassi Brar
2010-09-15  5:53 ` [PATCH 0/3] Common struct clk implementation, v7 Jean-Christophe PLAGNIOL-VILLARD
2010-09-15  6:08   ` Jeremy Kerr
2010-09-16  1:51     ` Paul Mundt
2010-09-15  8:15 ` Paulius Zaleckas
2010-09-15 23:15 ` Colin Cross
2010-09-16  8:19   ` Jeremy Kerr
2010-09-26 23:57   ` Ben Dooks
  -- strict thread matches above, loose matches on Subject: below --
2010-07-30  7:03 [PATCH 0/3] Common struct clk implementation, v6 Jeremy Kerr
2010-07-30  7:03 ` [PATCH 1/3] Add a common struct clk Jeremy Kerr

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).