
On 01/20/2017 02:14 PM, Scott Wood wrote:
On Fri, 2017-01-20 at 21:38 +0000, york sun wrote:
On 01/20/2017 01:36 PM, Scott Wood wrote:
On Fri, 2017-01-20 at 16:28 +0000, york sun wrote:
<snip>
Why fixing up this clock causes incorect frequency value? The macro CONFIG_SYS_CLK_FREQ is defined as 125MHz for ls1012a.
Because ls1012a has two different input frequencies -- 125 MHz for the platform PLL and 100 MHz for the core PLLs. When we added a second fixed- clock node for the latter, U-Boot was overwriting it.
While the ifdef solves this immediate problem, it doesn't fix the underlying problem that this fixup is overly broad. It should identify the specific node it's looking for, and not overwrite every fixed-clock node it finds.
So current code tries to fix up any node with "fixed-clock"? That's not good. What if we have multiple fixed clocks?
That is exactly the problem. This patch avoids the issue on ls1012a but not in general.
Then a proper fix would be check the clock name or compatible. If none of them exists, we should fix the device tree first.
York