X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka_Displayio.git/blobdiff_plain/33accffa7278997a55e237473c33880813def934..ccf2ba325ec856e092637d645b4b9ae499d12f45:/displayio/_fourwire.py?ds=sidebyside diff --git a/displayio/_fourwire.py b/displayio/_fourwire.py index 142e308..61be810 100644 --- a/displayio/_fourwire.py +++ b/displayio/_fourwire.py @@ -132,16 +132,24 @@ class FourWire: else: self._spi.write(data) - def _begin_transaction(self): + def _free(self) -> bool: + """Attempt to free the bus and return False if busy""" + if not self._spi.try_lock(): + return False + self._spi.unlock() + return True + + def _begin_transaction(self) -> bool: """Begin the SPI transaction by locking, configuring, and setting Chip Select""" - while not self._spi.try_lock(): - pass + if not self._spi.try_lock(): + return False self._spi.configure( baudrate=self._frequency, polarity=self._polarity, phase=self._phase ) self._chip_select.value = False + return True - def _end_transaction(self): + def _end_transaction(self) -> None: """End the SPI transaction by unlocking and setting Chip Select""" self._chip_select.value = True self._spi.unlock()