Signed-off-by: Kristen Carlson Accardi <[email protected]>
---
arch/x86/pci/mrst.c | 36 ++++++++++++++++++++++++++++++++++--
1 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c
index 64320f9..ca8b689 100644
--- a/arch/x86/pci/mrst.c
+++ b/arch/x86/pci/mrst.c
@@ -283,13 +283,45 @@ static void __devinit langwell_keypad_fixup(struct
pci_dev *dev)
val = readl(base);
- /* set the KPC register */
+ /*
+ * set the KPC register. Please see the Langwell Docs
+ * for more detail.
+ *
+ * Bit 31: Reserved
+ * Bit 30: Automatic Scan Bit
+ * Bit 29: Automatic Scan on Activity bit
+ * Bit 28:26 : Matrix keypad row number
+ * 000 == 1, 001 == 2, ... 111 == 8
+ * Bit 25:23 : Matrix keypad column number
+ * 000 ==1, 001 == 2, ... 111 == 8
+ * Bit 22: Matrix Interrupt Bit
+ * Bit 21: Ignore Multiple Key Press
+ * Bit 20: Manual Matrix Scan line 7
+ * Bit 19: Manual Matrix Scan line 6
+ * Bit 18: Manual Matrix Scan line 5
+ * Bit 17: Manual Matrix Scan line 4
+ * Bit 16: Manual Matrix Scan line 3
+ * Bit 15: Manual Matrix Scan line 2
+ * Bit 14: Manual Matrix Scan line 1
+ * Bit 13: Manual Matrix Scan line 0
+ * Bit 12: Matrix Keypad Enable
+ * Bit 11: Matrix Interrupt Enable
+ * Bit 10:9 : Reserved
+ * Bit 8:6 : Direct Key Number + Roatry encoder sensor input
+ * 000 == 1, 001 == 2, ... 111 == 8
+ * Bit 5: Direct Interrupt bit
+ * Bit 4: Reserved
+ * Bit 3: Rotary Encoder 1 enable
+ * Bit 2: Rotary Encoder 0 enable
+ * Bit 1: Direct Keypad enable
+ * Bit 0: Direct Keypad Interrupt enable
+ */
if (val == 0)
writel(0x3f9ff8c3, base);
val = readl(base + 0x24);
- /* set the debounce interval (KPKDI) */
+ /* set the debounce interval (KPKDI) to 100ms */
if (val == 0)
writel(100, base + 0x24);
--
1.7.3.1
_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel