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

Hiremath, Vaibhav hvaibhav at ti.com
Thu Apr 26 02:43:25 EDT 2012


On Thu, Apr 26, 2012 at 12:06:00, Paul Walmsley wrote:
> On Thu, 26 Apr 2012, Hiremath, Vaibhav wrote:
> 
> > Unfortunately, this is fractional divider, assuming input clock of 24MHz.
> > 
> > 24MHz / 732.4219 = 32KHz (Normal OPP100)
> > 24MHz / 366.2109 = 32KHz (OPP50)
> 
> Yes, I already saw that in the TRM.  The question is, how is the 
> fractional divider implemented in the hardware?  Is it implemented as an 
> M,N counter?  It's rather unlikely to be dividing by 732.4219 directly -- 
> in fact that value isn't even accurate.
> 

Not sure how it is implemented in HW, in any case we do not have control 
over it. The control is only provided using,
	- MODULEMODE (module enable/disable)
	- CONTROL_CLK32K_DIVRATIO_CTRL (divisor selection)


> > As per the Spec, we have some known HW/Si issues to run whole system at 
> > OPP50, that's where if you refer to the TRM Table 8-22. Per PLL Typical 
> > Frequencies (MHz), it only talks about OPP100, which is 732.4219 divider.
> > 
> > So, technically, if both OPP's (OPP100 and OPP50) works fine, then yes, we 
> > should handle it. But given the fact that, OPP50 is not fully functional due 
> > to HW/Si issues, from CORE and PER perspective we will always stay at OPP100.
> 
> I see.
> 
> > To summarize, I had to make it fixed-frequency due to,
> > 
> >  - Fractional divisor value.
> 
> This could be implemented as an M,N counter, unless the hardware is doing 
> something more unusual.
> 
> > > - This clock is feeding downstream clocks, but it's using the MODULEMODE 
> > > control interface, as if it were a standalone IP block.  Do you know why 
> > > it's using the MODULEMODE control method rather than some optional clock 
> > > control bits, like OMAP4 does?
> > 
> > Yes, this clock is feeding to timers, gpio debounce clocks, etc...
> > Honestly, I do not know the answer to why part of it.
> > (May be another integration/design issue)
> 
> Could you please check with the AM335x PRCM designers about this to find 
> out what that MODULEMODE bit is actually doing (i.e., is it actually 
> enabling the clock, and if so, why did they not use the OPTFCLKEN bits) ?  
> The AM335x TRM has almost no documentation on what those MODULEMODE bits 
> are doing in this case.
> 

I can check, I am certain that, the answer would be to consider this as a 
separate independent module. And same as other modules, control is provided 
to the SW.

> We're trying to remove all of these MODULEMODE clocks from the clock 
> framework, and also remove the accompanying clockdomain control sequence 
> from the clock code.  But now it's looking like it may be impossible due 
> to this "clock," which means we'll need to keep that code around, which is 
> unfortunate.
> 

I think we have to live with it.

Thanks,
Vaibhav
> 
> - Paul
> 




More information about the linux-arm-kernel mailing list