On Tuesday 16 January 2018 10:21 PM, David Lechner wrote:
+static struct clk *davinci_psc_clk_register(const char *name,
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ const char *parent_name,
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ struct regmap *regmap,
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ u32 lpsc, u32 pd, u32 flags)
+{
+ÂÂÂ struct clk_init_data init;
+ÂÂÂ struct davinci_psc_clk *psc;
+ÂÂÂ struct clk *clk;
+
+ÂÂÂ psc = kzalloc(sizeof(*psc), GFP_KERNEL);
+ÂÂÂ if (!psc)
+ÂÂÂÂÂÂÂ return ERR_PTR(-ENOMEM);
+
+ÂÂÂ init.name = name;
+ÂÂÂ init.ops = &davinci_psc_clk_ops;
+ÂÂÂ init.parent_names = (parent_name ? &parent_name : NULL);
+ÂÂÂ init.num_parents = (parent_name ? 1 : 0);
+ÂÂÂ init.flags = CLK_SET_RATE_PARENT;
Is this needed since PSC does not cause any rate change?
Yes, because one of the PSCs is the ARM clock and for cpufreq, we
need to propagate the rate change up the chain to SYSCLK6.
Good point. But how about treating that as an exception with a new LPSC_
quirk flag?