]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Merge branch 'master' of https://github.com/adafruit/Adafruit_Blinka
authorFranklin Harding <franklin@harding.coffee>
Tue, 11 May 2021 07:01:42 +0000 (00:01 -0700)
committerFranklin Harding <franklin@harding.coffee>
Tue, 11 May 2021 07:46:27 +0000 (00:46 -0700)
12 files changed:
1  2 
requirements.txt
setup.py
src/adafruit_blinka/microcontroller/ftdi_mpsse/ft2232h/pin.py
src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/i2c.py
src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py
src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/spi.py
src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/url.py
src/board.py
src/busio.py
src/digitalio.py
src/microcontroller/__init__.py
src/microcontroller/pin.py

index 59a7ee916a585e7acd382963617089781428c1de,59a7ee916a585e7acd382963617089781428c1de..013f2dccecaf7c7b906cc3a2d28260f9ce8a24fc
@@@ -1,4 -1,4 +1,4 @@@
--Adafruit-PlatformDetect>=3.1.0
++Adafruit-PlatformDetect>=3.13.0
  Adafruit-PureIO>=1.1.7
  Jetson.GPIO; platform_machine=='aarch64'
  RPi.GPIO; platform_machine=='armv7l' or platform_machine=='armv6l'
diff --cc setup.py
index 7e9259614c848eb555d1e71aa1e7549927b281bc,7e9259614c848eb555d1e71aa1e7549927b281bc..5d6ea95a44300b0aac6180b3a28fc2b0050440b8
+++ b/setup.py
@@@ -62,7 -62,7 +62,7 @@@ setup
          "adafruit_blinka.microcontroller.bcm283x.pulseio": ["libgpiod_pulsein"]
      },
      install_requires=[
--        "Adafruit-PlatformDetect>=3.1.0",
++        "Adafruit-PlatformDetect>=3.13.0",
          "Adafruit-PureIO>=1.1.7",
          "pyftdi>=0.40.0",
      ]
index 814a3a95b754d2011a0c3426d83f5e63c035f5da,0000000000000000000000000000000000000000..4fa84401a41f376f126ea6628000ad95ae91aac1
mode 100644,000000..100644
--- /dev/null
@@@ -1,55 -1,0 +1,55 @@@
- AD4 = Pin(4, url="ftdi://ftdi:ft2232h/1")
- AD5 = Pin(5, url="ftdi://ftdi:ft2232h/1")
- AD6 = Pin(6, url="ftdi://ftdi:ft2232h/1")
- AD7 = Pin(7, url="ftdi://ftdi:ft2232h/1")
- AC0 = Pin(8, url="ftdi://ftdi:ft2232h/1")
- AC1 = Pin(9, url="ftdi://ftdi:ft2232h/1")
- AC2 = Pin(10, url="ftdi://ftdi:ft2232h/1")
- AC3 = Pin(11, url="ftdi://ftdi:ft2232h/1")
- AC4 = Pin(12, url="ftdi://ftdi:ft2232h/1")
- AC5 = Pin(13, url="ftdi://ftdi:ft2232h/1")
- AC6 = Pin(14, url="ftdi://ftdi:ft2232h/1")
- AC7 = Pin(15, url="ftdi://ftdi:ft2232h/1")
- SCL0 = Pin(url="ftdi://ftdi:ft2232h/1")
- SDA0 = Pin(url="ftdi://ftdi:ft2232h/1")
- SCK0 = SCLK0 = Pin(url="ftdi://ftdi:ft2232h/1")
- MOSI0 = Pin(url="ftdi://ftdi:ft2232h/1")
- MISO0 = Pin(url="ftdi://ftdi:ft2232h/1")
 +"""FT2232H pin names"""
 +
 +from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.pin import Pin
 +
 +# See https://eblot.github.io/pyftdi/pinout.html for detailed FTDI device pinout information
 +
 +# MPSSE Port A
- BD4 = Pin(4, url="ftdi://ftdi:ft2232h/2")
- BD5 = Pin(5, url="ftdi://ftdi:ft2232h/2")
- BD6 = Pin(6, url="ftdi://ftdi:ft2232h/2")
- BD7 = Pin(7, url="ftdi://ftdi:ft2232h/2")
- BC0 = Pin(8, url="ftdi://ftdi:ft2232h/2")
- BC1 = Pin(9, url="ftdi://ftdi:ft2232h/2")
- BC2 = Pin(10, url="ftdi://ftdi:ft2232h/2")
- BC3 = Pin(11, url="ftdi://ftdi:ft2232h/2")
- BC4 = Pin(12, url="ftdi://ftdi:ft2232h/2")
- BC5 = Pin(13, url="ftdi://ftdi:ft2232h/2")
- BC6 = Pin(14, url="ftdi://ftdi:ft2232h/2")
- BC7 = Pin(15, url="ftdi://ftdi:ft2232h/2")
- SCL1 = Pin(url="ftdi://ftdi:ft2232h/2")
- SDA1 = Pin(url="ftdi://ftdi:ft2232h/2")
- SCK1 = SCLK1 = Pin(url="ftdi://ftdi:ft2232h/2")
- MOSI1 = Pin(url="ftdi://ftdi:ft2232h/2")
- MISO1 = Pin(url="ftdi://ftdi:ft2232h/2")
++AD4 = Pin(4, interface_id=0)
++AD5 = Pin(5, interface_id=0)
++AD6 = Pin(6, interface_id=0)
++AD7 = Pin(7, interface_id=0)
++AC0 = Pin(8, interface_id=0)
++AC1 = Pin(9, interface_id=0)
++AC2 = Pin(10, interface_id=0)
++AC3 = Pin(11, interface_id=0)
++AC4 = Pin(12, interface_id=0)
++AC5 = Pin(13, interface_id=0)
++AC6 = Pin(14, interface_id=0)
++AC7 = Pin(15, interface_id=0)
++
++SCL0 = Pin(interface_id=0)
++SDA0 = Pin(interface_id=0)
++SCK0 = SCLK0 = Pin(interface_id=0)
++MOSI0 = Pin(interface_id=0)
++MISO0 = Pin(interface_id=0)
 +
 +# MPSSE Port B
++BD4 = Pin(4, interface_id=1)
++BD5 = Pin(5, interface_id=1)
++BD6 = Pin(6, interface_id=1)
++BD7 = Pin(7, interface_id=1)
++BC0 = Pin(8, interface_id=1)
++BC1 = Pin(9, interface_id=1)
++BC2 = Pin(10, interface_id=1)
++BC3 = Pin(11, interface_id=1)
++BC4 = Pin(12, interface_id=1)
++BC5 = Pin(13, interface_id=1)
++BC6 = Pin(14, interface_id=1)
++BC7 = Pin(15, interface_id=1)
++
++SCL1 = Pin(interface_id=1)
++SDA1 = Pin(interface_id=1)
++SCK1 = SCLK1 = Pin(interface_id=1)
++MOSI1 = Pin(interface_id=1)
++MISO1 = Pin(interface_id=1)
 +
 +i2cPorts = (
 +    (0, SCL0, SDA0),
 +    (1, SCL1, SDA1),
 +)
 +
 +spiPorts = (
 +    (0, SCLK0, MOSI0, MISO0),
 +    (1, SCLK1, MOSI1, MISO1),
 +)
index 291a77ce5e85e1b842eea35eae0a015939c459bf,28d2644cd90c3ec2d438b475c4389f36a279ef5f..f9539fb4a213c65623df731f3d02e89c8ec92c7d
@@@ -1,5 -1,6 +1,9 @@@
 -"""I2C Class for FT232H"""
 -from adafruit_blinka.microcontroller.ft232h.pin import Pin
 -from adafruit_blinka.microcontroller.ft232h.url import get_ftdi_url
 +"""I2C Class for FTDI MPSSE"""
 +from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.pin import Pin
++from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.url import (
++    get_ft232h_url,
++    get_ft2232h_url,
++)
  
  
  class I2C:
          # pylint: enable=import-outside-toplevel
  
          self._i2c = I2cController()
 -        self._i2c.configure(get_ftdi_url(), frequency=frequency)
 -        Pin.ft232h_gpio = self._i2c.get_gpio()
 +        if i2c_id is None:
-             self._i2c.configure("ftdi://ftdi:ft232h/1", frequency=frequency)
++            self._i2c.configure(get_ft232h_url(), frequency=frequency)
 +        else:
-             self._i2c.configure(
-                 "ftdi://ftdi:ft2232h/{}".format(i2c_id + 1), frequency=frequency
-             )
++            self._i2c.configure(get_ft2232h_url(i2c_id), frequency=frequency)
 +        Pin.mpsse_gpio = self._i2c.get_gpio()
  
      def scan(self):
          """Perform an I2C Device Scan"""
index b5a7475c044a66abff80c62ec0bce84e542d82f2,a138ee735a9dcf63dce22624fe3d24bf51b0f52a..5dc171ea16485524a4b8d4f877fc31a1f04ea051
@@@ -1,8 -1,10 +1,10 @@@
 -"""FT232H pin names"""
 +"""MPSSE pin names"""
  
 -from adafruit_blinka.microcontroller.ft232h.url import get_ftdi_url
++from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.url import get_ft232h_url, get_ft2232h_url
  
  class Pin:
 -    """A basic Pin class for use with FT232H."""
 +    """A basic Pin class for use with FTDI MPSSEs."""
  
      IN = 0
      OUT = 1
      PULL_UP = 1
      PULL_DOWN = 2
  
 -    ft232h_gpio = None
 +    mpsse_gpio = None
  
-     def __init__(self, pin_id=None, url="ftdi://ftdi:ft232h/1"):
 -    def __init__(self, pin_id=None):
++    def __init__(self, pin_id=None, interface_id=None):
          # setup GPIO controller if not done yet
          # use one provided by I2C as default
 -        if not Pin.ft232h_gpio:
 +        if not Pin.mpsse_gpio:
              # pylint: disable=import-outside-toplevel
              from pyftdi.i2c import I2cController
  
              # pylint: enable=import-outside-toplevel
  
              i2c = I2cController()
-             i2c.configure(url)
 -            i2c.configure(get_ftdi_url())
 -            Pin.ft232h_gpio = i2c.get_gpio()
++            if interface_id is None:
++                i2c.configure(get_ft232h_url())
++            else:
++                i2c.configure(get_ft2232h_url(interface_id))
 +            Pin.mpsse_gpio = i2c.get_gpio()
          # check if pin is valid
          if pin_id:
 -            if Pin.ft232h_gpio.all_pins & 1 << pin_id == 0:
 +            if Pin.mpsse_gpio.all_pins & 1 << pin_id == 0:
                  raise ValueError("Can not use pin {} as GPIO.".format(pin_id))
          # ID is just bit position
          self.id = pin_id
index 78dee58b1098a97e6ad154ce22cbae304a9bda1e,fd16b39348f71f5c23c063ea3434bcfebe194ef2..0b76c081ebb8d3ce4c99f05a8eed0a10a2e91402
@@@ -1,5 -1,6 +1,9 @@@
 -"""SPI Class for FT232H"""
 -from adafruit_blinka.microcontroller.ft232h.pin import Pin
 -from adafruit_blinka.microcontroller.ft232h.url import get_ftdi_url
 +"""SPI Class for FTDI MPSSE"""
 +from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.pin import Pin
++from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.url import (
++    get_ft232h_url,
++    get_ft2232h_url,
++)
  
  # pylint: disable=protected-access
  class SPI:
          # pylint: enable=import-outside-toplevel
  
          self._spi = SpiController(cs_count=1)
 -        self._spi.configure(get_ftdi_url())
 +        if spi_id is None:
-             self._spi.configure("ftdi://ftdi:ft232h/1")
++            self._spi.configure(get_ft232h_url())
 +        else:
-             self._spi.configure("ftdi://ftdi:ft2232h/{}".format(spi_id + 1))
++            self._spi.configure(get_ft2232h_url(spi_id + 1))
          self._port = self._spi.get_port(0)
          self._port.set_frequency(100000)
          self._port._cpol = 0
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c2f2eaf00d92d53e924991160ea36b2f3d4f3ce5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,31 @@@
++"""Support for getting the URL from the BLINKA_FT232H variable."""
++
++import os
++
++
++def get_ft232h_url():
++    """
++    Return the FTDI url to use. If BLINKA_FT232H starts with ftdi:, returns
++    that. Otherwise, returns a default value.
++    """
++
++    url = os.environ.get("BLINKA_FT232H", "1")
++
++    if url.startswith("ftdi:"):
++        return url
++
++    return "ftdi://ftdi:ft232h/1"
++
++
++def get_ft2232h_url(interface_id):
++    """
++    Return the FTDI url to use. If BLINKA_FT2232H_{} starts with ftdi:, returns
++    that. Otherwise, returns a default value.
++    """
++
++    url = os.environ.get("BLINKA_FT2232H_{}".format(interface_id), "1")
++
++    if url.startswith("ftdi:"):
++        return url
++
++    return "ftdi://ftdi:ft2232h/{}".format(interface_id + 1)
diff --cc src/board.py
Simple merge
diff --cc src/busio.py
index 199190083891adf01faaab5fd06387ac85dde9b8,c599afa449b656f9d8dc1c81fa9da595331a78a9..11c6341421ad002fe01ef4b29493590d2988c1d5
@@@ -53,12 -53,22 +53,24 @@@ class I2C(Lockable)
  
              self._i2c = _I2C(frequency=frequency)
              return
+         if detector.board.pico_u2if:
+             from adafruit_blinka.microcontroller.pico_u2if.i2c import I2C as _I2C
+             self._i2c = _I2C(scl, sda, frequency=frequency)
+             return
+         if detector.chip.id == ap_chip.RP2040:
+             from adafruit_blinka.microcontroller.rp2040.i2c import I2C as _I2C
+             self._i2c = _I2C(scl, sda, frequency=frequency)
+             return
          if detector.board.any_embedded_linux:
              from adafruit_blinka.microcontroller.generic_linux.i2c import I2C as _I2C
 +        elif detector.board.ftdi_ft2232h:
 +            from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.i2c import I2C as _I2C
          else:
-             from machine import I2C as _I2C
+             from adafruit_blinka.microcontroller.generic_micropython.i2c import (
+                 I2C as _I2C,
+             )
          from microcontroller.pin import i2cPorts
  
          for portId, portScl, portSda in i2cPorts:
@@@ -177,12 -185,24 +191,26 @@@ class SPI(Lockable)
              self._spi = _SPI()
              self._pins = (SCK, MOSI, MISO)
              return
+         if detector.board.pico_u2if:
+             from adafruit_blinka.microcontroller.pico_u2if.spi import SPI as _SPI
+             self._spi = _SPI(clock)  # this is really all that's needed
+             self._pins = (clock, clock, clock)  # will determine MOSI/MISO from clock
+             return
+         if detector.chip.id == ap_chip.RP2040:
+             from adafruit_blinka.microcontroller.rp2040.spi import SPI as _SPI
+             self._spi = _SPI(clock, MOSI, MISO)  # Pins configured on instantiation
+             self._pins = (clock, clock, clock)  # These don't matter, they're discarded
+             return
          if detector.board.any_embedded_linux:
              from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
 +        elif detector.board.ftdi_ft2232h:
 +            from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.spi import SPI as _SPI
          else:
-             from machine import SPI as _SPI
+             from adafruit_blinka.microcontroller.generic_micropython.spi import (
+                 SPI as _SPI,
+             )
          from microcontroller.pin import spiPorts
  
          for portId, portSck, portMosi, portMiso in spiPorts:
              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 board_id == ap_board.JETSON_NX:
              from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
-             from adafruit_blinka.microcontroller.tegra.t194.pin import Pin
          elif detector.board.ROCK_PI_S:
              from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
-             from adafruit_blinka.microcontroller.rockchip.rk3308.pin import Pin
          elif detector.board.ROCK_PI_4:
              from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
-             from adafruit_blinka.microcontroller.rockchip.rk3399.pin import Pin
+         elif detector.board.ROCK_PI_E:
+             from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
          elif detector.board.SIFIVE_UNLEASHED:
              from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
-             from adafruit_blinka.microcontroller.hfu540.pin import Pin
          elif detector.board.ftdi_ft232h:
 -            from adafruit_blinka.microcontroller.ft232h.spi import SPI as _SPI
 +            from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.spi import (
 +                SPI as _SPI,
 +            )
-             from adafruit_blinka.microcontroller.ftdi_mpsse.ft232h.pin import Pin
 +        elif detector.board.ftdi_ft2232h:
 +            from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.spi import (
 +                SPI as _SPI,
 +            )
-             from adafruit_blinka.microcontroller.ftdi_mpsse.ft2232h.pin import Pin
          elif detector.board.binho_nova:
              from adafruit_blinka.microcontroller.nova.spi import SPI as _SPI
-             from adafruit_blinka.microcontroller.nova.pin import Pin
          elif detector.board.greatfet_one:
              from adafruit_blinka.microcontroller.nxp_lpc4330.spi import SPI as _SPI
-             from adafruit_blinka.microcontroller.nxp_lpc4330.pin import Pin
          elif board_id in (
              ap_board.PINE64,
              ap_board.PINEBOOK,
index 8db83991968a91875a915dff3487a886f1cf5639,c08c6b4e84a828bd1fd26b976ce16f19b8c09b9f..eef0015f076bdaa420fa659f446fb344b4532b00
@@@ -53,10 -53,10 +53,12 @@@ elif detector.chip.RK3308
      from adafruit_blinka.microcontroller.rockchip.rk3308.pin import Pin
  elif detector.chip.RK3399:
      from adafruit_blinka.microcontroller.rockchip.rk3399.pin import Pin
+ elif detector.chip.RK3328:
+     from adafruit_blinka.microcontroller.rockchip.rk3328.pin import Pin
  elif detector.board.ftdi_ft232h:
 -    from adafruit_blinka.microcontroller.ft232h.pin import Pin
 +    from adafruit_blinka.microcontroller.ftdi_mpsse.ft232h.pin import Pin
 +elif detector.board.ftdi_ft2232h:
 +    from adafruit_blinka.microcontroller.ftdi_mpsse.ft2232h.pin import Pin
  elif detector.board.binho_nova:
      from adafruit_blinka.microcontroller.nova.pin import Pin
  elif detector.board.greatfet_one:
Simple merge
Simple merge