summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Mayo <jmayo@nvidia.com>2011-08-08 10:11:52 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:48:08 -0800
commit8b385bb3ad43910381a48c53c7d5d4e889213dbd (patch)
tree4f8197b5600f98ca48d06db2eb424f9450b133ea
parent7b6c87d7772857395bd61e5097515d05c5528dd4 (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 Original-Change-Id: I76a31107b2111d4a0d6d5f072ead877a35cd59a0 Reviewed-on: http://git-master/r/45874 Tested-by: Jonathan Mayo <jmayo@nvidia.com> Reviewed-by: Jonathan Mayo <jmayo@nvidia.com> Rebase-Id: R5605962a8d026d775af9f7d166daa697c5e6d4d5
-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 4e341187fff0..1c45afb0084e 100644
--- a/arch/arm/mach-tegra/board-cardhu-panel.c
+++ b/arch/arm/mach-tegra/board-cardhu-panel.c
@@ -439,6 +439,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,
@@ -961,6 +978,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 711fadb42575..3ee3fe6e2bb7 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