diff options
author | Jon Mayo <jmayo@nvidia.com> | 2011-08-08 10:11:52 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:48:08 -0800 |
commit | 8b385bb3ad43910381a48c53c7d5d4e889213dbd (patch) | |
tree | 4f8197b5600f98ca48d06db2eb424f9450b133ea | |
parent | 7b6c87d7772857395bd61e5097515d05c5528dd4 (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.c | 25 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu.h | 1 |
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 |