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/faft_client_attribute.py b/server/cros/faft_client_attribute.py
index caf2ab6..32d1701 100644
--- a/server/cros/faft_client_attribute.py
+++ b/server/cros/faft_client_attribute.py
@@ -11,7 +11,8 @@
'has_lid': True,
'keyboard_dev': True,
'ec_capability': list(),
- 'wp_voltage': 'pp1800'}
+ 'wp_voltage': 'pp1800',
+ 'key_matrix_layout': 0}
def __init__(self, platform):
"""Initialized.
@@ -59,4 +60,8 @@
if platform == 'Link':
setting['wp_voltage'] = 'pp3300'
+ # Set 'key_matrix_layout'
+ if platform == 'Parrot':
+ setting['key_matrix_layout'] = 1
+
return setting
diff --git a/server/cros/faftsequence.py b/server/cros/faftsequence.py
index 41a57f2..87a3408 100644
--- a/server/cros/faftsequence.py
+++ b/server/cros/faftsequence.py
@@ -280,6 +280,9 @@
self.client_attr = FAFTClientAttribute(
self.faft_client.get_platform_name())
+ # Setting up key matrix mapping
+ self.servo.set_key_matrix(self.client_attr.key_matrix_layout)
+
def setup(self):
"""Autotest setup function."""
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')