X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/e7d49e469490c9f9504b2dbdafb659fec7ef4d55..8273fc6:/src/adafruit_blinka/microcontroller/ft232h/pin.py?ds=inline diff --git a/src/adafruit_blinka/microcontroller/ft232h/pin.py b/src/adafruit_blinka/microcontroller/ft232h/pin.py index c768ffd..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,7 +15,11 @@ 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://ftdi:ft232h/1") Pin.ft232h_gpio = i2c.get_gpio() @@ -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,16 +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