X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka.git/blobdiff_plain/2ed6f5d2c74510c8be535c2218ba74ec05a1920d..830fcdc5594f2ee5a191c96a643766e3232eeecb:/src/digitalio.py diff --git a/src/digitalio.py b/src/digitalio.py index 8fb5385..44034f9 100755 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -7,8 +7,22 @@ See `CircuitPython:digitalio` in CircuitPython for more details. * Author(s): cefn """ -from machine import Pin -from adafruit_blinka.agnostic import board as boardId +from adafruit_blinka.agnostic import board_id, detector + +# pylint: disable=ungrouped-imports,wrong-import-position + +if detector.chip.BCM2XXX: + from adafruit_blinka.microcontroller.bcm283x.pin import Pin +elif detector.chip.AM33XX: + from adafruit_blinka.microcontroller.am335x.pin import Pin +elif detector.chip.SUN8I: + from adafruit_blinka.microcontroller.allwinner_h3.pin import Pin +elif detector.chip.SAMA5: + from adafruit_blinka.microcontroller.sama5.pin import Pin +elif detector.chip.TEGRAXXX: + from adafruit_blinka.microcontroller.tegra.pin import Pin +elif detector.chip.STM32: + from machine import Pin from adafruit_blinka import Enum, ContextManaged class DriveMode(Enum): @@ -60,6 +74,12 @@ class DigitalInOut(ContextManaged): def deinit(self): del self._pin + def cleanup(self, channel=None): + if channel == self: + Pin.cleanup(self._pin, self._pin) + else: + Pin.cleanup(self, channel) + @property def direction(self): return self.__direction @@ -106,7 +126,7 @@ class DigitalInOut(ContextManaged): self._pin.init(mode=Pin.IN, pull=Pin.PULL_DOWN) else: raise NotImplementedError("{} unsupported on {}".format( - Pull.DOWN, boardId)) + Pull.DOWN, board_id)) elif pul is None: self._pin.init(mode=Pin.IN, pull=None) else: