X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/4a1e028d30c9453d78483f8d71dc847fc2bfa2a9..c2bc4a90827f28abb6b51eae659a1f80a65c0497:/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 551274b..f294e1e 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 @@ -54,6 +57,7 @@ class I2C: # pylint: enable=unused-argument + class I2C_Pico(I2C): """I2C Class for Pico u2if""" @@ -69,6 +73,7 @@ class I2C_Pico(I2C): super().__init__(index, frequency=frequency) + class I2C_Feather(I2C): """I2C Class for Feather u2if""" @@ -82,6 +87,49 @@ 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""" @@ -97,6 +145,7 @@ class I2C_QTPY(I2C): super().__init__(index, frequency=frequency) + class I2C_ItsyBitsy(I2C): """I2C Class for ItsyBitsy u2if""" @@ -110,6 +159,20 @@ 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""" @@ -124,3 +187,15 @@ class I2C_QT2040_Trinkey(I2C): 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)