From 863112133a8f44322b8d399b137f2d4a77f3abed Mon Sep 17 00:00:00 2001 From: caternuson Date: Wed, 19 May 2021 13:46:16 -0700 Subject: [PATCH] initial qt2040 trinkey --- src/adafruit_blinka/board/qt2040_trinkey_u2if.py | 13 +++++++++++++ .../microcontroller/rp2040_u2if/i2c.py | 14 ++++++++++++++ src/board.py | 3 +++ src/busio.py | 5 +++++ src/digitalio.py | 2 ++ 5 files changed, 37 insertions(+) create mode 100644 src/adafruit_blinka/board/qt2040_trinkey_u2if.py diff --git a/src/adafruit_blinka/board/qt2040_trinkey_u2if.py b/src/adafruit_blinka/board/qt2040_trinkey_u2if.py new file mode 100644 index 0000000..287a662 --- /dev/null +++ b/src/adafruit_blinka/board/qt2040_trinkey_u2if.py @@ -0,0 +1,13 @@ +"""Pin definitions for the QT2040 Trinkey with u2if firmware.""" + +from adafruit_blinka.microcontroller.rp2040_u2if import pin + +BUTTON = pin.GP12 + +SCL = pin.GP17 +SDA = pin.GP16 + +NEOPIXEL = pin.GP27 + +# access u2if via pin instance to open for specifc VID/PID +pin.GP0._u2if_open_hid(0x239A, 0x13C0) diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py index bf8d0ed..c7e7e75 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py @@ -82,3 +82,17 @@ class I2C_Feather(I2C): super().__init__(index, frequency=frequency) +class I2C_QT2040_Trinkey(I2C): + """I2C Class for QT2040 Trinkey u2if""" + + def __init__(self, scl, sda, *, frequency=100000): + index = None + if scl.id == 17 and sda.id == 16: + index = 0 + if index is None: + raise ValueError("I2C not found on specified pins.") + self._index = index + + super().__init__(index, frequency=frequency) + + diff --git a/src/board.py b/src/board.py index a34ef4e..2ab1038 100755 --- a/src/board.py +++ b/src/board.py @@ -230,6 +230,9 @@ elif board_id == ap_board.PICO_U2IF: elif board_id == ap_board.FEATHER_U2IF: from adafruit_blinka.board.feather_u2if import * +elif board_id == ap_board.QT2040_TRINKEY_U2IF: + from adafruit_blinka.board.qt2040_trinkey_u2if import * + elif "sphinx" in sys.modules: pass diff --git a/src/busio.py b/src/busio.py index cfdfa63..7d32a8b 100755 --- a/src/busio.py +++ b/src/busio.py @@ -61,6 +61,11 @@ class I2C(Lockable): if detector.board.feather_u2if: from adafruit_blinka.microcontroller.rp2040_u2if.i2c import I2C_Feather as _I2C + self._i2c = _I2C(scl, sda, frequency=frequency) + return + if detector.board.qt2040_trinkey_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.i2c import I2C_QT2040_Trinkey as _I2C + self._i2c = _I2C(scl, sda, frequency=frequency) return if detector.chip.id == ap_chip.RP2040: diff --git a/src/digitalio.py b/src/digitalio.py index 9b44c56..4f78cc0 100755 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -85,6 +85,8 @@ elif detector.board.pico_u2if: from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin elif detector.board.feather_u2if: from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin +elif detector.board.qt2040_trinkey_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin from adafruit_blinka import Enum, ContextManaged -- 2.49.0