]> Repositories - hackapet/Adafruit_Blinka.git/blobdiff - src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/spi.py
Add FT2232H/FT232H module docstrings (pylint)
[hackapet/Adafruit_Blinka.git] / src / adafruit_blinka / microcontroller / ftdi_mpsse / mpsse / spi.py
index 69fe66fcbfbf1b7e085f8f6a5afc1b8b9790094c..78dee58b1098a97e6ad154ce22cbae304a9bda1e 100644 (file)
@@ -7,17 +7,17 @@ class SPI:
 
     MSB = 0
 
-    def __init__(self, id=None):
+    def __init__(self, spi_id=None):
         # pylint: disable=import-outside-toplevel
         from pyftdi.spi import SpiController
 
         # pylint: enable=import-outside-toplevel
 
         self._spi = SpiController(cs_count=1)
-        if id is None:
-            self._spi.configure("ftdi://ftdi:ft232h/1", frequency=frequency)
-        else
-            self._spi.configure("ftdi://ftdi:ft2232h/{}".format(id+1), frequency=frequency)
+        if spi_id is None:
+            self._spi.configure("ftdi://ftdi:ft232h/1")
+        else:
+            self._spi.configure("ftdi://ftdi:ft2232h/{}".format(spi_id + 1))
         self._port = self._spi.get_port(0)
         self._port.set_frequency(100000)
         self._port._cpol = 0
@@ -63,13 +63,15 @@ class SPI:
             chunk_end = chunk_start + self._spi.PAYLOAD_MAX_LENGTH
             self._port.write(buf[chunk_start:chunk_end])
         if rest:
-            self._port.write(buf[-1 * rest :])
+            rest_start = start + chunks * self._spi.PAYLOAD_MAX_LENGTH
+            self._port.write(buf[rest_start:end])
 
     # pylint: disable=unused-argument
     def readinto(self, buf, start=0, end=None, write_value=0):
         """Read data from SPI and into the buffer"""
         end = end if end else len(buf)
-        result = self._port.read(end - start)
+        buffer_out = [write_value] * (end - start)
+        result = self._port.exchange(buffer_out, end - start, duplex=True)
         for i, b in enumerate(result):
             buf[start + i] = b