summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorShridhar Rasal <srasal@nvidia.com>2011-11-03 12:37:34 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:49:44 -0800
commit01e776e0d3a36644297870d8cfd089761cc39e06 (patch)
tree6bddf92209e90dd03d47edf16a520f2990763020 /drivers/input
parent72f5dcc7ca238852d418683023adc2b8a04128d5 (diff)
input: keyboard: Set configuration registers
-Set only REQUIRED row and column configuration register to PROPER values to avoid continuously generating KBC input events. -Use *enable* field in pin_cfg, to check GPIO_x_ROW_EN register should be set or clear. bug 889620 Change-Id: I91990156c300605c214e7e393edf14fbced1573d Reviewed-on: http://git-master/r/59153 Reviewed-by: Shridhar Rasal <srasal@nvidia.com> Tested-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Rebase-Id: R03e9deb839fc21c1ea66fc81ae6601155b8e8d4d
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/keyboard/tegra-kbc.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/input/keyboard/tegra-kbc.c b/drivers/input/keyboard/tegra-kbc.c
index 58a28ac9b1f8..e560e428db98 100644
--- a/drivers/input/keyboard/tegra-kbc.c
+++ b/drivers/input/keyboard/tegra-kbc.c
@@ -454,11 +454,14 @@ static void tegra_kbc_config_pins(struct tegra_kbc *kbc)
row_cfg &= ~r_mask;
col_cfg &= ~c_mask;
- if (pdata->pin_cfg[i].is_row)
- row_cfg |= ((pdata->pin_cfg[i].num << 1) | 1) << r_shft;
- else
- col_cfg |= ((pdata->pin_cfg[i].num << 1) | 1) << c_shft;
-
+ if (pdata->pin_cfg[i].en) {
+ if (pdata->pin_cfg[i].is_row)
+ row_cfg |= ((pdata->pin_cfg[i].num << 1) | 1)
+ << r_shft;
+ else
+ col_cfg |= ((pdata->pin_cfg[i].num << 1) | 1)
+ << c_shft;
+ }
writel(row_cfg, kbc->mmio + r_offs);
writel(col_cfg, kbc->mmio + c_offs);
}