X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/30d6cd0ac14df67350f14f67a5fa52eb43e59838..c2bc4a90827f28abb6b51eae659a1f80a65c0497:/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py diff --git a/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py b/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py index 6a0ea93..cf93161 100644 --- a/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py +++ b/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py @@ -1,5 +1,13 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """MPSSE pin names""" +from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.url import ( + get_ft232h_url, + get_ft2232h_url, +) + class Pin: """A basic Pin class for use with FTDI MPSSEs.""" @@ -8,10 +16,13 @@ class Pin: OUT = 1 LOW = 0 HIGH = 1 + PULL_NONE = 0 + PULL_UP = 1 + PULL_DOWN = 2 mpsse_gpio = None - def __init__(self, pin_id=None, url="ftdi://ftdi:ft232h/1"): + 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.mpsse_gpio: @@ -21,7 +32,10 @@ class Pin: # pylint: enable=import-outside-toplevel i2c = I2cController() - i2c.configure(url) + 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: @@ -36,7 +50,7 @@ class Pin: raise RuntimeError("Can not init a None type pin.") # MPSSE does't have configurable internal pulls? if pull: - raise ValueError("Internal pull up/down not currently supported.") + raise NotImplementedError("Internal pull up/down not currently supported.") pin_mask = Pin.mpsse_gpio.pins | 1 << self.id current = Pin.mpsse_gpio.direction if mode == self.OUT: @@ -63,4 +77,4 @@ class Pin: Pin.mpsse_gpio.write(current & Pin.mpsse_gpio.direction) return None # release the kraken - raise RuntimeError("Invalid value for pin") \ No newline at end of file + raise RuntimeError("Invalid value for pin")