summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-dalmore-power.c
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2013-01-31 23:05:11 -0800
committerMandar Padmawar <mpadmawar@nvidia.com>2013-02-11 05:01:49 -0800
commit24e18b0cac6265368612e9fde9ecca29322078da (patch)
tree840b388580da2a4fd72c9b1e219ca15d348e5245 /arch/arm/mach-tegra/board-dalmore-power.c
parent73e0c048b6e8ecfe26f1d19fa6accaf10df6542d (diff)
ARM: tegra11: dvfs: Upgrade CL-DVFS disable output ops
New CL-DVFS h/w (rev A02 of Tegra11 SoC) allows to disable CL-DVFS output while I2C transaction is in progress without compromising bus integrity. This commit added to platform data configuration option <out_quiet_then_disable> that is set only for older versions of the chip. In case when <out_quiet_then_disable> option is not set, a procedure for exiting closed loop mode to open loop mode is modified as follows: - I2C output is disabled before the switch (while still operating in closed loop mode) to avoid unnecessary voltage jump to "safe value" - Possible transaction in progress is flushed after interface is disabled - Flush timeout is reported to the caller that initiated closed loop exit (bus integrity is guaranteed even if timeout happens) In addition output is now disabled while look-up table is reloaded in cosed loop mode to avoid race between table write (s/w) and read (h/w). Bug 1159200 Change-Id: I9d0f0dfa55664c5792ca81018c127628d461da0b Signed-off-by: Alex Frid <afrid@nvidia.com> Reviewed-on: http://git-master/r/198633 Reviewed-by: Mandar Padmawar <mpadmawar@nvidia.com> Tested-by: Mandar Padmawar <mpadmawar@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-dalmore-power.c')
-rw-r--r--arch/arm/mach-tegra/board-dalmore-power.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-dalmore-power.c b/arch/arm/mach-tegra/board-dalmore-power.c
index 2b1b7d026abb..b09368f4207b 100644
--- a/arch/arm/mach-tegra/board-dalmore-power.c
+++ b/arch/arm/mach-tegra/board-dalmore-power.c
@@ -42,6 +42,7 @@
#include <mach/irqs.h>
#include <mach/edp.h>
#include <mach/gpio-tegra.h>
+#include <mach/hardware.h>
#include "cpu-tegra.h"
#include "pm.h"
@@ -1042,6 +1043,8 @@ static struct tegra_cl_dvfs_platform_data dalmore_cl_dvfs_data = {
static int __init dalmore_cl_dvfs_init(void)
{
fill_reg_map();
+ if (tegra_revision < TEGRA_REVISION_A02)
+ dalmore_cl_dvfs_data.out_quiet_then_disable = true;
tegra_cl_dvfs_device.dev.platform_data = &dalmore_cl_dvfs_data;
platform_device_register(&tegra_cl_dvfs_device);