Re: [PATCH v5 10/44] clk: davinci: New driver for davinci PSC clocks

From: Sekhar Nori
Date: Wed Jan 17 2018 - 07:26:35 EST


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?

Thanks,
Sekhar