On Mon, Jul 11, 2011 at 07:53:45PM +0900, Mark Brown wrote:
We do need some way to have some idea which clocks we're talking about,
and for off-SoC stuff passing around struct clk pointers is rather
painful. At some point some bit of code is going to have to get hold of
the actual struct clk and then map it onto the devices using it.
As I haven't seen any of this "passing around struct clk pointers" crap
recently, I can only guess at what you're saying. I thought all that
had been solved with _proper_ use of clkdev.
clkdev can provide you with a struct clk for _any_ device in the system
where its name is known at build time.
For devices where the name is not known at build time, a new cl_lookup
entry can be created at runtime with clkdev_alloc() or clk_add_alias(),
and dropped with clkdev_drop().
The problem comes when you aren't able to hook into a subsystem which
creates an unstable device name (eg, USB). I suspect that's also a
problem for DT too because there has to be some way to go from a struct
device to something stable.