Adding custom KEY_MATRIX for in order to enable FAFT for PARROT

BUG=chrome-os-partner:13542
TEST=firmware_DevMode firmware screen got skipped

Change-Id: If93f52e67232446b6fe949bd67c80dbc308e3639
Reviewed-on: https://gerrit.chromium.org/gerrit/32819
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Reviewed-by: Gediminas Ramanauskas <gedis@chromium.org>
Tested-by: Gediminas Ramanauskas <gedis@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>
Commit-Ready: Gediminas Ramanauskas <gedis@chromium.org>
diff --git a/server/cros/servo.py b/server/cros/servo.py
index fc33d5c..df1beb1 100644
--- a/server/cros/servo.py
+++ b/server/cros/servo.py
@@ -60,13 +60,21 @@
     # Time between an usb disk plugged-in and detected in the system.
     USB_DETECTION_DELAY = 10
 
-    KEY_MATRIX = {
+    KEY_MATRIX_ALT_0 = {
         'm1': {'ctrl_r': ['0', '0'], 'd': ['0', '1'],
                'enter': ['1', '0'], 'none': ['1', '1']},
         'm2': {'ctrl': ['0', '0'], 'refresh': ['0', '1'],
                'unused': ['1', '0'], 'none': ['1', '1']}
         }
 
+    KEY_MATRIX_ALT_1 = {
+        'm1': {'d': ['0', '0'], 'enter': ['0', '1'],
+               'ctrl_r': ['1', '0'], 'none': ['1', '1']},
+        'm2': {'unused': ['0', '0'], 'refresh': ['0', '1'],
+               'ctrl': ['1', '0'], 'none': ['1', '1']}
+        }
+
+    KEY_MATRIX = [KEY_MATRIX_ALT_0, KEY_MATRIX_ALT_1]
 
     @staticmethod
     def _make_servo_hostname(hostname):
@@ -106,6 +114,7 @@
                           is running.
         @param servo_port Port the servod process is listening on.
         """
+        self._key_matrix = 0
         self._server = None
         self._connect_servod(servo_host, servo_port)
 
@@ -196,15 +205,15 @@
                                 press_secs=SERVO_KEY_PRESS_DELAY):
         """Simulate button presses."""
         # set keys to none
-        (m2_a1, m2_a0) = self.KEY_MATRIX['m2']['none']
-        (m1_a1, m1_a0) = self.KEY_MATRIX['m1']['none']
+        (m2_a1, m2_a0) = self.KEY_MATRIX[self._key_matrix]['m2']['none']
+        (m1_a1, m1_a0) = self.KEY_MATRIX[self._key_matrix]['m1']['none']
         self.set_nocheck('kbd_m2_a0', m2_a0)
         self.set_nocheck('kbd_m2_a1', m2_a1)
         self.set_nocheck('kbd_m1_a0', m1_a0)
         self.set_nocheck('kbd_m1_a1', m1_a1)
 
-        (m2_a1, m2_a0) = self.KEY_MATRIX['m2'][m2]
-        (m1_a1, m1_a0) = self.KEY_MATRIX['m1'][m1]
+        (m2_a1, m2_a0) = self.KEY_MATRIX[self._key_matrix]['m2'][m2]
+        (m1_a1, m1_a0) = self.KEY_MATRIX[self._key_matrix]['m1'][m1]
         self.set_nocheck('kbd_en', 'on')
         self.set_nocheck('kbd_m2_a0', m2_a0)
         self.set_nocheck('kbd_m2_a1', m2_a1)
@@ -214,6 +223,11 @@
         self.set_nocheck('kbd_en', 'off')
 
 
+    def set_key_matrix(self, matrix=0):
+        """Set keyboard mapping"""
+        self._key_matrix = matrix
+
+
     def ctrl_d(self):
         """Simulate Ctrl-d simultaneous button presses."""
         self._press_and_release_keys('d', 'ctrl')