Allow multiple servos to connected to one host

BUG=chrome-os-partner:4123
TEST=manual
prereq's
- program a multiple servo's eeprom's using ftdi_eeprom w/ unique serialname's
  - You can examine this value via lsusb -d 0x403: -v | grep iSerial

1. servod -c servo.xml -s <serialA>
2. servod -c servo.xml -s <serialB> --port=9998

Then
1. dut-control --port=9998 lid_open:no lid_open:yes
1. dut-control lid_open:no lid_open:yes

Observe different DUTs respond to lid event

Change-Id: Ifa6d2065155c4faf256d0a3eb9569547b61d0fdb
Reviewed-on: http://gerrit.chromium.org/gerrit/1576
Reviewed-by: Mark Hayter <mdhayter@chromium.org>
Tested-by: Todd Broch <tbroch@chromium.org>
diff --git a/servo/servo_server.py b/servo/servo_server.py
index 7f9bd1e..7e17781 100644
--- a/servo/servo_server.py
+++ b/servo/servo_server.py
@@ -19,7 +19,8 @@
 class Servod(object):
   """Main class for Servo debug/controller Daemon."""
   def __init__(self, config, vendor=ftdi_common.DEFAULT_VID,
-               product=ftdi_common.DEFAULT_PID):
+               product=ftdi_common.DEFAULT_PID,
+               serialname=None):
     """Servod constructor.
 
     Args:
@@ -27,11 +28,13 @@
           particular Servod invocation
       vendor: usb vendor id of FTDI device
       product: usb product id of FTDI device
+      serialname: string of device serialname/number as defined in FTDI eeprom.
     """
     self._logger = logging.getLogger("Servod")
     self._logger.debug("")
     self._vendor = vendor
     self._product = product
+    self._serialname = serialname
     self._syscfg = config
     # list of objects (Fi2c, Fgpio) to physical interfaces (gpio, i2c) that ftdi
     # interfaces are mapped to
@@ -58,7 +61,8 @@
     Returns:
       Instance object of interface.
     """
-    fobj = ftdigpio.Fgpio(self._vendor, self._product, interface)
+    fobj = ftdigpio.Fgpio(self._vendor, self._product, interface,
+                          self._serialname)
     fobj.open()
     return fobj
 
@@ -71,7 +75,8 @@
     Returns:
       Instance object of interface
     """
-    fobj = ftdii2c.Fi2c(self._vendor, self._product, interface)
+    fobj = ftdii2c.Fi2c(self._vendor, self._product, interface,
+                        self._serialname)
     fobj.open()
     # Set the frequency of operation of the i2c bus.
     # TODO(tbroch) make configureable