uboot/arch/arm
Stephen Warren 6c7dc6236a ARM: tegra: fix PLLP frequency calc on T210
AFAIK, for all PLLs on all Tegra SoCs, the primary PLL output frequency
is (input * m) / (n * p). However, PLLP's primary output (pllP_out0) on
T210 is the VCO output, and divp is not applied. pllP_out2 does have divp
applied. All other pllP_outN are divided down from pllP_out0. We only
support pllP_out0 in U-Boot at the time of writing.

Fix clock_get_rate() to handle this special case.

This corrects the returned rate for PLLP to be 408MHz rather than 204MHz.
In turn, this causes high enough dividers to be calculated for the various
peripheral clocks that feed off of PLLP. Without this, some peripherals
failed to operate correctly. For instance, one of my SD cards worked
perfectly but an older (presumably slower) card could not be read.

Note that prior to commit 722e000ccd "Tegra: PLL: use per-SoC pllinfo
table instead of PLL_DIVM/N/P, etc.", the calculated PLL frequency was
816MHz since the wrong values were being extracted from the PLLP divider
register. This caused overly large peripheral dividers to be calculated,
which while wrong, didn't cause any correctness issues; things simply ran
slower than they could.

Reported-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
2015-09-16 16:10:22 -07:00
..
cpu arm: Remove unused ST-Ericsson u8500 arch 2015-09-15 15:05:21 -04:00
dts ARM: tegra: Add p2371-2180 board 2015-09-16 16:10:22 -07:00
imx-common imx-common: cpu: Do not print on invalid temperature 2015-09-13 10:50:55 +02:00
include tegra: Remove tegra_spl_gpio_direction_output declaration from header file 2015-09-16 16:10:22 -07:00
lib Merge git://git.denx.de/u-boot-rockchip 2015-09-03 14:57:09 -04:00
mach-at91 arm: Remove vl_ma2sc board 2015-09-11 17:12:57 -04:00
mach-bcm283x arm/mach-bcm283x/mbox: Flush and invalidate dcache when using fw mailbox 2015-08-12 20:47:42 -04:00
mach-davinci bitops: introduce BIT() definition 2015-09-11 17:15:32 -04:00
mach-exynos of: clean up OF_CONTROL ifdef conditionals 2015-08-18 13:46:05 -04:00
mach-highbank ARM: highbank: move SoC sources to mach-highbank 2015-02-21 08:23:51 -05:00
mach-integrator integrator: switch to DM serial port 2015-08-12 20:47:49 -04:00
mach-keystone bitops: introduce BIT() definition 2015-09-11 17:15:32 -04:00
mach-kirkwood arm: Remove tk71 board 2015-09-11 15:00:22 -04:00
mach-mvebu bitops: introduce BIT() definition 2015-09-11 17:15:32 -04:00
mach-orion5x arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
mach-rockchip rockchip: Add basic support for jerry 2015-09-02 21:28:24 -06:00
mach-socfpga arm: socfpga: Add support for the Terasic DE-0 Atlas board 2015-09-04 11:54:21 +02:00
mach-tegra ARM: tegra: fix PLLP frequency calc on T210 2015-09-16 16:10:22 -07:00
mach-uniphier ARM: uniphier: enable SPL_OF_CONTROL 2015-08-31 00:25:06 +09:00
mach-versatile arm: Remove versatileab board 2015-09-11 15:01:25 -04:00
mach-zynq bitops: introduce BIT() definition 2015-09-11 17:15:32 -04:00
mvebu-common arm: mvebu: Move mvebu-common into mach-mvebu 2015-05-05 14:28:29 +02:00
Kconfig imx: mx7dsabresd: Add support for MX7D SABRESD board 2015-09-13 10:11:54 +02:00
Kconfig.debug
Makefile arm: Remove unused reference to nomadik 2015-09-15 15:05:22 -04:00
config.mk arm: Include the .got section in the binary 2015-05-14 18:49:34 -06:00