[PATCH-V3 3/3] ARM: OMAP3+: clock33xx: Add AM33XX clock tree data
Paul Walmsley
paul at pwsan.com
Thu Apr 26 02:36:00 EDT 2012
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.
> 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.
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.
- Paul
More information about the linux-arm-kernel
mailing list