Re: [PATCH v6 00/41] ARM: davinci: convert to common clock frameworkâ
From: Bartosz Golaszewski
Date: Tue Jan 23 2018 - 09:55:01 EST
2018-01-22 18:30 GMT+01:00 David Lechner <david@xxxxxxxxxxxxxx>:
> On 01/22/2018 05:14 AM, Bartosz Golaszewski wrote:
>>
>> 2018-01-20 18:13 GMT+01:00 David Lechner <david@xxxxxxxxxxxxxx>:
>>>
>>> This series converts mach-davinci to use the common clock framework.
>>>
>>> The series works like this, the first 19 patches create new clock drivers
>>> using the common clock framework. There are basically 3 groups of clocks
>>> -
>>> PLL, PSC and CFGCHIP (syscon). There are six different SoCs that each
>>> have
>>> unique init data, which is the reason for so many patches.
>>>
>>> Then, starting with "ARM: da830: add new clock init using common clock",
>>> we get the mach code ready for the switch by adding the code needed for
>>> the new clock drivers and adding #ifndef CONFIG_COMMON_CLK around the
>>> legacy clocks so that we can switch easily between the old and the new.
>>>
>>> "ARM: davinci: switch to common clock framework" actually flips the
>>> switch
>>> to start using the new clock drivers. Then the next 8 patches remove all
>>> of the old clock code.
>>>
>>> The final three patches add device tree clock support to the one SoC that
>>> supports it.
>>>
>>> v6 changes (also see individual patches for details):
>>> - All of the device tree bindings are changed
>>> - All of the clock drivers are changed significantly
>>> - Fixed issues brought up during review of v5
>>> - "ARM: davinci: move davinci_clk_init() to init_time" is removed from
>>> this
>>> series and submitted separately
>>>
>>> v5 changes:
>>> - Basically, this is an entirely new series
>>> - Patches are broken up into bite-sized pieces
>>> - Converted PSC clock driver to use regmap
>>> - Restored "force" flag for certain DA850 clocks
>>> - Added device tree bindings
>>> - Moved more of the clock init to drivers/clk
>>> - Fixed frequency scaling (maybe*)
>>>
>>> * I have frequency scaling using cpufreq-dt, so I know the clocks are
>>> doing
>>> what they need to do to make this work, but I haven't figured out how
>>> to
>>> test davinci-cpufreq driver yet. (Patches to make cpufreq-dt work will
>>> be
>>> sent separately after this series has landed.)
>>>
>>> Dependencies:
>>>
>>> This series applies on top of linux-davinci/master plus the following
>>> patches:
>>> - [1] "clk: fix reentrancy of clk_enable() on UP systems" (in clk-next)
>>> - [2] "clk: add helper functions for managing clk_onecell_data"
>>> - [3] "clk: divider: read-only divider can propagate rate change"
>>> - [4],[5],[6],[7],[8],[9] series "ARM: davinci: common clock prep work"
>>>
>>
>> Hi David,
>>
>> I'm getting a splat[1] when trying to mount the rootfs over nfs on a
>> da850-lcdk.
>>
>> I'll try to figure out what's happening.
>>
>> Best regards,
>> Bartosz Golaszewski
>>
>> [1] https://pastebin.com/D94z8SAe
>>
>
> Could it have something to do with the "rmii" clock? I don't think I added
> that
> in the device tree.
>
I'm looking at it now. There are problems with emac & mdio both in
legacy and in DT mode.
The davinci_mdio driver seems to not get an actual functional clock
(phy is reported as down). I'm seeing that in old legacy code,
mdio_clk has emac_clk as parent, while after your changes they share
pll0_sysclk4 as parent, although I'm not sure if that has anything to
do with it.
I'll see about the rmii clock too.
Thanks,
Bartosz