X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/ecba441c03a58ce97b3c1c769cb9c76675abbf7f..8273fc6:/src/adafruit_blinka/microcontroller/ft232h/pin.py diff --git a/src/adafruit_blinka/microcontroller/ft232h/pin.py b/src/adafruit_blinka/microcontroller/ft232h/pin.py index d9763d2..94b8e14 100644 --- a/src/adafruit_blinka/microcontroller/ft232h/pin.py +++ b/src/adafruit_blinka/microcontroller/ft232h/pin.py @@ -1,3 +1,6 @@ +"""FT232H pin names""" + + class Pin: """A basic Pin class for use with FT232H.""" @@ -12,9 +15,13 @@ class Pin: # setup GPIO controller if not done yet # use one provided by I2C as default if not Pin.ft232h_gpio: + # pylint: disable=import-outside-toplevel from pyftdi.i2c import I2cController + + # pylint: enable=import-outside-toplevel + i2c = I2cController() - i2c.configure("ftdi:///1") + i2c.configure("ftdi://ftdi:ft232h/1") Pin.ft232h_gpio = i2c.get_gpio() # check if pin is valid if pin_id: @@ -24,6 +31,7 @@ class Pin: self.id = pin_id def init(self, mode=IN, pull=None): + """Initialize the Pin""" if not self.id: raise RuntimeError("Can not init a None type pin.") # FT232H does't have configurable internal pulls? @@ -38,6 +46,7 @@ class Pin: Pin.ft232h_gpio.set_direction(pin_mask, current) def value(self, val=None): + """Set or return the Pin Value""" if not self.id: raise RuntimeError("Can not access a None type pin.") current = Pin.ft232h_gpio.read(with_output=True) @@ -45,15 +54,17 @@ class Pin: if val is None: return 1 if current & 1 << self.id != 0 else 0 # write - elif val in (self.LOW, self.HIGH): + if val in (self.LOW, self.HIGH): if val == self.HIGH: current |= 1 << self.id else: current &= ~(1 << self.id) + # must mask out any input pins Pin.ft232h_gpio.write(current & Pin.ft232h_gpio.direction) + return None # release the kraken - else: - raise RuntimeError("Invalid value for pin") + raise RuntimeError("Invalid value for pin") + # create pin instances for each pin # D0 to D3 are used by I2C/SPI @@ -76,4 +87,4 @@ SCL = Pin() SDA = Pin() SCK = SCLK = Pin() MOSI = Pin() -MISO = Pin() \ No newline at end of file +MISO = Pin()