Thread (11 messages) 11 messages, 2 authors, 2015-10-21

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help