X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/03c4bc1d41655d8e73ff89039b2a8ec34b3649ca..e6c2e68e15f27b4b0560bdd3f08ad1babc6fe8f4:/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py index f12764a..57e4aed 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """I2C Classes for RP2040s with u2if firmware""" from .rp2040_u2if import rp2040_u2if @@ -36,7 +39,7 @@ class I2C: out_end=None, in_start=0, in_end=None, - stop=False + stop=False, ): """Write data from buffer_out to an address and then read data from an address and into buffer_in @@ -85,6 +88,48 @@ class I2C_Feather(I2C): super().__init__(index, frequency=frequency) +class I2C_Feather_CAN(I2C): + """I2C Class for Feather EPD u2if""" + + def __init__(self, scl, sda, *, frequency=100000): + index = None + if scl.id == 3 and sda.id == 2: + index = 1 + if index is None: + raise ValueError("I2C not found on specified pins.") + self._index = index + + super().__init__(index, frequency=frequency) + + +class I2C_Feather_EPD(I2C): + """I2C Class for Feather EPD u2if""" + + def __init__(self, scl, sda, *, frequency=100000): + index = None + if scl.id == 3 and sda.id == 2: + index = 1 + if index is None: + raise ValueError("I2C not found on specified pins.") + self._index = index + + super().__init__(index, frequency=frequency) + + +class I2C_Feather_RFM(I2C): + """I2C Class for Feather EPD u2if""" + + def __init__(self, scl, sda, *, frequency=100000): + index = None + if scl.id == 3 and sda.id == 2: + index = 1 + if index is None: + raise ValueError("I2C not found on specified pins.") + self._index = index + + super().__init__(index, frequency=frequency) + + class I2C_QTPY(I2C): """I2C Class for QT Py 2if""" @@ -115,6 +160,19 @@ class I2C_ItsyBitsy(I2C): super().__init__(index, frequency=frequency) +class I2C_MacroPad(I2C): + """I2C Class for MacroPad u2if""" + + def __init__(self, scl, sda, *, frequency=100000): + index = None + if scl.id == 21 and sda.id == 20: + index = 0 + if index is None: + raise ValueError("I2C not found on specified pins.") + self._index = index + super().__init__(index, frequency=frequency) + + class I2C_QT2040_Trinkey(I2C): """I2C Class for QT2040 Trinkey u2if""" @@ -127,3 +185,33 @@ class I2C_QT2040_Trinkey(I2C): self._index = index super().__init__(index, frequency=frequency) + + +class I2C_KB2040(I2C): + """I2C Class for KB2040 u2if""" + + def __init__(self, scl, sda, *, frequency=100000): + index = None + if scl.id == 13 and sda.id == 12: + index = 0 + if index is None: + raise ValueError("I2C not found on specified pins.") + self._index = index + + super().__init__(index, frequency=frequency) + + +class I2C_Radxa_X4(I2C): + """I2C Class for Radxa X4 u2if""" + + def __init__(self, scl, sda, *, frequency=100000): + index = None + if scl.id == 29 and sda.id == 28: + index = 0 + if scl.id == 19 and sda.id == 18: + index = 1 + if index is None: + raise ValueError("I2C not found on specified pins.") + self._index = index + + super().__init__(index, frequency=frequency)