clk: Add composite clock type
authorPrashant Gaikwad <pgaikwad@nvidia.com>
Wed, 20 Mar 2013 12:00:34 +0000 (17:30 +0530)
committerMike Turquette <mturquette@linaro.org>
Tue, 26 Mar 2013 19:51:48 +0000 (12:51 -0700)
commitece70094f6ab2107d4313fa1802b13dab0234ac5
tree0e864397c7e15afe1c3d94d028945187b32d723f
parentce4f3313b05c836c21a91ac89f87dccf84ce9561
clk: Add composite clock type

Not all clocks are required to be decomposed into basic clock
types but at the same time want to use the functionality
provided by these basic clock types instead of duplicating.

For example, Tegra SoC has ~100 clocks which can be decomposed
into Mux -> Div -> Gate clock types making the clock count to
~300. Also, parent change operation can not be performed on gate
clock which forces to use mux clock in driver if want to change
the parent.

Instead aggregate the basic clock types functionality into one
clock and just use this clock for all operations. This clock
type re-uses the functionality of basic clock types and not
limited to basic clock types but any hardware-specific
implementation.

Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
drivers/clk/Makefile
drivers/clk/clk-composite.c [new file with mode: 0644]
include/linux/clk-provider.h