Servo V3: Add Init Values to GPIO's

Noticed that initial values of GPIO's could vary each beaglebone boot,
servod initialization, or by device and setup. To prevent this, we
now force initialize them on servod startup.

Also for V3, the map for usbkey is swapped so over-rode the mapping.

BUG=None
TEST=Using local AFE launched platform_InstallTestImage before the
patch which failed and then succeeded with this patch.

Change-Id: I9cd5618410ba8b2d0889261d2e878749c9256fcd
Reviewed-on: https://gerrit.chromium.org/gerrit/63280
Commit-Queue: Simran Basi <sbasi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
diff --git a/servo/data/servo_v3_r0.xml b/servo/data/servo_v3_r0.xml
index a071d50..abc8994 100644
--- a/servo/data/servo_v3_r0.xml
+++ b/servo/data/servo_v3_r0.xml
@@ -17,6 +17,12 @@
     (TYPE MICRO-B/J6)</doc>
     <params dut_sees_hub="0" dut_sees_servo="1"></params>
   </map>
+  <map>
+    <name>usbkey</name>
+    <doc>Determines whether DUT or servo sees USB port (vert TYPE
+    A/J19)</doc>
+    <params dut_sees_usbkey="1" servo_sees_usbkey="0"></params>
+  </map>
   <!-- ********** I2c related controls ********** -->
   <!-- slv 0x20 : ioexpander port 0 -->
   <control>
@@ -222,21 +228,21 @@
     <doc>Reset DUT's USB hub with ethernet (RJ45/I54) and USB port
     (TYPE A/J3, TYPE A/J8, TYPE A/J10)</doc>
     <params interface="1" drv="gpio" chip="2" offset="17"
-    map="onoff_i"></params>
+    map="onoff_i" init="off"></params>
   </control>
   <control>
     <name>dut_hub_on</name>
     <doc>Enables DUT's USB hub with ethernet (RJ45/I54) and USB
     port (Vert TYPE A/J3)</doc>
-    <params interface="1" drv="gpio" chip="1" offset="29" map="yesno_i">
-    </params>
+    <params interface="1" drv="gpio" chip="1" offset="29" map="yesno_i"
+    init="yes"></params>
   </control>
   <control>
     <name>dut_hub_sel</name>
     <doc>2to1 Mux select for USB port (TYPE MICRO-B/J6). Set either
     'dut_sees_hub' or 'dut_sees_servo'</doc>
-    <params interface="1" drv="gpio" chip="2" offset="11" map="duthub">
-    </params>
+    <params interface="1" drv="gpio" chip="2" offset="11" map="duthub"
+    init="dut_sees_hub"></params>
   </control>
   <control>
     <name>dut_hub_ocs</name>
@@ -248,14 +254,14 @@
   <control>
     <name>dut_hub_pwren</name>
     <doc>enable power to DUT's USB hub</doc>
-    <params interface="1" drv="gpio" chip="2" offset="7" map="onoff">
-    </params>
+    <params interface="1" drv="gpio" chip="2" offset="7" map="onoff"
+    init="on"></params>
   </control>
   <control>
     <name>prtctl4_pwren</name>
     <doc>USB port 4 (TYPE A/J3, USB key) power enable</doc>
-    <params interface="1" drv="gpio" chip="2" offset="13" map="onoff">
-    </params>
+    <params interface="1" drv="gpio" chip="2" offset="13" map="onoff"
+    init="on"></params>
   </control>
   <control>
     <name>prtctl4_ocs</name>
@@ -267,21 +273,21 @@
     <name>usb_mux_oe1</name>
     <doc>Output enable for USB port (vert TYPE A/J3) to DUT via DUT
     USB hub</doc>
-    <params interface="1" drv="gpio" chip="2" offset="25" map="onoff_i">
-    </params>
+    <params interface="1" drv="gpio" chip="2" offset="25" map="onoff_i"
+    init="on"></params>
   </control>
   <control>
     <name>usb_mux_sel1</name>
     <doc>2to1 mux select for USB port (vert TYPE A/J3). Set either
     'dut_sees_usbkey' or 'servo_sees_usbkey'</doc>
-    <params interface="1" drv="gpio" chip="0" offset="11" map="usbkey">
-    </params>
+    <params interface="1" drv="gpio" chip="0" offset="11" map="usbkey"
+    init="servo_sees_usbkey"></params>
   </control>
   <control>
     <name>prtctl2_pwren</name>
     <doc>USB port 2 (TYPE A/J9) power enable</doc>
-    <params interface="1" drv="gpio" chip="0" offset="10" map="onoff">
-    </params>
+    <params interface="1" drv="gpio" chip="0" offset="10" map="onoff"
+    init="on"></params>
   </control>
   <control>
     <name>prtctl2_ocs</name>
@@ -293,21 +299,22 @@
     <name>usb_mux_oe3</name>
     <doc>Output enable for USB port (vert TYPE A/J8) to DUT via DUT
     USB hub</doc>
-    <params interface="1" drv="gpio" chip="1" offset="16" map="onoff_i">
-    </params>
+    <params interface="1" drv="gpio" chip="1" offset="16" map="onoff_i"
+    init="on"></params>
   </control>
   <control>
     <name>usb_mux_sel3</name>
     <doc>2to1 mux select for USB port (vert TYPE A/J8). Set either
     'dut_sees_usbkey' or 'servo_sees_usbkey'</doc>
-    <params interface="1" drv="gpio" chip="1" offset="28" map="usbkey">
+    <params interface="1" drv="gpio" chip="1" offset="28" map="usbkey"
+    init="servo_sees_usbkey">
     </params>
   </control>
   <control>
     <name>prtctl3_pwren</name>
     <doc>USB port 3 (TYPE A/J10) power enable</doc>
-    <params interface="1" drv="gpio" chip="2" offset="23" map="onoff">
-    </params>
+    <params interface="1" drv="gpio" chip="2" offset="23" map="onoff"
+    init="on"></params>
   </control>
   <control>
     <name>prtctl3_ocs</name>
@@ -318,21 +325,21 @@
   <control>
     <name>usb_mux_oe4</name>
     <doc>usb_mux_oe4</doc>
-    <params interface="1" drv="gpio" chip="1" offset="0" map="onoff_i">
-    </params>
+    <params interface="1" drv="gpio" chip="1" offset="0" map="onoff_i"
+    init="on"></params>
   </control>
   <control>
     <name>usb_mux_sel4</name>
     <doc>usb_mux_sel4</doc>
-    <params interface="1" drv="gpio" chip="1" offset="1" map="onoff">
-    </params>
+    <params interface="1" drv="gpio" chip="1" offset="1" map="onoff"
+    init="servo_sees_usbkey"></params>
   </control>
   <control>
     <name>dut_usb2_prtctl</name>
     <doc>power enable for USB port (TYPE A/J4) to DUT via USB port
     (TYPE MICRO-B/J5)</doc>
-    <params interface="1" drv="gpio" chip="2" offset="16" map="onoff">
-    </params>
+    <params interface="1" drv="gpio" chip="2" offset="16" map="onoff"
+    init="off"></params>
   </control>
   <control>
     <name>dut_usb2_ocs</name>
@@ -345,38 +352,38 @@
     <name>usb_mux_oe2</name>
     <doc>Output enable for USB port (TYPE A/J4) to DUT via USB port
     (TYPE MICRO-B/J5)</doc>
-    <params interface="1" drv="gpio" chip="2" offset="24" map="onoff_i">
-    </params>
+    <params interface="1" drv="gpio" chip="2" offset="24" map="onoff_i"
+    init="on"></params>
   </control>
   <control>
     <name>spi1_buf_en</name>
     <doc>spi1_buf_en</doc>
-    <params interface="1" drv="gpio" chip="0" offset="23" map="onoff_i">
-    </params>
+    <params interface="1" drv="gpio" chip="0" offset="23" map="onoff_i"
+    init="off"></params>
   </control>
   <control>
     <name>spi2_buf_en</name>
     <doc>spi2_buf_en</doc>
-    <params interface="1" drv="gpio" chip="1" offset="15" map="onoff_i">
-    </params>
+    <params interface="1" drv="gpio" chip="1" offset="15" map="onoff_i"
+    init="off"></params>
   </control>
   <control>
     <name>ec_spi</name>
     <doc>Enable power to DUT for programming EC SPI Flash</doc>
-    <params interface="1" drv="gpio" chip="1" offset="6" map="onoff_i">
-    </params>
+    <params interface="1" drv="gpio" chip="1" offset="6" map="onoff_i"
+    init="off"></params>
   </control>
   <control>
     <name>atmega_rst</name>
     <doc>atmega_rst</doc>
-    <params interface="1" drv="gpio" chip="1" offset="14" map="onoff_i">
-    </params>
+    <params interface="1" drv="gpio" chip="1" offset="14" map="onoff_i"
+    init="off"></params>
   </control>
   <control>
     <name>at_hwb</name>
     <doc>at_hwb</doc>
-    <params interface="1" drv="gpio" chip="0" offset="27" map="onoff_i">
-    </params>
+    <params interface="1" drv="gpio" chip="0" offset="27" map="onoff_i"
+    init="on"></params>
   </control>
   <control>
     <name>at_buf_en</name>