On Sat, Dec 17, 2016 at 3:33 AM, Stephen Boyd sboyd@codeaurora.org wrote:
On 12/15, Pierre-Louis Bossart wrote:
Clients use devm_clk_get() with a "pmc_plt_clk_<n>" argument.
This is the problem. Clients should be calling clk_get() like:
clk_get(dev, "signal name in datasheet")
where the first argument is the device and the second argument is some string that is meaningful to the device, not the system as a whole. The way clkdev is intended is so that the dev argument's dev_name() is combined with the con_id that matches some signale name in the datasheet. This way when the same IP is put into some other chip, the globally unique name doesn't need to change, just the device name that's registered with the lookup. Obviously this breaks down quite badly when dev_name() isn't stable. Is that happening here?
PMC Atom is a PCI device and thus each platform would have different dev_name(). Do you want to list all in each consumer if consumer wants to work on all of them or I missed something?
So, the question is how clock getting will look like to work on currently both CherryTrail and BayTrail.