clk: tegra: Rework pll_u
authorPeter De Schrijver <pdeschrijver@nvidia.com>
Tue, 14 Mar 2017 14:12:49 +0000 (16:12 +0200)
committerThierry Reding <treding@nvidia.com>
Mon, 20 Mar 2017 13:18:30 +0000 (14:18 +0100)
commite745f992cf4b030ef73c5cdceecd03d9d3c727e9
treec5dd92a5d9b729ef8f255430648af5a703f4ec75
parent4236e752f19d4dae372336859a18ca8a5bed9374
clk: tegra: Rework pll_u

In normal operation pll_u is under hardware control and has a fixed rate
of 480MHz. Hardware will turn on pll_u on whenever any of the XUSB
powerdomains is on. From a software point of view we model this is if
pll_u is always on using a fixed rate clock. However the bootloader
might or might not have configured pll_u this way. So we will check the
current state of pll_u at boot and reconfigure it if required.

There are 3 possiblities at kernel boot:
1) pll_u is under hardware control: do nothing
2) pll_u is under hardware control and enabled: enable hardware control
3) pll_u is disabled: enable pll_u and enable hardware control

In all cases we also check if UTMIPLL is under hardware control at boot
and configure it for hardware control if that is not the case.
The same is done during SC7 resume.

Thanks to Joseph Lo <josephl@nvidia.com> for bug fixes.

Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/clk/tegra/clk-pll.c
drivers/clk/tegra/clk-tegra210.c