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

Reply via email to