ARM: tegra11: clock: Implement EMC bus update policy
authorAlex Frid <afrid@nvidia.com>
Fri, 3 Aug 2012 00:33:39 +0000 (17:33 -0700)
committerVarun Colbert <vcolbert@nvidia.com>
Fri, 10 Aug 2012 04:03:35 +0000 (21:03 -0700)
commit55713389a3a7762dbb493cb429684c20f64a8bea
tree6acb8163b49071c897c1405bba17354eb76a981f
parent21ed6da84d867f001540728118a1e10c3e61bd64
ARM: tegra11: clock: Implement EMC bus update policy

Implemented EMC bus update policy as follows.

Request for EMC rate is rounded up to the available discrete step
listed in EMC scaling table.

The clock source is selected as specified in the respective table
entry (it can be either scaled PLLC or one of fixed rate plls: PLLP,
or PLLM).

If clock source rate does not match table entry (possible only for
scaled PLLC), and
- the scaled clock source is not used currently by EMC, then re-scale
PLLC, and complete source switch/divider change in one shot
- the scaled clock source is used currently by EMC, then switch emc to
backup pll, re-scale PLLC, and then switch emc to PLLC with appropriate
divider. The backup rate is determined as minimum rate above the target
that can be achieved from any fixed rate plls.

Change-Id: I1c9e3403c9600f925413fc310d7c8df2e2d3dff4
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/121436
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
arch/arm/mach-tegra/clock.h
arch/arm/mach-tegra/tegra11_clocks.c
arch/arm/mach-tegra/tegra11_emc.c