[PATCH v6 1/5] clk: Add a basic multiplier clock
From: mturquette@baylibre.com (Michael Turquette)
Date: 2015-10-20 13:43:43
Also in:
linux-clk
Hi Maxime, Quoting Maxime Ripard (2015-10-20 00:36:45)
+struct clk *clk_register_multiplier(struct device *dev, const char *name,
+ const char *parent_name,
+ unsigned long flags,
+ void __iomem *reg, u8 shift, u8 width,
+ u8 clk_mult_flags, spinlock_t *lock)
+{
Patch looks good in general. However this is a good opportunity to stop
the madness around the registration functions in these basic clock
types.
clk_register is really all that we need since we've had struct
clk_init_data for a while. Initializing a multiplier should be as simple
as:
struct clk_multiplier clk_foo = {
.hw.init = &(struct clk_init_data){
.name = "foo",
.parent_names = (const char *[]){
"bar",
},
.num_parents = 1;
.ops = &clk_multiplier_ops,
},
.reg = 0xd34db33f,
.shift = 1,
.width = 2,
};
clk_register(dev, &clk_foo.hw);
This is nice since it turns these basic clocks into even more of a
library and less of a poor mans driver.
(I really hope the above works. I did not test it)
Is it possible you can convert to using this method, and if it is
correct for you then just remove clk_multiplier_register altogether? (In
fact you might not use the registration function at all since you use
the composite clock...)
Regards,
Mike