|
@@ -806,6 +806,44 @@ extern struct of_device_id __clk_of_table;
|
|
|
} \
|
|
|
OF_DECLARE_1(clk, name, compat, name##_of_clk_init_driver)
|
|
|
|
|
|
+#define CLK_HW_INIT(_name, _parent, _ops, _flags) \
|
|
|
+ (&(struct clk_init_data) { \
|
|
|
+ .flags = _flags, \
|
|
|
+ .name = _name, \
|
|
|
+ .parent_names = (const char *[]) { _parent }, \
|
|
|
+ .num_parents = 1, \
|
|
|
+ .ops = _ops, \
|
|
|
+ })
|
|
|
+
|
|
|
+#define CLK_HW_INIT_PARENTS(_name, _parents, _ops, _flags) \
|
|
|
+ (&(struct clk_init_data) { \
|
|
|
+ .flags = _flags, \
|
|
|
+ .name = _name, \
|
|
|
+ .parent_names = _parents, \
|
|
|
+ .num_parents = ARRAY_SIZE(_parents), \
|
|
|
+ .ops = _ops, \
|
|
|
+ })
|
|
|
+
|
|
|
+#define CLK_HW_INIT_NO_PARENT(_name, _ops, _flags) \
|
|
|
+ (&(struct clk_init_data) { \
|
|
|
+ .flags = _flags, \
|
|
|
+ .name = _name, \
|
|
|
+ .parent_names = NULL, \
|
|
|
+ .num_parents = 0, \
|
|
|
+ .ops = _ops, \
|
|
|
+ })
|
|
|
+
|
|
|
+#define CLK_FIXED_FACTOR(_struct, _name, _parent, \
|
|
|
+ _div, _mult, _flags) \
|
|
|
+ struct clk_fixed_factor _struct = { \
|
|
|
+ .div = _div, \
|
|
|
+ .mult = _mult, \
|
|
|
+ .hw.init = CLK_HW_INIT(_name, \
|
|
|
+ _parent, \
|
|
|
+ &clk_fixed_factor_ops, \
|
|
|
+ _flags), \
|
|
|
+ }
|
|
|
+
|
|
|
#ifdef CONFIG_OF
|
|
|
int of_clk_add_provider(struct device_node *np,
|
|
|
struct clk *(*clk_src_get)(struct of_phandle_args *args,
|