mmc: tegra: implement module external clock change
authorLucas Stach <dev@lynxeye.de>
Tue, 22 Dec 2015 18:41:00 +0000 (19:41 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 28 Dec 2015 13:14:56 +0000 (14:14 +0100)
commita8e326a911d3ca1b7480aca936956a4e89c4add5
treec8dec8b1743b0bc51d0d42173632e18d3a560acf
parent918f4cbd4340ddd1eb389cd8efa3b07ac74ec4c0
mmc: tegra: implement module external clock change

Allow the the driver to change the clock supplied from the CAR directly,
minimizing the need to divide the clock inside the SDMMC module itself.

This allows for higher clock speeds than the default 48MHz supplied to
the module and is a prerequisite to support DDR signaling modes, where
the Tegra host needs to be run with a fixed internal divider of 2 for
data to be sampled correctly. (Tegra K1 TRM v03p chapter 29.7.1.1)

Also enable the broken preset value quirk as the preset values need to
be adapted to the changed clocking. While Tegra114+ allows this through
vendor registers, there is no such way for Tegra30. Takes the easy way
out  and keep things consistent between the different SoC generations by
flagging the preset registers as unusable.

Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-tegra.c