[PATCH-V3 3/3] ARM: OMAP3+: clock33xx: Add AM33XX clock tree data

Paul Walmsley paul at pwsan.com
Wed May 23 11:08:27 EDT 2012


Hi Vaibhav

On Wed, 23 May 2012, Hiremath, Vaibhav wrote:

> I used your cleaned version of clocktree data, where you have removed all 
> leaf-nodes and merged multiple clocks nodes into one; but it did not work. I 
> attempted to review the cleanup and tried to debug, but found it bit hard to 
> come back to working clocktree from stripped version. So moved back to my 
> submitted clocktree and started stripping the clock leaf-nodes, same way you 
> had done it. Now I reached to the stage where I have working clocktree 
> without peripheral leaf-nodes and booting on BeagleBone.

Okay great, please post that to the list so we can diff it against the 
version that I did, and also so we can queue it for merging in 3.6?

> Just FYI (may need your help), I got into some issues (still open) during 
> this cleanup -
> 
> 1. In cases where we have clock selection option for node-leafs, like, 
>    Timers, I removed enable_reg entry from the node, which results into a 
>    kernel error message from function omap2_dflt_clk_disable()
> 
> clock: clk_disable called on independent clock %s which has no enable_reg

Shouldn't those clocks use clkops_null then?

> 2. clkdm_name entry: 
>    The issue is, two entries available for clockdomain associated for 
>    module/clock 
>         - hwmod_data.main_clk and 
>         - clk.clkdm_name
> 
>    They must match, right? The parent/root clocks flows from one domain to 
>    another domain, so I have to keep the nodes just for sake of matching 
>    clockdomain entry present in associated main_clk data.
> 
>    I am still reviewing the code from Rajendra, but one of Rajendra's patch 
>    actually will help here, made it to use hwmod_data.clkdm (if available) 
>    always, instead of directly using clk.clkdm.

Well because of this CLKDIV32K snafu, we'll need to keep the clock 
framework-based clockdomain control for AM33xx, at the very least for 
the CLKDIV32K clock.

I'd suggest starting with specifying a clockdomain name for each clock.  
If nothing else, this should help think through the power management 
behavior for each clock.  Then those can be easily removed later with a 
simple grep.

> 3. If I understand correctly, hwmod_data.main_clk is functional clock and    
>    hwmod_ocp_if.clk is interface clock, right?

Basically, yes.  To be more precise, in cases where 
modules have multiple functional clocks, hwmod_data.main_clk is the 
functional clock that is needed in order for register reads and writes to 
the IP block to succeed.

>    So currently, I have mentioned same entry in both the places (especially 
>    for Peripherals/modules).
>    I am planning to remove ocp_if/clk entry data for all modules..

Hmmm, could you explain this further?

Every ocp_if structure that you create should have an interface clock 
specified.  And almost all of your hwmods should have a main_clk 
specified.


- Paul



More information about the linux-arm-kernel mailing list