summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Mayo <jmayo@nvidia.com>2011-08-08 10:11:52 -0700
committerVarun Colbert <vcolbert@nvidia.com>2011-08-09 15:35:34 -0700
commit6e2924c7a9240c9eb559d1907b00ca6de5bd11be (patch)
treeca80f20b2f74762619083a54ef553287cb8c9d2d
parent1d706de8a659ccc528bea704234234a162d846f5 (diff)
arm: tegra: cardhu: use 55hz only for old boards
Use different display refresh rates for some boards that are more sensitive to touch screen interference. Bug 861062 Change-Id: I76a31107b2111d4a0d6d5f072ead877a35cd59a0 Reviewed-on: http://git-master/r/45874 Tested-by: Jonathan Mayo <jmayo@nvidia.com> Reviewed-by: Jonathan Mayo <jmayo@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/board-cardhu-panel.c25
-rw-r--r--arch/arm/mach-tegra/board-cardhu.h1
2 files changed, 26 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-panel.c b/arch/arm/mach-tegra/board-cardhu-panel.c
index 8f7090da3efb..9ce6a9ea23a4 100644
--- a/arch/arm/mach-tegra/board-cardhu-panel.c
+++ b/arch/arm/mach-tegra/board-cardhu-panel.c
@@ -440,6 +440,23 @@ static struct resource cardhu_disp2_resources[] = {
#ifndef CONFIG_TEGRA_CARDHU_DSI
static struct tegra_dc_mode cardhu_panel_modes[] = {
{
+ /* 1366x768@60Hz */
+ .pclk = 74180000,
+ .h_ref_to_sync = 1,
+ .v_ref_to_sync = 1,
+ .h_sync_width = 30,
+ .v_sync_width = 5,
+ .h_back_porch = 52,
+ .v_back_porch = 20,
+ .h_active = 1366,
+ .v_active = 768,
+ .h_front_porch = 64,
+ .v_front_porch = 25,
+ },
+};
+
+static struct tegra_dc_mode cardhu_panel_modes_55hz[] = {
+ {
/* 1366x768p 55Hz */
.pclk = 68000000,
.h_ref_to_sync = 0,
@@ -999,6 +1016,14 @@ int __init cardhu_panel_init(void)
cardhu_carveouts[1].base = tegra_carveout_start;
cardhu_carveouts[1].size = tegra_carveout_size;
+ if (board_info.board_id == BOARD_E1291 &&
+ ((board_info.sku & SKU_TOUCHSCREEN_MECH_FIX) == 0)) {
+ /* use 55Hz panel timings to reduce noise on sensitive touch */
+ printk("Using cardhu_panel_modes_55hz\n");
+ cardhu_disp1_out.modes = cardhu_panel_modes_55hz;
+ cardhu_disp1_out.n_modes = ARRAY_SIZE(cardhu_panel_modes_55hz);
+ }
+
if (board_info.board_id == BOARD_PM269) {
gpio_request(pm269_lvds_shutdown, "lvds_shutdown");
gpio_direction_output(pm269_lvds_shutdown, 1);
diff --git a/arch/arm/mach-tegra/board-cardhu.h b/arch/arm/mach-tegra/board-cardhu.h
index d21c2fe23c78..38779220ddde 100644
--- a/arch/arm/mach-tegra/board-cardhu.h
+++ b/arch/arm/mach-tegra/board-cardhu.h
@@ -38,6 +38,7 @@
#define SKU_DCDC_TPS62361_SUPPORT 0x1
#define SKU_SLT_ULPI_SUPPORT 0x2
#define SKU_T30S_SUPPORT 0x4
+#define SKU_TOUCHSCREEN_MECH_FIX 0x10
#define SKU_MEMORY_TYPE_BIT 0x4
#define SKU_MEMORY_TYPE_MASK 0x3