[PATCH 1/3] [ARM] tegra: add PCI Express clocks

Gary King GKing at nvidia.com
Thu Sep 16 20:14:04 EDT 2010


> On Thu, Sep 16, 2010 at 11:27 PM, Colin Cross <ccross at google.com> wrote:
>> On Thu, Sep 16, 2010 at 9:53 AM, Mike Rapoport <mike at compulab.co.il> wrote:

<snip>

>> I've been told by Nvidia that the pll lock bits are not reliable, and
>> will be removing uses of tegra2_pll_clk_wait_for_lock and replacing
>> them with delays selected by each pll.  Can you confirm with Nvidia
>> that PLLE_MISC_READY works?

> I'll try to get a confirmation from NVidia....
> From what I've seen during testing the PLLE_MISC_READY works. When I
> used loops that counted udelay(1) I've noticed that the
> PLLE_MISC_READY is set after up to 3usecs.

All of the PLL lock bits in Tegra 2 are unreliable.

The safe way to ensure that PLLE is stable is to wait 1ms after changing it.

>> <snip>
>>
>>> +static struct clk_ops tegra_pcie_clk_ops = {
>>> +       .enable     = tegra2_periph_clk_enable,
>>> +       .disable    = tegra2_periph_clk_disable,
>>> +};
>> Why is this needed?  Won't the regular periph ops work?
>
> They didn't. I haven't found anything about what feeds these clocks,
> can they change rate, what clock can be their parent and if there is
> any muxing options for these clocks.

You can follow the example used by the csi and isp clocks, which also
only support enable and disable. give the PCI clocks a single-choice parent
mux (like mux_clk_m), flags = 0, reg = 0, and a dummy max_rate.

- Gary


More information about the linux-arm-kernel mailing list