]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - src/adafruit_blinka/microcontroller/generic_linux/spi.py
Merge branch 'lgpio-native' of https://github.com/frank-pet/Adafruit_Blinka into...
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / generic_linux / spi.py
index 20607cdd091eb8aa7812375b77f2ebc5dc899d58..6cce03700b5634a11281e75bbf9301b1b407f225 100755 (executable)
@@ -1,5 +1,8 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
 """Generic Linux SPI class using PureIO's SPI class"""
-import Adafruit_PureIO.spi as spi
+from Adafruit_PureIO import spi
 from adafruit_blinka.agnostic import detector
 
 
@@ -70,7 +73,7 @@ class SPI:
 
     def write(self, buf, start=0, end=None):
         """Write data from the buffer to SPI"""
-        if not buf:
+        if buf is None or len(buf) < 1:
             return
         if end is None:
             end = len(buf)
@@ -88,7 +91,7 @@ class SPI:
 
     def readinto(self, buf, start=0, end=None, write_value=0):
         """Read data from SPI and into the buffer"""
-        if not buf:
+        if buf is None or len(buf) < 1:
             return
         if end is None:
             end = len(buf)
@@ -113,7 +116,9 @@ class SPI:
         """Perform a half-duplex write from buffer_out and then
         read data into buffer_in
         """
-        if not buffer_out or not buffer_in:
+        if buffer_out is None or buffer_in is None:
+            return
+        if len(buffer_out) < 1 or len(buffer_in) < 1:
             return
         if out_end is None:
             out_end = len(buffer_out)
@@ -129,7 +134,7 @@ class SPI:
             self._spi.bits_per_word = self.bits
             data = self._spi.transfer(list(buffer_out[out_start : out_end + 1]))
             for i in range((in_end - in_start)):
-                buffer_in[i + in_start] = data[i + 1]
+                buffer_in[i + in_start] = data[i]
             # self._spi.close()
         except FileNotFoundError:
             print("Could not open SPI device - check if SPI is enabled in kernel!")