diff options
author | Shridhar Rasal <srasal@nvidia.com> | 2011-11-03 12:37:34 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:49:44 -0800 |
commit | 01e776e0d3a36644297870d8cfd089761cc39e06 (patch) | |
tree | 6bddf92209e90dd03d47edf16a520f2990763020 /drivers/input | |
parent | 72f5dcc7ca238852d418683023adc2b8a04128d5 (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.c | 13 |
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); } |