]> Repositories - hackapet/Adafruit_Blinka.git/blobdiff - src/busio.py
Fixes issue with SPI on Orange Pi Zero and R1
[hackapet/Adafruit_Blinka.git] / src / busio.py
index 0928b870a98a930190633b1d0caf014790675c53..94f8f674a96660d0bb5ce68dca2bec211e100a09 100755 (executable)
@@ -17,7 +17,11 @@ class I2C(Lockable):
 
     def init(self, scl, sda, frequency):
         self.deinit()
-        if detector.board.any_embedded_linux:
+        if detector.board.ftdi_ft232h:
+            from adafruit_blinka.microcontroller.ft232h.i2c import I2C
+            self._i2c = I2C()
+            return
+        elif detector.board.any_embedded_linux:
             from adafruit_blinka.microcontroller.generic_linux.i2c import I2C as _I2C
         else:
             from machine import I2C as _I2C
@@ -28,7 +32,7 @@ class I2C(Lockable):
                 break
         else:
             raise NotImplementedError(
-                "No Hardware I2C on (scl,sda)={}\nValid UART ports: {}".format((scl, sda), i2cPorts)
+                "No Hardware I2C on (scl,sda)={}\nValid I2C ports: {}".format((scl, sda), i2cPorts)
             )
 
     def deinit(self):
@@ -72,7 +76,13 @@ class I2C(Lockable):
 class SPI(Lockable):
     def __init__(self, clock, MOSI=None, MISO=None):
         self.deinit()
-        if detector.board.any_embedded_linux:
+        if detector.board.ftdi_ft232h:
+            from adafruit_blinka.microcontroller.ft232h.spi import SPI as _SPI
+            from adafruit_blinka.microcontroller.ft232h.pin import SCK, MOSI, MISO
+            self._spi = _SPI()
+            self._pins = (SCK, MOSI, MISO)
+            return
+        elif detector.board.any_embedded_linux:
             from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
         else:
             from machine import SPI as _SPI
@@ -90,13 +100,13 @@ class SPI(Lockable):
                 format((clock, MOSI, MISO), spiPorts))
 
     def configure(self, baudrate=100000, polarity=0, phase=0, bits=8):
-        if detector.board.any_raspberry_pi:
+        if detector.board.any_raspberry_pi or detector.board.any_raspberry_pi_40_pin:
             from adafruit_blinka.microcontroller.bcm283x.pin import Pin
             from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
         elif detector.board.any_beaglebone:
             from adafruit_blinka.microcontroller.am335x.pin import Pin
             from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
-        elif board_id == ap_board.ORANGE_PI_PC:
+        elif board_id == ap_board.ORANGE_PI_PC or board_id == ap_board.ORANGE_PI_R1 or board_id == ap_board.ORANGE_PI_ZERO:
             from adafruit_blinka.microcontroller.allwinner_h3.pin import Pin
             from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
         elif board_id == ap_board.GIANT_BOARD:
@@ -105,6 +115,27 @@ class SPI(Lockable):
         elif board_id == ap_board.CORAL_EDGE_TPU_DEV:
             from adafruit_blinka.microcontroller.nxp_imx8m.pin import Pin
             from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
+        elif board_id == ap_board.ODROID_C2:
+            from adafruit_blinka.microcontroller.amlogic.s905.pin import Pin
+            from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
+        elif board_id == ap_board.DRAGONBOARD_410C:
+            from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import Pin
+            from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
+        elif board_id == ap_board.JETSON_NANO:
+            from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
+            from adafruit_blinka.microcontroller.tegra.t210.pin import Pin
+        elif board_id == ap_board.JETSON_TX1:
+            from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
+            from adafruit_blinka.microcontroller.tegra.t210.pin import Pin
+        elif board_id == ap_board.JETSON_TX2:
+            from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
+            from adafruit_blinka.microcontroller.tegra.t186.pin import Pin
+        elif board_id == ap_board.JETSON_XAVIER:
+            from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
+            from adafruit_blinka.microcontroller.tegra.t194.pin import Pin
+        elif detector.board.ftdi_ft232h:
+            from adafruit_blinka.microcontroller.ft232h.spi import SPI as _SPI
+            from adafruit_blinka.microcontroller.ft232h.pin import Pin
         else:
             from machine import SPI as _SPI
             from machine import Pin