clk: Add CLK_IS_BASIC flag to identify basic clocks
authorRajendra Nayak <rnayak@ti.com>
Fri, 1 Jun 2012 08:32:47 +0000 (14:02 +0530)
committerMike Turquette <mturquette@linaro.org>
Wed, 11 Jul 2012 22:36:43 +0000 (15:36 -0700)
Most platforms end up using a mix of basic clock types and
some which use clk_hw_foo struct for filling in custom platform
information when the clocks don't fit into basic types supported.

In platform code, its useful to know if a clock is using a basic
type or clk_hw_foo, which helps platforms know if they can
safely use to_clk_hw_foo to derive the clk_hw_foo pointer from
clk_hw.

Mark all basic clocks with a CLK_IS_BASIC flag.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
drivers/clk/clk-divider.c
drivers/clk/clk-fixed-factor.c
drivers/clk/clk-fixed-rate.c
drivers/clk/clk-gate.c
drivers/clk/clk-mux.c
include/linux/clk-private.h
include/linux/clk-provider.h

index 02a4da9..a9204c6 100644 (file)
@@ -253,7 +253,7 @@ static struct clk *_register_divider(struct device *dev, const char *name,
 
        init.name = name;
        init.ops = &clk_divider_ops;
-       init.flags = flags;
+       init.flags = flags | CLK_IS_BASIC;
        init.parent_names = (parent_name ? &parent_name: NULL);
        init.num_parents = (parent_name ? 1 : 0);
 
index c8c003e..a489985 100644 (file)
@@ -82,7 +82,7 @@ struct clk *clk_register_fixed_factor(struct device *dev, const char *name,
 
        init.name = name;
        init.ops = &clk_fixed_factor_ops;
-       init.flags = flags;
+       init.flags = flags | CLK_IS_BASIC;
        init.parent_names = &parent_name;
        init.num_parents = 1;
 
index cbd2462..7e14645 100644 (file)
@@ -63,7 +63,7 @@ struct clk *clk_register_fixed_rate(struct device *dev, const char *name,
 
        init.name = name;
        init.ops = &clk_fixed_rate_ops;
-       init.flags = flags;
+       init.flags = flags | CLK_IS_BASIC;
        init.parent_names = (parent_name ? &parent_name: NULL);
        init.num_parents = (parent_name ? 1 : 0);
 
index 578465e..15114fe 100644 (file)
@@ -130,7 +130,7 @@ struct clk *clk_register_gate(struct device *dev, const char *name,
 
        init.name = name;
        init.ops = &clk_gate_ops;
-       init.flags = flags;
+       init.flags = flags | CLK_IS_BASIC;
        init.parent_names = (parent_name ? &parent_name: NULL);
        init.num_parents = (parent_name ? 1 : 0);
 
index fd36a8e..508c032 100644 (file)
@@ -106,7 +106,7 @@ struct clk *clk_register_mux(struct device *dev, const char *name,
 
        init.name = name;
        init.ops = &clk_mux_ops;
-       init.flags = flags;
+       init.flags = flags | CLK_IS_BASIC;
        init.parent_names = parent_names;
        init.num_parents = num_parents;
 
index cc9972d..9c7f580 100644 (file)
@@ -64,7 +64,7 @@ struct clk {
                .parent_names = _parent_names,                  \
                .num_parents = ARRAY_SIZE(_parent_names),       \
                .parents = _parents,                            \
-               .flags = _flags,                                \
+               .flags = _flags | CLK_IS_BASIC,                 \
        }
 
 #define DEFINE_CLK_FIXED_RATE(_name, _flags, _rate,            \
index 79caee9..0236f58 100644 (file)
@@ -25,6 +25,7 @@
 #define CLK_SET_RATE_PARENT    BIT(2) /* propagate rate change up one level */
 #define CLK_IGNORE_UNUSED      BIT(3) /* do not gate even if unused */
 #define CLK_IS_ROOT            BIT(4) /* root clk, has no parent */
+#define CLK_IS_BASIC           BIT(5) /* Basic clk, can't do a to_clk_foo() */
 
 struct clk_hw;