summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Huang <lhuang@nvidia.com>2011-01-27 13:14:44 -0800
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:41:59 -0800
commit673bb291bd7d06ccf4e5a6664bae4e9f32e18a99 (patch)
treebdde786862cf4ccdb6dbef784e39ddfeb7642167
parentdaaab6fa879a5e1be302015c14d82e3d23023b94 (diff)
video: tegra: dsi: Added dsi support.
Bug 793366 Bug 794499 Original-Change-Id: Id49d86dd7760b75ef4947f5bdab9e37f0333391d Reviewed-on: http://git-master/r/#change,18950 Reviewed-on: http://git-master/r/22508 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com> Rebase-Id: R968aab8a752d3d253216935839e94fdbd7fc6ba4
-rw-r--r--arch/arm/mach-tegra/include/mach/iomap.h3
-rw-r--r--arch/arm/mach-tegra/tegra2_clocks.c19
2 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/include/mach/iomap.h b/arch/arm/mach-tegra/include/mach/iomap.h
index ac3eb87782aa..fa214ff94f4f 100644
--- a/arch/arm/mach-tegra/include/mach/iomap.h
+++ b/arch/arm/mach-tegra/include/mach/iomap.h
@@ -56,6 +56,9 @@
#define TEGRA_HDMI_BASE 0x54280000
#define TEGRA_HDMI_SIZE SZ_256K
+#define TEGRA_DSI_BASE 0x54300000
+#define TEGRA_DSI_SIZE SZ_256K
+
#define TEGRA_GART_BASE 0x58000000
#define TEGRA_GART_SIZE SZ_32M
diff --git a/arch/arm/mach-tegra/tegra2_clocks.c b/arch/arm/mach-tegra/tegra2_clocks.c
index d1db92c466c9..8c1c45e36167 100644
--- a/arch/arm/mach-tegra/tegra2_clocks.c
+++ b/arch/arm/mach-tegra/tegra2_clocks.c
@@ -660,6 +660,12 @@ static int tegra2_pll_clk_enable(struct clk *c)
val |= PLL_BASE_ENABLE;
clk_writel(val, c->reg + PLL_BASE);
+ if (c->flags & PLLD) {
+ val = clk_readl(c->reg + PLL_MISC(c) + PLL_BASE);
+ val |= PLLD_MISC_CLKENABLE;
+ clk_writel(val, c->reg + PLL_MISC(c) + PLL_BASE);
+ }
+
tegra2_pll_clk_wait_for_lock(c);
return 0;
@@ -673,6 +679,12 @@ static void tegra2_pll_clk_disable(struct clk *c)
val = clk_readl(c->reg);
val &= ~(PLL_BASE_BYPASS | PLL_BASE_ENABLE);
clk_writel(val, c->reg);
+
+ if (c->flags & PLLD) {
+ val = clk_readl(c->reg + PLL_MISC(c) + PLL_BASE);
+ val &= ~PLLD_MISC_CLKENABLE;
+ clk_writel(val, c->reg + PLL_MISC(c) + PLL_BASE);
+ }
}
static int tegra2_pll_clk_set_rate(struct clk *c, unsigned long rate)
@@ -1653,6 +1665,11 @@ static struct clk_pll_freq_table tegra_pll_d_freq_table[] = {
{ 19200000, 216000000, 135, 12, 1, 3},
{ 26000000, 216000000, 216, 26, 1, 4},
+ { 12000000, 5000000, 10, 24, 1, 4},
+ { 12000000, 10000000, 10, 12, 1, 4},
+ { 12000000, 161500000, 323, 24, 1, 4},
+ { 12000000, 162000000, 162, 12, 1, 4},
+
{ 12000000, 594000000, 594, 12, 1, 8},
{ 13000000, 594000000, 594, 13, 1, 8},
{ 19200000, 594000000, 495, 16, 1, 8},
@@ -2251,6 +2268,8 @@ struct clk_duplicate tegra_clk_duplicates[] = {
CLK_DUPLICATE("usbd", "tegra-otg", NULL),
CLK_DUPLICATE("hdmi", "tegradc.0", "hdmi"),
CLK_DUPLICATE("hdmi", "tegradc.1", "hdmi"),
+ CLK_DUPLICATE("dsi", "tegradc.0", "dsi"),
+ CLK_DUPLICATE("dsi", "tegradc.1", "dsi"),
CLK_DUPLICATE("pwm", "tegra_pwm.0", NULL),
CLK_DUPLICATE("pwm", "tegra_pwm.1", NULL),
CLK_DUPLICATE("pwm", "tegra_pwm.2", NULL),